Airflow 峰會 2025 將於 10 月 07-09 日舉行。立即註冊享受早鳥票優惠!

Kubernetes

Apache Airflow 致力於成為一個非常 Kubernetes 友好的專案,許多使用者在 Kubernetes 叢集內部執行 Airflow,以利用 Kubernetes 提供的更高的穩定性和自動擴縮容選項。

Kubernetes 的 Helm Chart

我們維護一個 官方 Helm chart,用於 Airflow 的定義、安裝和升級部署。此 Helm Chart 使用 官方 Docker 映象和 Dockerfile,它們也由社群維護和釋出。

Kubernetes 執行器

Kubernetes 執行器 允許您在 Kubernetes 上將所有 Airflow 任務作為獨立的 Pod 執行。

KubernetesPodOperator

KubernetesPodOperator 允許您在 Kubernetes 上建立 Pod。

Pod 變異鉤子

Airflow 本地設定檔案 (airflow_local_settings.py) 可以定義一個 pod_mutation_hook 函式,該函式能夠在將 pod 物件傳送給 Kubernetes 客戶端進行排程之前對其進行變異。它接收一個引數,該引數是對 pod 物件的引用,並且該函式應該修改其屬性。

例如,這可以用於為 KubernetesExecutor 或 KubernetesPodOperator 啟動的每個 worker pod 新增 sidecar 或 init 容器。

有關如何配置本地設定的詳細資訊,請參閱 配置本地設定

from kubernetes.client.models import V1Pod


def pod_mutation_hook(pod: V1Pod):
    pod.metadata.annotations["airflow.apache.org/launched-by"] = "Tests"

這篇文章有幫助嗎?