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"

这篇内容对您有帮助吗?