Как стать автором
Обновить

Запросы и лимиты в Kubernetes: разбираемся в деталях

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров11K
Всего голосов 24: ↑21 и ↓3+34
Комментарии8

Комментарии 8

Стоит отметить, что все чаще практикуется подход, где устанавливаются реквесты по CPU, RAM, устанавливаются лимиты по RAM, но не устанавливаются лимиты CPU, позволяя временный Overcommit ресурсов если они есть на машине, пока не отработает автоскейлер дальше. А приложения лучше успевают пройти пик нагрузок без тротлинга со стороны ядра.

Ну и еще стоит отметить разные типы QoS если заданы ресурсы и лимиты и то, как это влияет на класс пода и его приоритет при вытеснении (Eviction) с машины.

Я пришел к такой практике:

  1. Выставляю для памяти одинаковые значения для реквеста и лимита

  2. Для CPU выставляю только значение реквеста

Данные для реквестов и лимитов выставляю спустя некоторое время на основе анализа потребления ресурсов из Prometheus за какое-то время.

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

А в чём преимущество ставить "для памяти одинаковые значения для реквеста и лимита"?

Согласно документации поду гарантированно выдаются ресурсы из реквеста. Если я знаю, что мое приложение со всеми пиками ест Х памяти, то и имеет смысл отдать ему столько, ну, плюс небольшой запас на всякий случай накинуть.

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

Хотел бы заметить что MiB это мебибайты, которые более "честные" в расчетах тех же дисков, так как 1KiB равен 1024 байтам, но обычный 1KB это 1000 байт.

А как связаны DaemonSet и желание повесить под на определенную ноду? DaemonSet отскейлит под на все ноды. А чтобы под работал на ноде с определенными ресурсами, то как вариант можно использовать affinity или node selector

>Если в распоряжении нет подов, которые соответствовали бы выданным запросам, то Kubernetes вообще не будет назначать под.
Тут автор, возможно, имел ввиду "Если в распоряжении нет узлов"

>то на узле можно будет разместить более одного пода в каждый момент времени
А тут "не более одно пода"

Спасибо большое за статью!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий