Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • VibeCraft
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • GOST Gateway
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • SourceCraft
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Yandex Cloud Trust
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
  • Кейсы
  • Документация
  • Блог
Сделано на Gravity UI
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Cloud Stackland
  • Что нового
  • Установка
    • Все руководства
    • Установить Stackland на Yandex BareMetal
    • Установка Stackland на Yandex BareMetal через PXE
    • Установка Stackland на виртуальные машины в Yandex Cloud
    • Настройка внешнего доступа к поду в кластере
    • Проверка подписи собственных образов
    • Все инструкции
        • Включить Managed Service for Apache Airflow™
        • Создать кластер Apache Airflow™
        • Изменить настройки кластера Apache Airflow™
        • Получить учетные данные администратора Apache Airflow™
        • Открыть веб-интерфейс Apache Airflow™
        • Загрузить DAG-файлы в Apache Airflow™
        • Запустить DAG в Apache Airflow™
        • Посмотреть результаты и логи задач Apache Airflow™
        • Настроить Connections в Apache Airflow™
        • Настроить Variables в Apache Airflow™
        • Сохранить и восстановить Connections и Variables в Apache Airflow™
        • Приостановить или возобновить кластер Apache Airflow™
        • Удалить кластер Apache Airflow™
        • Устранение неполадок Apache Airflow™
        • Отключить Managed Service for Apache Airflow™
    • Проекты
    • Ресурсная модель
    • Масштабирование кластера
    • Лицензирование
  • Управление доступом
  • Правила тарификации
  • Диагностика и устранение неполадок

В этой статье:

  • Перед началом
  • Права доступа
  • Через консоль управления
  • Git-репозиторий
  • S3-хранилище
  • Через CLI
  • Приватный Git-репозиторий
  • Внешнее S3-хранилище
  • Дальнейшие действия
  1. Пошаговые инструкции
  2. Оркестрация данных
  3. Managed Service for Apache Airflow™
  4. Создать кластер Apache Airflow™

Создать кластер Apache Airflow™

Статья создана
Yandex Cloud
Обновлена 16 октября 2026 г.
Открыть в Markdown
  • Перед началом
    • Права доступа
  • Через консоль управления
    • Git-репозиторий
    • S3-хранилище
  • Через CLI
  • Приватный Git-репозиторий
  • Внешнее S3-хранилище
  • Дальнейшие действия

Кластер Apache Airflow™ создается ресурсом AirflowCluster в пространстве имен проекта. Перед созданием кластера администратор установки должен включить Managed Service for Apache Airflow™.

База метаданных создается автоматически. Настраивать подключение к базе не требуется.

Перед началомПеред началом

Подготовьте:

  • включенный компонент Managed Service for Apache Airflow™ и доступный каталог версий — это проверяет администратор установки;
  • пространство имен проекта;
  • Git-репозиторий с DAG-файлами или S3-совместимое хранилище;
  • S3-совместимое хранилище, если нужны удаленные логи задач;
  • Secret с учетными данными, если используется внешнее S3-хранилище. Для приватного Git-репозитория консоль управления создает Secret из введенных данных; при создании через CLI подготовьте Secret самостоятельно.

Создайте Secret и ConfigMap, на которые ссылается конфигурация, в том же пространстве имен, что и AirflowCluster.

Для автоматически создаваемых бакетов должен быть включен компонент Object Storage.

Права доступаПрава доступа

Доступ к консоли Stackland и доступ к веб-интерфейсу Apache Airflow™ настраиваются отдельно. Участие в проекте дает возможность видеть проект; для работы с его ресурсами администратор проекта должен назначить роль с нужными разрешениями.

При подготовке роли учитывайте следующие операции:

Сценарий

Разрешения Kubernetes

Просмотр списка и карточки кластера

get, list для airflowclusters в группе airflow.stackland.yandex.cloud в выбранном пространстве имен.

Создание, изменение и удаление кластера

Соответственно create, update и delete для airflowclusters; для изменения через YAML могут потребоваться права patch.

Выбор версии Apache Airflow™

get для кластерного ресурса airflowimagecatalogs с именем airflow в группе airflow.stackland.yandex.cloud. Это разрешение выдает администратор установки.

Выбор существующих Secret и ConfigMap

Чтение соответствующих ресурсов в пространстве имен. Для списков в форме нужно list.

Создание Secret и ConfigMap из введенных данных

Создание и чтение ресурсов, patch для привязки к кластеру и delete для очистки при ошибке или замене. При ошибке привязки после создания кластера консоль также удаляет созданный AirflowCluster.

Просмотр пароля администратора Apache Airflow™

get для административного Secret кластера.

Для выбора бакетов и AccessKey также нужен доступ к соответствующим ресурсам хранилища. Разрешения на запись DAG-файлов в Git или S3 выдаются отдельно от прав на управление кластером. Если форма сообщает об отказе в доступе, передайте администратору имя проекта, пространство имен, выполняемую операцию и текст ошибки.

