Kubernetes¶
Apache Airflow 的目標是成為一個對 Kubernetes 非常友善的專案,許多使用者在 Kubernetes 叢集中運行 Airflow,以便利用 Kubernetes 提供的更高穩定性和自動擴展選項。
Kubernetes 的 Helm Chart¶
我們維護一個 官方 Helm Chart,用於 Airflow,它可以幫助您定義、安裝和升級部署。Helm Chart 使用 官方 Docker 映像檔和 Dockerfile,它們也由社群維護和發布。
Kubernetes Executor¶
Kubernetes Executor 允許您在 Kubernetes 上將所有 Airflow 任務作為獨立的 Pod 運行。
KubernetesPodOperator¶
KubernetesPodOperator 允許您在 Kubernetes 上創建 Pod。
Pod 變異 Hook¶
Airflow 本地設定檔 (airflow_local_settings.py
) 可以定義一個 pod_mutation_hook
函數,該函數能夠在將 Pod 物件發送到 Kubernetes 客戶端進行排程之前對其進行變異。它接收一個單一參數作為對 Pod 物件的參考,並預期會更改其屬性。
例如,這可以用於將 sidecar 或 init 容器添加到由 KubernetesExecutor 或 KubernetesPodOperator 啟動的每個 worker Pod。
有關如何設定本地設定的詳細資訊,請參閱 設定本地設定。
from kubernetes.client.models import V1Pod
def pod_mutation_hook(pod: V1Pod):
pod.metadata.annotations["airflow.apache.org/launched-by"] = "Tests"