Kubernetes HorizontalPodAutoscaler для подов, порождаемых группами Airflow DAG, которые используют KubernetesPodOperator

Я использую воздушный поток CeleryExecutor развернут в кластере k8s с использованием helm. У меня определено количество рабочих. Первоначально я думал, что это максимальное количество рабочих, но похоже, что рабочие модули всегда активны. Таким образом, это становится статическим числом рабочих. Чтобы разрешить этот статический набор рабочих, я хочу сделать его динамическим, используяHorizontalPodAutoScaler. Ну я используюKubernetesPodOperatorЭто означает, что рабочие не выполняют работу / задачу сами, а создают новый ресурс (под) для каждой задачи. Поэтому для меня возникает проблема реализацииHorizontalPodAutoScalerпотому что мне нужно масштабировать количество рабочих, но поскольку рабочие не выполняют эту работу, он не сможет правильно измерить использование ЦП / памяти для увеличения / уменьшения. я думаюHorizontalPodAutoScaler может использоваться для работы воздушного потока KubernetesExecutor но не уверен насчет CeleryExecutor. В основном мне нужно реализоватьHorizontalPodAutoScaler на основе показателей модулей, которые KubernetesPodOperator создаст, а затем увеличит / уменьшит количество рабочих.

Итак, как мне использовать HorizontalPodAutoScaler или есть ли другая альтернатива, чтобы сделать размер рабочего стола динамическим?

1 ответ

Если вы используете KubernetesExecutor, то добавлять HorizontalPodAutoScaler нет необходимости, поскольку он масштабирует модули на основе матрицы, технически KubernetesExecutor создает новый модуль каждый раз для DAG, который будет выполняться, да, вы можете определить ресурс в DAG для модуля. Если воздушный поток развернут на кубе, то celeryExecutor не очень хорошая идея.

Другие вопросы по тегам