@Valioozz

Равны ли запросы для Cgroups CPU shares при работе Kubernetes на нодах с разным количеством ядер (используя Docker)?

Я провел пару экспериментов
На 8 ядерной системе и на 4 ядерной выставлял 100m реквест CPU для контейнера в Kubernetes
в обоих случаях он прокидывался в итоге до уровня cgroups одинаково (как собственно я и ожидал)
cpu.shares=102
В документации Kubernetes в разделе “Meaning of CPU” написано
CPU is always requested as an absolute quantity, never as a relative quantity; 0.1 is the same amount of CPU on a single-core, dual-core, or 48-core machine.

Что меня немного смутило, но чуть ниже есть еще раздел
How Pods with resource limits are run
И там пишут про трансформацию
When using Docker:
- The spec.containers[].resources.requests.cpu is converted to its core value, which is potentially fractional, and multiplied by 1024. The greater of this number or 2 is used as the value of the --cpu-shares flag in the docker run command.

Из чего я сделал вывод что
0.1 is the same amount of CPU on a single-core, dual-core, or 48-core machine

0.1 в любой ситуации преобразуется в 100m (это я проверял тоже) и в шары везде протечет значение 102 . Получается имелось в виду что при задании реквествов тебе не надо что-то считать, но т.к. shares используется в расчете как коэффициенты
Шара – это относительный числовой параметр; его значение имеет смысл только в сравнении со значениями других шар, входящих в ту же cgroup

то в итоге все равно мы на разных системах будем получать разную мощность при одинаковых реквестах.

Если кто-то детально изучал вопрос, помогите пожалуйста.
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
@Valioozz Автор вопроса
Не равны, значение shares всегду будет относительным, из чего я сделал вывод что это предложение относится к лимитам которые будут абсолютными на любой системе.
0.1 is the same amount of CPU on a single-core, dual-core, or 48-core machine


Более подробно разобрал тему в посте - https://medium.com/targetprocess/настройка-потребл...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vitaly_il1
DevOps Consulting
0.1 is the same amount of CPU on a single-core, dual-core, or 48-core machine

Я не изучал глубоко и не тестировал, но ИМХО это утверждение верное.

В целом - К8S система сложная и могут быть нюансы в реализации. Для всех практических решений советую основываться на тестировании вашей системы (кода) с нагрузкой близкой к реальной.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы