→
Перестаньте использовать CPU Limits в k8s (перевод)
Публичный пост для комнаты «Тех»
Тех
8 сентября 2023
797
Многие люди думают, что вам нужны ограничения по использованию ЦПУ на Kubernetes, но это не так. В большинстве случаев, ограничения по использованию ЦПУ на Kubernetes только вредят. Фактически, они являются одной из главных причин ограничения использования ЦПУ на Kubernetes.
Мой перевод статьи о том, почему использование CPU Limits в Kubernetes - не всегда хорошо.
Возможно у вас другое мнение - давайте обсудим. :)
Ох уж эти кликбейтные заголовки.
манипуляция, преувеличение и ложный посыл
вот это уже больше похоже на правду, действительно есть кейсы, когда CPU Limits могут навредить
Если у вас идеальный продукт в идеальном мире - не используйте лимиты.
Спасибо за перевод и приглашение к дискуссии.
На мой взгляд тема изначально холиварная, а выводы в статье не могут быть однозначны для всех случаев (при этом для узких кейсов справедливы)
Да, получают, потому что requests используются scheduler'ом для понимания на какой ноде запустить под с таким запросом. Scheduler проводит скоринг нод и если реквест подходит под доступные ресурсы на ноде он может быть на нее назначен. При этом получается что механизм реквестов никак не ограничивает под и гарантия получения CPU исходит из того что в теории для всех подов на ноде определены реквесты достаточные для предполагаемой нагрузки. Такой случай (не использовать лимиты) вполне реален когда целая нода предназначена для 1-2-3 жирных подов которым позволено утилизировать все на этой ноде их юзкейсом, при этом вероятность одновременных пиковых нагрузок на всех разом сведена к минимуму. Но если ноду делят десятки подов, это становится весьма рискованным мероприятием.
Зарезервирован только теоретически scheduler'ом при планировании, а после старта на ноде если другой такой же под без лимитов решить сожрать весь CPU кто гарантирует запрашиваемый нами CPU? Отсюда получается есть другой бест практис: сумма лимитов <= сумме ресурсов на ноде?
Да, общего с лимитами ничего нет. Реквесты - инструмент планирования, лимиты - инструмент ограничения.
Кажется что этот бестпрактис
должен звучать как: ИСПОЛЬЗУЙТЕ лимиты так, чтобы под их не достигал. А если произошел троттлинг, то это аномалия с которой нужно разбираться и искать причину.
А по памяти тоже очень спорный бест практис. Получается что для памяти все-таки лимиты необходимы, а для CPU можем их скипнуть (???)
Как и с CPU: реквесты - механизм планирования, лимиты - механизм ограничения после которых приходит OOM killer.
😱 Комментарий удален его автором...