Промышленный деплой Apache Airflow в Kubernetes

Статья описывает развертывание Apache Airflow в Kubernetes с акцентом на безопасность и наблюдаемость. Для управления секретами предлагается использовать SOPS, который шифрует конфиденциальные данные на уровне файлов, что позволяет безопасно хранить их в репозиториях. Для структурирования и избежания дублирования конфигураций в YAML-файлах применяются якоря, обеспечивающие централизованное управление параметрами. В статье подчеркивается важность использования KubernetesExecutor для выполнения задач DAG в отдельных подах. Ресурсы для этих подов настраиваются с учетом однопоточной природы Python, ограничивая использование CPU до одного ядра по умолчанию.
Промышленный деплой Apache Airflow в Kubernetes
Изображение носит иллюстративный характер

Для мониторинга Apache Airflow используется Prometheus StatsD Exporter, собирающий метрики, с последующей визуализацией в Grafana. Логирование подов, выполняющих DAG, реализуется через FluentBit с фильтрацией и преобразованием для удобного анализа в Graylog. Статья подробно разбирает конфигурацию FluentBit, включая фильтрацию нерелевантных логов и структурирование данных для облегчения поиска. Отмечается интеграция с MinIO для хранения логов выполнения задач DAG, которые настраиваются через переменные окружения и коннекшены Airflow.

В качестве базы данных используется MySQL, также настраиваемый с помощью секретов. В статье приведены примеры конфигурации, включающие использование ServiceMonitor для метрик, конфигурацию MinIO и примеры создания коннекшенов в Airflow. Описываются способы деплоя с помощью Helm, включая установку и обновление чартов с зашифрованными секретами. Весь процесс направлен на создание отказоустойчивой и масштабируемой системы, обеспечивающей прозрачность ETL-процессов.


Новое на сайте