kubernetes - 使用 Apache Airflow 在 Kubernetes 中创建部署

标签 kubernetes deployment airflow

我想创建一个部署 kubernetes 而不是 pod。有没有办法在 apache Airflow 中做到这一点? 。我了解 KubernetesPodOperator,但我想要的是 Deployment 类型,而不是 Pod 类型。

Apache Airflow 中的 KubernetesPodOperator

k = KubernetesPodOperator(namespace='default',
                          image="ubuntu:16.04",
                          cmds=["bash", "-cx"],
                          arguments=["echo", "10"],
                          labels={"foo": "bar"},
                          secrets=[secret_file,secret_env]
                          volume=[volume],
                          volume_mounts=[volume_mount]
                          name="test",
                          task_id="task",
                          affinity=affinity,
                          is_delete_operator_pod=True,
                          hostnetwork=False,
                          tolerations=tolerations
                          )

谢谢

最佳答案

I want to create a deployment kubernetes instead of a pod. Is there a way to do it in apache airflow?

不是真的。 Apache Airflow是一个运行 DAG 中定义的批处理任务的工具这不符合在 Kubernetes Deployment 中运行工作负载的模式。 。部署适用于长期运行的服务类型的应用程序,除非发生崩溃或您显式终止/删除它,否则不会终止(通常是无状态微服务)

Kubernetes 中更适合 Apache Airflow 功能的 Controller 是 Job Controller 在运行时也会创建一个 Pod。但这就是 Airflow 提供更丰富的功能集的地方,例如支持 DAGs

总之,能够使用 Airflow 创建部署是一件好事,但不一定适合该工具的主要模式用法。我建议使用不同的工具/方法来创建部署。

关于kubernetes - 使用 Apache Airflow 在 Kubernetes 中创建部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55269464/

相关文章:

ruby-on-rails - Capistrano 部署、 Assets 管道、未找到 ruby​​-debug

python - 如何循环动态生成airflow任务并并行运行?

jenkins - 如何使用Prometheus运算符取消Jenkins指标

python - Kubernetes 的 Airflow GCP 连接问题 - Fernet key 必须是 32 个 url 安全的 base64 编码字节

kubernetes - 从 istio 获取 503 服务不可用

部署脚本 - 不确定从哪里开始

java - 在 Google Compute Engine VM 上执行 Java 文件

stored-procedures - OperationalError : (1414, 'OUT or INOUT argument 1 for routine ' 存储过程名称'不是 BEFORE 触发器中的变量或 NEW 伪变量')

postgresql - Airflow 中的 PostgresOperator 超时

kubernetes - 确保GCE/GKE上的XFS卷