Краткий обзор Apache Airflow Helm chart 1.5.0

Автор Категория ,
Краткий обзор Apache Airflow Helm chart 1.5.0

11 марта 2022 года вышла новая версия Apache Airflow Helm Сhart. Рассмотрим главные новинки релиза 1.5.0 и их практическую ценность с точки зрения прикладной дата-инженерии. А также разберем ключевые понятия этого менеджера пакетов Kubernetes.

Что такое Helm chart в Kubernetes и причем здесь Apache AirFlow

Напомним, Helm – это менеджер пакетов платформы контейнерной виртуализации Kubernetes, opne-source средство упаковки, которое помогает установить приложения Kubernetes и управлять их жизненным циклом. Например, необходимо запустить один микросервис с единой типовой конфигурацией для разных стран и/или регионов с различными отдельными параметрами среды. Каждое окружение имеет свои потребности и характеристики. Развертывания будут отличаться набором kubernetes-ресурсов, таких как сертификаты, доступы к базам данных, сопутствующие сервисов и пр. Helm позволяет модифицировать развертывания на базе единого шаблона конфигурации без ручного копирования и изменения. При этом Helm не обрабатывает исходный код приложения, а работает с образами, для создания которых потребуется инструмент CI/CD. Таким образом, Helm содержит инструменты для создания, отладки, компоновки и сопровождения конфигураций kubernetes-ресурсов, упрощая управление развертыванием контейнерных приложений за счёт перехватчиков (hooks) версионирования, повторного использования шаблонов и пакетов предварительно настроенных ресурсов, которые называются чартами (Chart). Аналогично диспетчерам пакетов Linux типа APT и Yum, Helm нужен для управления чартами Kubernetes.

Итак, чарт представляет собой пакет предварительно настроенных ресурсов Kubernetes – ЦП и памяти для работы контейнера, в который упаковано приложение и среда для его корректной работы, включая все нужные библиотеки, переменные окружения и пр. Согласно DevOps-идеям о непрерывной интеграции и поставке, а также управлению инфраструктурой как кодом, каждый новый релиз контейнерного приложения в кластере, работающего в кластере Kubernetes, можно рассматривать как chart. Один chart может быть установлен в одном и том же кластере много раз, при этом каждый раз при этом Helm устанавливает charts в Kubernetes, создавая новый release. Для поиска новых чартов есть поиск Helm по репозиториям (chart repositories).

Пакетные конвейеры обработки данных на Apache Airflow очень часто развертываются в кластере Kubernetes, о чем мы писали здесь и здесь. Apache Airflow Helm Chart запускает развертывание Airflow для оркестрации пакетных процессов обработки данных в кластере Kubernetes с помощью диспетчера пакетов Helm. Что нового добавлено в версии 1.5.0, рассмотрим далее.

Новинки релиза 1.5.0

В Apache Airflow Helm Chart 1.5.0 добавлены следующие новые фичи и улучшения:

  • поддержка пользовательских команд и аргументов в заданиях, чтобы применять их для миграции базы данных и создания пользовательских заданий;
  • поддержка PriorityClassName для веб-сервера, pgbouncer, планировщика, statsd, триггера и worker’ов – пользователь должен создать класс приоритета за пределами чарта и использовать его имя в полях priorityClassName;
  • поддержка оператора envFrom в развертывании Flower;
  • возможность распространения и настройки аннотаций airflowPodAnnotations к очистке подов, запущенной через cron-задания;
  • проверка скорости работы планировщика и триггера;
  • обновление git-sync до версии 3.4.0;
  • изменение настройки серверной части аутентификации по умолчанию на проверку с использованием сеанса, чтобы пользовательский интерфейс мог использовать API.

Также исправлены следующие ошибки:

  • URL-адрес elasticsearch при пустом имени пользователя и пароле;
  • монтирования конфигурационного файла airflow.cfg в контейнерах с ожиданием миграции AirFlow, что позволяет контейнерам инициализации работать, например, с секретными внешними URL-адресами sql alchemy;
  • предоставлена возможность логи сервиса учетных записей пода, чтобы отслеживать его из триггера, например, для использования с отложенным оператором.

Также внесены изменения в документацию, изменена версия AirFlow по умолчанию (теперь 2.2.4) и образ Redis.

С практической точки зрения наиболее важными из перечисленных обновлений для дата-инженера поддержка пользовательских команд и аргументов в заданиях, возможность приоритизировать классы и использовать оператор envFrom в развертывании Flower, а также распространять и настраивать аннотаций airflowPodAnnotations к очистке подов, запущенной через cron-задания. Для администратора кластера особенно полезна проверка скорости работы планировщика и триггера. Читайте в нашей новой статье про запуск AirFlow с кластере Kubernetes c помощью исполнителя и оператора пода, а также service-mesh решения Istio.

Освойте администрирование и эксплуатацию Apache AirFlow для организации ETL/ELT-процессов в аналитике больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Источники

  1. https://helm.sh/ru/docs/intro/using_helm
  2. https://airflow.apache.org/docs/helm-chart/1.5.0/changelog.html
  3. https://artifacthub.io/packages/helm/apache-airflow/airflow