Kubernetes 与 Apache Airflow 的集成
Integration of Kubernetes with Apache Airflow
我们正在构建工作流调度应用程序。我们发现 Airflow 是工作流管理器的不错选择,而 Kubernetes 是集群管理器的不错选择。因此,流量将是
- 我们将向 Airflow 提交工作流 DAG。
- Airflow 应通过指定 docker 图像将给定 DAG 的任务提交给 Kubernetes。
- Kubernetes 应该通过 运行 docker 容器在集群的可用 EC2 工作节点上执行任务。
通过搜索,我们发现Airflow有与ECS、Mesos集成的Operator,但没有与Kubernetes集成的Operator。然而,我们在 Airflow wiki 上发现了对 Kubernetes Operator 的请求,但没有任何进一步的更新。
那么,问题简单的说就是,Airflow如何与Kubernetes集成?
这正在飞行中。你可以跟随 this major jira ticket
一个更稳定的分支(工作由这个团队的很多人领导)位于 bloomberg fork on github in the airflow-kubernetes-executor branch,尽管它正在从一个不断移动的 airflow master 重新定位。
我的分支上有一个分支,它可以解决许多短期问题并且运行良好,称为 frankensteins-monster。尽管它现在对我有用,但使用它需要您自担风险。我正在使用位于 scripts/ci/kubernetes/docker
.
中的 build.sh
脚本构建一个 docker 图像
祝你好运!
有两种将 Apache Airflow 与 Kubernetes 结合使用的方法:
通过将 Operator 与 KubernetesPodOperator 结合使用:
- 它在 Kubernetes 集群外部的 Kubernetes Pod 中执行特定任务
- 它允许您部署任意 Docker 个图像
- 您基本上将依赖项卸载到容器(这太棒了!)
或者使用 KubernetesExecutor:
- 每个任务实例一个新的 POD
- 您可以自定义您的任务(资源分配)
- 与 POD 执行器一样,您将依赖项卸载到容器
- 您让您的 Airflow 集群充满活力!不再像 Celery Executor 那样浪费资源的空闲节点。
- 你的 Airflow 集群变得容错(状态恢复)
- 等等
要进行快速实验,您可以按照我刚刚在此处制作的教程进行操作:
https://marclamberti.com/blog/airflow-kubernetes-executor/
希望对您有所帮助:)
干杯
我们正在构建工作流调度应用程序。我们发现 Airflow 是工作流管理器的不错选择,而 Kubernetes 是集群管理器的不错选择。因此,流量将是
- 我们将向 Airflow 提交工作流 DAG。
- Airflow 应通过指定 docker 图像将给定 DAG 的任务提交给 Kubernetes。
- Kubernetes 应该通过 运行 docker 容器在集群的可用 EC2 工作节点上执行任务。
通过搜索,我们发现Airflow有与ECS、Mesos集成的Operator,但没有与Kubernetes集成的Operator。然而,我们在 Airflow wiki 上发现了对 Kubernetes Operator 的请求,但没有任何进一步的更新。
那么,问题简单的说就是,Airflow如何与Kubernetes集成?
这正在飞行中。你可以跟随 this major jira ticket
一个更稳定的分支(工作由这个团队的很多人领导)位于 bloomberg fork on github in the airflow-kubernetes-executor branch,尽管它正在从一个不断移动的 airflow master 重新定位。
我的分支上有一个分支,它可以解决许多短期问题并且运行良好,称为 frankensteins-monster。尽管它现在对我有用,但使用它需要您自担风险。我正在使用位于 scripts/ci/kubernetes/docker
.
build.sh
脚本构建一个 docker 图像
祝你好运!
有两种将 Apache Airflow 与 Kubernetes 结合使用的方法:
通过将 Operator 与 KubernetesPodOperator 结合使用:
- 它在 Kubernetes 集群外部的 Kubernetes Pod 中执行特定任务
- 它允许您部署任意 Docker 个图像
- 您基本上将依赖项卸载到容器(这太棒了!)
或者使用 KubernetesExecutor:
- 每个任务实例一个新的 POD
- 您可以自定义您的任务(资源分配)
- 与 POD 执行器一样,您将依赖项卸载到容器
- 您让您的 Airflow 集群充满活力!不再像 Celery Executor 那样浪费资源的空闲节点。
- 你的 Airflow 集群变得容错(状态恢复)
- 等等
要进行快速实验,您可以按照我刚刚在此处制作的教程进行操作: https://marclamberti.com/blog/airflow-kubernetes-executor/
希望对您有所帮助:)
干杯