Назад | Перейти на главную страницу

Обнаружение расточительных или избыточно выделенных модулей в «полном», но недостаточно загруженном кластере Kubernetes

Я работаю в кластере Kubernetes, где сейчас около 95% процессоров и 90% памяти выделены под поды. Однако, согласно Kubernetes Dashboard, общая мгновенная загрузка ЦП в кластере составляет всего около 5% от общего количества ядер в кластере, а общая используемая память составляет всего около 33% от общей памяти в кластере. Так ясно, что некоторые и, возможно, большинство поды, работающие в кластере, сильно перегружены; большая часть запрошенных ЦП и памяти фактически не используется в любой момент времени.

Как мне узнать который больше всего в этом виноваты стручки? Панель инструментов покажет мне, сколько ресурсов каждого узла выделено и какие ресурсы фактически используются в каждом запущенном модуле. Но чтобы увидеть запросы стручка, я должен kubectl describe Это; Я нигде не могу найти запросы на панели инструментов. Более того, когда модуль завершает работу и очищается, он исчезает, и я не знаю, как задать такие вопросы, как «Какая часть запрошенной памяти использовалась этим готовым модулем на пике?», или «Сколько часов работы в ядре этот модуль запросил, но не использовал за время своего существования?».

Какие существуют инструменты для поиска и диагностики потраченных впустую, запрашиваемых, но не потребленных ресурсов в кластерах Kubernetes? И какие передовые методы следует использовать для подбора модулей под рабочие нагрузки? Я думаю, что мы попали в эту ситуацию, позволив всем пользователям просто удваивать свои запросы ресурсов, пока их поды не перестанут выселяться.

Этого можно достичь с помощью Вертикальный модуль автомасштабирования (VPA)

Даже если ты бежишь HPA Вы можете включить режим рекомендаций, который будет рассчитывать рекомендуемые требования к ресурсам для модулей, ничего не меняя автоматически.

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

...

"Off": VPA не изменяет автоматически требования к ресурсам модулей. Рекомендации рассчитываются и могут быть проверены в объекте VPA.

Альтернативные способы достижения этого могут быть выполнены с помощью графана.

В случае кластера GKE на GCP есть обозреватель показателей.

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