Рейтинг:0

K8S ограничивает количество стартовых модулей одновременно

флаг gp

У меня проблема с K8S, у меня около 30 микросервисов (java работает при весенней загрузке). Микросервисам нужно много процессоров только для запуска, потому что библиотек много. Когда я развертываю все микросервисы одновременно, это создает очень большую нагрузку на ЦП на узлах K8S, и они помечаются как недоступные. Мне нужно каким-то образом ограничить количество одновременно запускаемых модулей, чтобы избежать высокой загрузки процессора на узлах. Есть ли способ, как это сделать?

SYN avatar
флаг hk
SYN
Вам необходимо настроить лимиты/запросы ресурсов в зависимости от потребления.
Рейтинг:1
флаг mc

Вы можете установить процессор лимиты и запросы.

Как только вы установите их, даже если ограничения велики, среда выполнения kubelet и контейнера работает вместе, чтобы обеспечить соблюдение ограничений ЦП. Наряду с этим вы можете резервировать ресурсы для самого Kubernetes чтобы рабочая нагрузка не подвергала риску весь узел.

Как только вы определите их, ядро ​​Linux станет ответственным за соблюдение ограничений и обеспечение справедливого распределения доступных ресурсов. Если в вашем кластере есть наборы демонов, убедитесь, что у них тоже есть ресурсы и ограничения. Вы можете рассмотреть возможность запуска DaemonSets как гарантировано, так что их ресурс огражден. Видеть Настройка качества обслуживания для модулей.

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

Если вы обнаружите, что проблемы все еще существуют, вы можете предпринять дополнительный шаг: отложить каждый запуск на случайную величину. Вы можете сделать это без изменений приложения, запустив пользовательский начальный контейнер до запуска основного приложения. Эта случайная задержка помогает избежать громоподобное стадо проблемы, когда каждая JVM работает с одним и тем же шаблоном доступа к ресурсам в одно и то же время.

Рейтинг:0
флаг mc

Если вы уверены, что хотите ограничить количество подов, запускаемых во время развертывания, вы можете расширить свой кластер Kubernetes, развернув Выпуски Арго.

Приложив усилия, вы можете определить свой собственный механизм развертывания, чтобы ограничить количество одновременных развертываний, установив эфемерные метаданные а затем создайте свой собственный механизм (либо веб-перехватчик проверки допуска, либо плагин планирования), чтобы ограничить скорость, с которой модули с этими метками либо создаются, либо запускаются.

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

Ответить или комментировать

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