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 对象的引用,并期望更改其属性。
例如,这可以用于将 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"