Сократить время ожидания для шкалы kubectl - PullRequest
0 голосов
/ 06 июня 2019

Необходимость мгновенного сокращения узлов, Kubernetes не позволяет разработчикам настраивать время до того, как узлы уменьшаются. В настоящее время значение по умолчанию составляет 10 минут.

Я занимаюсь разработкой приложения, которое требует много вычислительной мощности / часов. Я смотрю на запуск процесса A, который добавляет некоторые задачи в очередь заданий. Каждое из заданий 'требует в среднем 10-40 минут для обработки на экземпляре 6vCPU и 24 ГБ.

Когда вы применяете kubectl scale deployment <deployment-name>, он мгновенно уменьшает размеры стручков. Однако базовый узел будет уменьшаться только в том случае, если вычислительная мощность не использовалась в течение 10 минут.

Есть ли способ настроить это время ожидания? Стоит ли связываться с Google GKE или Kubernetes, чтобы разрешить исключение для моего конкретного варианта использования?

Я также попытался убить сам узел из модуля после обработки и прошел успешно, однако Kubernetes воссоздает удаленный экземпляр, поэтому моя попытка оказалась бесполезной.

Любой совет будет оценен.

kubectl scale deployments mydeployment --replica=0

Actual: Уменьшает стручки сразу, но через 10 минут масштабирует нижележащий узел. Требуется: мгновенно уменьшает вес модулей и узлов.

1 Ответ

1 голос
/ 10 июня 2019

Кажется, опция вроде "-scale-down-ненужный-время_" не поддерживается.В качестве обходного пути - если вы уверены, что закончили работу с узлом и больше не нуждаетесь в нем, вы можете уменьшить пул узлов GKE вручную, не дожидаясь, пока Cluster Autoscaler восстановит его автоматически.Команда для этого может быть найдена здесь

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

Если у вас недолговечная рабочая нагрузка, занимающая всю ВМ, и вы хотите выключить ВМ, как только это будет сделано, вам не нужен Kubernetes, он будет только мешать.Лучший способ добиться этого - создать виртуальную машину на Compute Engine для каждой задачи и выключить каждую виртуальную машину, как только она будет выполнена.Просто убедитесь, что вы поместили все необходимое для запуска задачи в образ виртуальной машины, чтобы не тратить время на загрузку и установку компонентов при запуске.

Надеюсь, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...