Веб-интерфейс Apache Airflow™ использует собственную учетную запись. Получите ее данные по инструкции; назначение роли в проекте само по себе не создает пользователя Apache Airflow™.

Через консоль управленияЧерез консоль управления

  1. В консоли управления Stackland выберите проект и пространство имен.

  2. В левом меню выберите Кластеры Airflow. Если пункт скрыт, раскройте Ещё. Нажмите Создать кластер.

  3. В разделе Основные настройки укажите:

    • Имя кластера — уникальное имя в выбранном пространстве имен.
    • Версия Airflow — версию из доступного списка.
    • Защита от удаления — включите, чтобы предотвратить случайное удаление кластера. По умолчанию выключена.
    • Публичный доступ — оставьте включенным, чтобы открывать веб-интерфейс по HTTPS. При выключенном доступе потребуется перенаправление порта.
  4. В разделе DAG выберите Источник и настройте Git-репозиторий или S3-хранилище.

  5. При необходимости в разделе Компоненты задайте количество реплик и ресурсы планировщика, API-сервера, обработчика триггеров и обработчика DAG.

    Оставьте поля пустыми, чтобы использовать значения по умолчанию. Если задаете ресурсы компонента, заполните CPU и память в обеих группах: Запросы и Лимиты. Например, запрос CPU — 500m, памяти — 1Gi, лимит CPU — 1, памяти — 2Gi. Запрос не должен превышать лимит. Количество реплик должно быть не меньше 1.

  6. Чтобы сохранять логи после пересоздания подов, в разделе Логи задач включите Хранить логи удалённо и настройте хранилище так же, как для DAG в S3. Для DAG и логов используйте разные бакеты или разные пути внутри бакета.

  7. Если DAG требуют дополнительных библиотек, заполните раздел Дополнительные зависимости по инструкции. При необходимости добавьте параметры airflow.cfg.

  8. Нажмите Создать. Откройте созданный кластер и дождитесь состояния Ready.

    Если создание не завершается, откройте вкладку Состояния и проверьте причины неготовности. Рекомендации приведены в разделе Устранение неполадок.

Git-репозиторийGit-репозиторий

В поле Источник выберите Git-репозиторий и заполните раздел Git-источник DAG:

  • Адрес репозитория — HTTPS- или SSH-адрес, например https://git.example.com/team/airflow-dags.git или git@git.example.com:team/airflow-dags.git.
  • Git ref — ветку, тег или коммит, например main.
  • Путь к DAG — каталог внутри репозитория, например dags. Для корня репозитория оставьте поле пустым.

Для приватного HTTPS-репозитория в разделе Доступ к репозиторию включите Использовать аутентификацию и укажите Имя пользователя и Пароль. Вместо пароля можно использовать токен доступа, если это поддерживает ваш Git-сервис.

Для SSH включите Использовать аутентификацию, загрузите Приватный SSH-ключ и Файл known_hosts с ключом сервера. Получите проверенный файл known_hosts у администратора Git-сервиса.

Консоль создаст необходимые Secret и ConfigMap. Не включайте учетные данные в адрес репозитория.

S3-хранилищеS3-хранилище

В поле Источник выберите S3-хранилище. В разделе S3-источник DAG задайте Тип хранилища:

Stackland Storage
Внешний S3

Для Object Storage в Stackland выберите Stackland Storage:

  • Способ настройки бакета — Создать автоматически или Выбрать существующий. Во втором случае укажите Существующий бакет из выбранного пространства имен.
  • Способ настройки AccessKey — Создать автоматически или Выбрать существующий. Во втором случае укажите Существующий AccessKey. Его права должны разрешать доступ к бакету.
  • Путь в bucket — префикс объектов с DAG-файлами, например dags/. Не добавляйте / в начале пути. Пустое поле означает корень бакета.

При автоматической настройке оператор создаст бакет и ресурсы доступа. Имена созданных ресурсов появятся в карточке кластера.

Для внешнего S3-совместимого хранилища выберите Внешний S3:

  • Имя бакета — имя существующего бакета.
  • Secret с credentials — Secret с ключами доступа в том же пространстве имен. До заполнения формы создайте его через CLI или попросите администратора подготовить этот ресурс: в форме выбирается уже существующий Secret.
  • Ключ с Access Key ID и Ключ с Secret Access Key — имена записей в Secret, например access-key-id и secret-access-key.
  • Endpoint URL, Регион и Использовать path-style addressing — настройки подключения вашего S3-сервиса.
  • Путь в bucket — префикс DAG-файлов, например dags/, или пустое поле для корня бакета.

Если эндпоинт использует собственный центр сертификации, в поле Custom CA выберите Загрузить сертификат и загрузите CA-сертификат в формате PEM либо выберите Существующий ресурс и укажите Secret или ConfigMap и ключ сертификата.

Для удаленного хранения логов эти же поля доступны в разделе Логи задач после включения Хранить логи удалённо. Ключ доступа должен разрешать запись логов и их чтение.

Через CLIЧерез CLI

Проверьте доступные версии Apache Airflow™:

