Плагин Kubernetes Jenkins Создание дополнительных ресурсов для ожидающих рабов - PullRequest
1 голос
/ 15 марта 2019

У меня есть вопрос о том, как работает плагин Jenkins Kubernetes.Я использую Google Cloud, Jenkins, Helm и Kubernetes для настройки моей среды.Я использовал эти инструкции для настройки jenkins на kubernetes:

https://cloud.google.com/solutions/jenkins-on-kubernetes-engine-tutorial

В этом уроке через файл helm ведомые устройства потребляют память 500 мКП и 256Mi с пределом до 1 ЦП и512MI.Затем я использую плагин Kubernetes jenkins, который работает так, как я себе представляю.Он в основном использует мои доступные ресурсы в моих пулах или узлах kubernetes, чтобы создать агентов для выполнения моих заданий на jenkins.

Моя проблема заключается в следующем: из учебника мои доступные пулы - это 2 узла с 2 ЦПУ по 7,5 ГБ каждый.Некоторые из этих ресурсов используются jenkins для работы сервера и т. Д., Что означает, что у меня нет всех доступных ресурсов.На моем сервере Jenkins я изменил поле «Предел параллелизма» на 20, я выполнил 20 заданий, ожидая, что одновременно будут созданы и использованы 20 исполнителей, но только 8 были созданы и использованы.Другие были в автономном режиме и приостановлены.Я предполагаю, что только 8 были созданы, потому что у моего кластера не было достаточно ресурсов, чтобы создать больше исполнителей?Затем исполнители могли бежать, когда некоторые задания были завершены, а исполнители были прекращены.Итак, теперь мой вопрос: есть ли способ добавить больше ресурсов (модулей, узлов или чего бы то ни было) для того, чтобы я смог достичь своего предела параллелизма, если получится, что я выполняю 20 заданий, чтобымой предел параллелизма достигнут, и ни одна из моих работ не должна ждать? Я хочу сделать это, поскольку некоторым из моих исполнителей может не потребоваться много ресурсов процессора (например, 100 МПУ), но могут быть и другие, которым может потребоваться 1 ЦПУ иТеперь, когда настройки кластера уже выполнены, я смогу выполнить задание MAYBE 1 за один раз, что займет все 20 заданий.Если я каким-то образом смогу изменить размер своего кластера, создав больше узлов или модулей, а затем удалим их, тогда это облегчит масштабирование, оставаясь при этом динамичным.У кого-нибудь есть совет, как этого добиться?спасибо

1 Ответ

0 голосов
/ 05 июля 2019

Поскольку вы используете Google Cloud, вы можете отредактировать существующий пул узлов , чтобы включить автомасштабирование :

Автоматическое масштабирование кластеров в GKE автоматически изменяет размеры кластеров в зависимости от требований рабочих нагрузок, которые вы хотите запустить. При включенном автоматическом масштабировании GKE автоматически добавляет новый узел в ваш кластер, если вы создали новые блоки, у которых недостаточно мощности для запуска; и наоборот, если узел в вашем кластере используется недостаточно и его модули могут быть запущены на других узлах, GKE может удалить этот узел.

Это означает, что когда вам нужно, в пул узлов будет добавлено больше узлов для удовлетворения потребности в ресурсах для вашей рабочей нагрузки.

В качестве альтернативы, и если у вас достаточно места в вашем узле, вы можете увеличить количество модулей, используя Горизонтальное автоматическое масштабирование модуля :

Horizontal Pod Autoscaler автоматически масштабирует количество модулей в контроллере репликации, развертывании или наборе реплик на основе наблюдаемой загрузки ЦП

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

...