Kubernetes HorizontalPodAutoscaler для порожденных стручков группами Airflow DAG, использующими KubernetesPodOperator - PullRequest
0 голосов
/ 09 марта 2020

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

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

1 Ответ

0 голосов
/ 11 марта 2020

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

...