kubectl get airflowimagecatalog airflow \
  -o jsonpath='{range .spec.images[*]}{.version}{"\n"}{end}'

Если команда не выводит версии, посмотрите структуру ресурса: kubectl get airflowimagecatalog airflow -o yaml.

  1. Создайте файл ресурса AirflowCluster, например airflow-cluster.yaml, и вставьте одну из конфигураций:

    Git и локальные логи
    Object Storage для DAG и логов

    Пример использует публичный Git-репозиторий и локальные логи задач.

    apiVersion: airflow.stackland.yandex.cloud/v1alpha1
    kind: AirflowCluster
    metadata:
      name: airflow-demo
    spec:
      version: "3.1.8"
      dags:
        source: git
        git:
          repo: https://github.com/example/airflow-dags.git
          ref: main
      publicAccess: true
      deletionProtection: true
    

    Пример создает отдельные бакеты для DAG-файлов и логов задач. DAG-файлы загружаются из префикса dags/ в бакете.

    apiVersion: airflow.stackland.yandex.cloud/v1alpha1
    kind: AirflowCluster
    metadata:
      name: airflow-demo
    spec:
      version: "3.1.8"
      dags:
        source: s3
        s3:
          type: stackland-storage
          stacklandStorage:
            subPath: dags/
      taskLogs:
        type: stackland-storage
        stacklandStorage:
          subPath: logs/
      publicAccess: true
      deletionProtection: true
    
  2. Укажите имя кластера в metadata.name и доступную версию в spec.version. Для Git-источника замените URL репозитория и значение ref на свои.

    В обоих примерах включены публичный доступ к веб-интерфейсу (spec.publicAccess: true) и защита от удаления (spec.deletionProtection: true). При необходимости измените эти параметры.

  3. Примените манифест:

    kubectl apply -f airflow-cluster.yaml -n <пространство_имен>
    

    Пространство имен также можно указать в metadata.namespace манифеста и не передавать параметр -n в команде.

  4. Дождитесь состояния Ready, подставив имя кластера из metadata.name:

    kubectl get airflowcluster <имя_кластера> \
      -n <пространство_имен> \
      -w
    
  5. Если кластер долго остается в Provisioning или переходит в Failed, проверьте условия состояния в status.conditions:

    kubectl describe airflowcluster <имя_кластера> -n <пространство_имен>
    

    Рекомендации приведены в разделе Устранение неполадок.

Приватный Git-репозиторийПриватный Git-репозиторий

Для HTTPS создайте Secret с фиксированными ключами username и password:

kubectl create secret generic airflow-git-auth \
  -n <пространство_имен> \
  --from-literal=username=<имя_пользователя> \
  --from-literal=password=<токен_или_пароль>

Добавьте ссылку в spec.dags.git.authSecretRef манифеста:

spec:
  dags:
    source: git
    git:
      repo: https://git.example.com/team/airflow-dags.git
      ref: main
      authSecretRef:
        name: airflow-git-auth

Для SSH Secret должен содержать ключ ssh-privatekey, а ConfigMap — ключ known_hosts:

spec:
  dags:
    source: git
    git:
      repo: git@git.example.com:team/airflow-dags.git
      ref: main
      authSecretRef:
        name: airflow-git-ssh
      knownHostsConfigMapRef:
        name: airflow-git-known-hosts

Интервал синхронизации Git и S3 составляет 60 секунд и не настраивается.

Внешнее S3-хранилищеВнешнее S3-хранилище

Создайте Secret с ключами доступа:

kubectl create secret generic airflow-s3-credentials \
  -n <пространство_имен> \
  --from-literal=access-key-id=<идентификатор_ключа> \
  --from-literal=secret-access-key=<секретный_ключ>

Для DAG-файлов задайте в spec:

spec:
  dags:
    source: s3
    s3:
      type: s3
      s3:
        bucket: airflow-dags
        region: ru-central1
        endpointUrl: https://storage.yandexcloud.net
        credentialsSecretRef:
          name: airflow-s3-credentials
          accessKeyIdPath: access-key-id
          secretAccessKeyPath: secret-access-key
        subPath: dags/

Для удаленных логов задайте в spec поле taskLogs:

spec:
  taskLogs:
    type: s3
    s3:
      bucket: airflow-logs
      region: ru-central1
      endpointUrl: https://storage.yandexcloud.net
      credentialsSecretRef:
        name: airflow-s3-credentials
        accessKeyIdPath: access-key-id
        secretAccessKeyPath: secret-access-key
      subPath: logs/

Дальнейшие действияДальнейшие действия

  • Получите учетные данные администратора.
  • Откройте веб-интерфейс Apache Airflow™.
  • Загрузите DAG-файлы и запустите DAG.
  • Измените настройки кластера, если требуется настроить ресурсы или зависимости.

Была ли статья полезна?

Предыдущая
Включить Managed Service for Apache Airflow™
Следующая
Изменить настройки кластера Apache Airflow™
Сделано на Gravity UI
Проект Яндекса
© 2026 ООО «Яндекс.Облако»