使用KubernetesPodOperator的Airflow DAG生成的Pod的Kubernetes Horizo​​ntalPodAutoscaler

时间:2020-03-09 15:01:43

标签: kubernetes airflow kubernetes-helm horizontalpodautoscaler

我使用CeleryExecutor将k helm部署在k8s集群中。我有定义的工人数量。我最初以为这是最大的工人人数,但看起来工人吊舱总是在工作。因此,这成为固定数量的工人。要解决此静态工人问题,我正在寻找使用HorizontalPodAutoScaler使其动态的工人。好吧,我正在使用KubernetesPodOperator,这意味着工作人员自己并没有完成工作/任务,而是将为每个任务分配新的资源(Pod)。因此,这对于我实现HorizontalPodAutoScaler来说是一个问题,因为我需要扩展工作人员的数量,但是由于不是由工作人员来完成工作,因此它将无法正确测量CPU /内存使用率来进行扩展/缩减。我认为HorizontalPodAutoScaler可用于运行KubernetesExecutor的气流,但不确定CeleryExecutor。基本上,我需要基于HorizontalPodAutoScaler将创建的pod的度量标准来实现KubernetesPodOperator,然后增加/减少工人的数量。

那么我该如何使用HorizontalPodAutoScaler或是否有其他替代方法可以使工作人员人数动态化?

1 个答案:

答案 0 :(得分:0)

如果您正在使用KubernetesExecutor而不需要添加Horizo​​ntalPodAutoScaler,因为它确实基于矩阵缩放容器,从技术上来说,KubernetesExecutor每次为要执行的DAG都创建一个新容器,是的,您可以在DAG中为容器定义资源。如果气流在kube上部署,那么celeryExecutor并不是一个好主意。