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"