2

我正在评估我当前的 Airflow 部署从 Celery 执行器到 Kubernetes (K8s) 执行器的迁移,以利用资源的动态分配和 Pod 提供的任务的隔离。

我很清楚,我们可以使用原生 KubernetesPodOperator 通过 K8s 执行器在 K8s 集群上运行任务。但是,我找不到有关 K8s 执行器与其他运算符(例如 bash 和 athena)之间兼容性的信息。

这里的问题是是否可以在 K8s 驱动的 Airflow 上运行 bash(或任何其他)操作员,或者我应该将所有任务迁移到 KubernetesPodOperator?

谢谢!

4

1 回答 1

4

Kubernetes 执行器将与所有操作员一起工作。
使用 kubernetes 执行器将为每个任务创建一个工作 pod,而不是像 celery 执行器那样使用 celery 工作器。

使用KubernetesPodOperator将拉取任何特定图像以启动 pod 并执行您的任务。
因此,如果您要将KubernetesPodOperatorKubernetesExecutor一起使用,Airflow 将为您的任务启动一个工作 pod,该任务将启动一个 pod 并监视其执行。1 个任务的 2 个 pod。

如果您将BashOperatorKubernetesExecutor一起使用,Airflow 将启动一个工作 pod 并在该工作 pod 上执行 bash 命令。1 个 pod 用于 1 个任务。

于 2020-11-21T02:17:13.927 回答