使用Apache Airflow在Kubernetes中创建部署

时间:2019-03-20 20:15:03

标签: deployment kubernetes airflow pod

我想创建一个部署kubernetes而不是一个pod。有办法做到这一点吗? 。我知道KubernetesPodOperator,但我想要的是:部署,而不是: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
                          )

谢谢

1 个答案:

答案 0 :(得分:1)

  

我想创建一个部署kubernetes而不是一个pod。有办法做到这一点吗?

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

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

的支持

总而言之,具有使用Airflow创建部署的能力更令人高兴,但不一定适合该工具的主要模式。我建议使用其他工具/方法来创建您的部署。