Kubernetes¶
Apache Airflow 致力于成为一个非常兼容 Kubernetes 的项目,许多用户在 Kubernetes 集群内部运行 Airflow,以利用 Kubernetes 提供的增强稳定性和自动扩缩容功能。
Kubernetes的Helm Chart¶
我们维护了一个官方Helm chart用于Airflow,帮助您定义、安装和升级部署。该Helm Chart使用同样由社区维护和发布的官方Docker镜像和Dockerfile。
Kubernetes执行器¶
Kubernetes Executor 允许您在 Kubernetes 上将所有 Airflow 任务作为单独的 Pod 运行。
KubernetesPodOperator¶
KubernetesPodOperator 允许您在Kubernetes上创建Pod。
Pod 变异钩子¶
Airflow本地设置文件(airflow_local_settings.py)可以定义一个pod_mutation_hook函数,
该函数能够在将pod对象发送给Kubernetes客户端进行调度之前修改这些对象。它接收一个参数作为对pod对象的引用,
并预期会修改其属性。
例如,这可以用来为每个由KubernetesExecutor或KubernetesPodOperator启动的工作器Pod添加边车(sidecar)或初始化容器(init containers)。
有关如何配置本地设置的详细信息,请参阅配置本地设置。
from kubernetes.client.models import V1Pod
def pod_mutation_hook(pod: V1Pod):
pod.metadata.annotations["airflow.apache.org/launched-by"] = "Tests"