我使用CeleryExecutor
将k helm
部署在k8s集群中。我有定义的工人数量。我最初以为这是最大的工人人数,但看起来工人吊舱总是在工作。因此,这成为固定数量的工人。要解决此静态工人问题,我正在寻找使用HorizontalPodAutoScaler
使其动态的工人。好吧,我正在使用KubernetesPodOperator
,这意味着工作人员自己并没有完成工作/任务,而是将为每个任务分配新的资源(Pod)。因此,这对于我实现HorizontalPodAutoScaler
来说是一个问题,因为我需要扩展工作人员的数量,但是由于不是由工作人员来完成工作,因此它将无法正确测量CPU /内存使用率来进行扩展/缩减。我认为HorizontalPodAutoScaler
可用于运行KubernetesExecutor
的气流,但不确定CeleryExecutor
。基本上,我需要基于HorizontalPodAutoScaler
将创建的pod的度量标准来实现KubernetesPodOperator
,然后增加/减少工人的数量。
那么我该如何使用HorizontalPodAutoScaler
或是否有其他替代方法可以使工作人员人数动态化?
答案 0 :(得分:0)
如果您正在使用KubernetesExecutor而不需要添加HorizontalPodAutoScaler,因为它确实基于矩阵缩放容器,从技术上来说,KubernetesExecutor每次为要执行的DAG都创建一个新容器,是的,您可以在DAG中为容器定义资源。如果气流在kube上部署,那么celeryExecutor并不是一个好主意。