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"

這個條目有幫助嗎?