Пакетная производительность Kubernetes с активацией тысяч контейнеров с помощью заданий - PullRequest
0 голосов
/ 10 мая 2019

Я пишу конвейер с kubernetes в облаке Google.

Мне нужно иногда активировать несколько контейнеров в секунду, где каждый модуль - это задача, которая выполняется внутри модуля.

Я планирую вызвать kubectl run с заданием Kubernetes и дождаться его завершения (опрашивать каждую секунду все запущенные модули) и активировать следующий шаг в конвейере.

Я также буду следить за размером кластера, чтобы убедиться, что яя не превышаю максимальное использование ЦП / ОЗУ.

Я могу одновременно выполнять десятки тысяч заданий.

Я не использую стандартные конвейеры, потому что мне нужно создать динамическое числозадачи в конвейере.

Я выполняю пакетную операцию, чтобы справиться с задержкой.

Это лучший подход?Сколько времени нужно, чтобы создать стручок в Kubernetes?

1 Ответ

2 голосов
/ 11 мая 2019

Если вы хотите запустить десять тысяч рабочих мест одновременно - вам обязательно нужно спланировать распределение ресурсов.Вам нужно оценить количество узлов, которые вам нужны.После этого вы можете создать все узлы одновременно или использовать автоматическое масштабирование кластера GKE для автоматического добавления новых узлов в ответ на потребность в ресурсах.Если вы предварительно выделите все узлы одновременно - у вас, вероятно, будет высокий счет в конце месяца.Но стручки могут быть созданы очень быстро.Если вы изначально создаете только небольшое количество узлов и используете кластерный автоскалер - вы столкнетесь с большими задержками, потому что запуск узлов занимает несколько минут.Вы должны решить, каким будет ваш подход.

Если вы используете кластерный автоскалер - не забудьте указать максимальное количество узлов в кластере.

Еще одна важная вещь - вы должны поместить свои работы в гарантированный качество обслуживания в Kubernetes.В противном случае, если вы используете капсулы Best Effort или Burstable - вы получите кошмар Eviction, который действительно ужасен и неуправляем.

...