我在使用helm
的k8s集群中部署了使用CeleryExecutor
的气流。我已经定义了工人的数量。我原本以为这是工人的最大数量,但看起来工人舱总是向上。所以这就变成了一个静态的工人数量。为了解决这个静态的工作者集合,我正在寻找使用HorizontalPodAutoScaler
使其成为动态的。好吧,我使用的是KubernetesPodOperator
,这意味着工作人员不做工作/任务本身,而是为每个任务旋转一个新的资源(Pod(。因此,这对我实现HorizontalPodAutoScaler
来说成了一个问题,因为我需要缩放工作人员的数量,但由于不是工作人员在做工作,因此它将无法正确地测量CPU/内存的使用情况以按比例放大/缩小。我认为HorizontalPodAutoScaler
可以用于运行KubernetesExecutor
的气流,但不确定CeleryExecutor
。基本上,我需要的是基于KubernetesPodOperator
将创建的pod的度量来实现HorizontalPodAutoScaler
,然后增加/减少工作者的数量。
那么,我该如何使用HorizontalPodAutoScaler
,或者是否有其他选择可以使员工规模动态?
如果您使用的是KubernetsExecutitor,则无需添加HorizontalPodAutoScaler,因为它确实基于矩阵缩放pod,从技术上讲,KubernetesExecutitor每次都会为即将执行的DAG创建新的pod,是的,您可以在DAG中为pod定义资源。如果气流部署在kube上,那么celeryExecutor不是个好主意。