Изменить настройки кластера Apache Airflow™
Настройки кластера Apache Airflow™ изменяются в ресурсе AirflowCluster.
Через CLI
-
Выгрузите текущую конфигурацию:
kubectl get airflowcluster <имя_кластера> \ -n <пространство_имен> \ -o yaml > airflow-cluster.yaml -
Измените поля
specи удалите из файла служебные поляstatus,metadata.resourceVersion,metadata.uid,metadata.creationTimestampиmetadata.managedFields. -
Примените конфигурацию:
kubectl apply -f airflow-cluster.yaml -
Дождитесь завершения обновления:
kubectl get airflowcluster <имя_кластера> \ -n <пространство_имен> \ -wПоле
status.phaseдолжно принять значениеReadyилиPaused, если кластер приостановлен.
Что можно изменить
Без пересоздания кластера можно:
- выбрать другую поддерживаемую версию в
spec.version; - изменить количество реплик и ресурсы компонентов;
- изменить
spec.configс учетом ограничений; - включить или выключить публичный доступ через
spec.publicAccess; - изменить дополнительные пакеты и их репозитории в
spec.dependencies; - изменить
refGit-репозитория и Secret с учетными данными; - включить или отключить удаленные логи, добавив или удалив
spec.taskLogs; - приостановить или возобновить кластер через
spec.pause; - включить или выключить защиту от удаления через
spec.deletionProtection.
Важно
При добавлении или удалении spec.taskLogs существующие логи не переносятся между локальным диском и S3. Новая настройка применяется только к новым записям. Автоматически созданный бакет и уже сохраненные в нем объекты при отключении удаленных логов не удаляются.
Что нельзя изменить
После создания нельзя менять:
- тип источника DAG, URL Git-репозитория и
subPath; - тип объектного хранилища, имя бакета, эндпоинт,
subPathи ссылки на ресурсы управляемого хранилища.
Для изменения этих параметров создайте новый AirflowCluster и перенесите данные отдельно.
База метаданных создается автоматически. Выбрать другую базу или изменить ее параметры нельзя.
Ресурсы компонентов
В примерах ниже приведены фрагменты spec. Объедините их с текущей конфигурацией, сохранив остальные параметры.
Пример изменения числа реплик и ресурсов:
spec:
components:
scheduler:
replicas: 2
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: "2"
memory: 4Gi
dagProcessor:
replicas: 2
Если поле resources задано, укажите все четыре значения: requests.cpu, requests.memory, limits.cpu и limits.memory.
В requests задаются гарантированные ресурсы для одного пода, в limits — максимальные. Поле cpu определяет количество CPU, а memory — объем оперативной памяти.
В spec.components доступны scheduler, apiServer, triggerer и dagProcessor. Для них задаются replicas и resources. Правила размещения подов не настраиваются.
Параметры Apache Airflow™
Поле spec.config задает параметры airflow.cfg: первый уровень — секция, второй — имя параметра. Например, чтобы отключить загрузку демонстрационных DAG-файлов:
spec:
config:
core:
load_examples: "False"
Все значения должны быть однострочными строками, включая числа и логические значения. Используйте буквальные значения без шаблонных выражений. Названия секций и параметров должны начинаться с латинской буквы, цифры или подчеркивания и содержать только латинские буквы, цифры, подчеркивания, точки и дефисы. Секция DEFAULT зарезервирована.
Следующие параметры нельзя изменять через spec.config. Ограничение действует независимо от регистра букв:
|
Секция |
Параметры |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Дополнительные зависимости
Пример добавления Python- и Debian-пакетов:
spec:
dependencies:
pip:
- name: apache-airflow-providers-amazon
deb:
- name: libpq5
Для Python-пакета можно указать version с ограничением версии, например ">=2.0,<3.0"; для Debian-пакета задается только name. Установка пакетов не меняет версию самого Apache Airflow™ из spec.version: несовместимые зависимости приводят к ошибке установки.
После изменения пакетов, репозиториев или связанных с ними Secret дождитесь завершения обновления кластера. Условие DependenciesReady=True для текущей конфигурации подтверждает, что зависимости готовы. Если установка пакетов завершилась ошибкой, воспользуйтесь инструкцией по диагностике.
Репозитории пакетов
Если repositories не задано, используются предустановленные настройки pip и APT. Для своих источников задайте spec.dependencies.repositories:
spec:
dependencies:
pip:
- name: apache-airflow-providers-amazon
deb:
- name: libpq5
repositories:
pip:
index:
url: https://pypi.example.org/simple
credentialsSecretRef:
name: airflow-pypi-auth
caSecretRef:
name: airflow-repository-ca
key: ca.crt
extraIndexes:
- url: https://pypi.org/simple
deb:
url: https://apt.example.org/debian
suite: bookworm
components: [main]
credentialsSecretRef:
name: airflow-apt-auth
signingKeySecretRef:
name: airflow-apt-key
key: archive.asc
caSecretRef:
name: airflow-repository-ca
key: ca.crt
Подготовьте указанные Secret в пространстве имен AirflowCluster:
credentialsSecretRef— непустые ключиusernameиpassword. Допускаются печатные ASCII-символы без пробелов. Для репозитория без аутентификации ссылку можно опустить;caSecretRef— ключ с CA-сертификатами в формате PEM. Ссылка нужна, если репозиторий использует собственный центр сертификации;signingKeySecretRef— запись Secret с ключом подписи APT-репозитория. Эта ссылка обязательна дляrepositories.deb.
URL репозиториев должны использовать HTTPS и не содержать учетные данные, параметры запроса или фрагмент. URL pip должен заканчиваться на /simple. Поддерживаются один основной и до 16 дополнительных индексов pip; для индексов на одном хосте используйте одинаковый credentialsSecretRef. Для APT поддерживается один репозиторий.
Секция repositories.pip допустима только при непустом списке pip, а repositories.deb — при непустом списке deb. В установке без доступа в интернет замените все адреса в примере, включая extraIndexes, на доступные внутри сети.