Apache Airflow — это платформа с открытым исходным кодом, используемая для организации и планирования сложных рабочих процессов. Kubernetes, с другой стороны, представляет собой систему оркестровки контейнеров, которая упрощает развертывание и управление контейнерными приложениями. Сочетание мощи Airflow с Kubernetes может обеспечить масштабируемую и надежную среду для выполнения рабочих процессов. В этой статье блога мы рассмотрим несколько методов запуска Airflow в Kubernetes, а также приведем примеры кода.
Метод 1: использование диаграммы управления
Helm — это менеджер пакетов для Kubernetes, который упрощает развертывание приложений и управление ими. Airflow предоставляет официальную диаграмму Helm, которую можно использовать для ее развертывания в Kubernetes. Вот шаги, которые необходимо выполнить:
-
Установить Helm: если вы еще не установили Helm, вы можете следовать официальной документации, чтобы установить его на свой локальный компьютер.
-
Добавьте репозиторий Airflow Helm:
helm repo add apache-airflow https://airflow.apache.org helm repo update
-
Установите Airflow с помощью Helm:
helm install my-airflow apache-airflow/airflow
Метод 2. Использование YAML-манифеста Kubernetes
Если вы предпочитаете использовать YAML-манифесты Kubernetes для развертывания Airflow, вы можете выполнить следующие действия:
-
Создайте пространство имен:
kubectl create namespace my-airflow
-
Создайте PersistentVolumeClaim (PVC) для базы данных Airflow:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: airflow-db-pvc namespace: my-airflow spec: storageClassName: standard accessModes: - ReadWriteOnce resources: requests: storage: 10Gi
-
Создайте развертывание для Airflow:
apiVersion: apps/v1 kind: Deployment metadata: name: airflow namespace: my-airflow spec: replicas: 1 selector: matchLabels: app: airflow template: metadata: labels: app: airflow spec: containers: - name: airflow image: apache/airflow:latest ports: - containerPort: 8080 volumeMounts: - name: airflow-db mountPath: /opt/airflow/airflow.db volumes: - name: airflow-db persistentVolumeClaim: claimName: airflow-db-pvc
-
Примените манифесты YAML:
kubectl apply -f airflow.yaml
Метод 3. Использование операторов Kubernetes
Операторы Kubernetes — это специальные контроллеры, расширяющие функциональность Kubernetes API. Доступно несколько операторов Airflow, которые упрощают развертывание Airflow и управление им в Kubernetes. Одним из популярных операторов является оператор-астроном. Вот шаги по его использованию:
-
Установить Astronomer Operation:
helm repo add astronomer https://helm.astronomer.io helm repo update helm install my-operator astronomer/astro-operator
-
Создайте экземпляр Airflow с помощью оператора:
apiVersion: astro.astronomer.io/v1alpha1 kind: Astro metadata: name: my-airflow namespace: my-namespace spec: version: "2.1.0"
В этой статье мы рассмотрели несколько способов запуска Apache Airflow в Kubernetes. Вы можете выбрать тот метод, который соответствует вашим требованиям и предпочтениям. Независимо от того, используете ли вы диаграммы Helm, YAML-манифесты Kubernetes или такие операторы, как Astronomer Operations, запуск Airflow в Kubernetes обеспечивает масштабируемую и гибкую среду для эффективного управления вашими рабочими процессами.