Kubernetes: Под планирование / выселение отношения с запросами / лимитами - PullRequest
0 голосов
/ 21 марта 2020

Если у меня есть узел с 16 ГБ ОЗУ и модули с запросом памяти 1 ГБ и ограничением памяти 4 ГБ, сколько таких модулей будет запланировано на узле? 4 или 16?

Я думаю, это 16 на основе этого https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

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

А что, если модуль начнет использовать 4 ГБ памяти, которая находится в его пределах, он будет удален? перенесено?

У меня есть случай, когда мои модули обычно используют память X, но иногда используют память 4X. Как мне установить свои запросы и ограничения для этого случая? Должен ли я установить запрос на X или 4X?

Ответы [ 2 ]

1 голос
/ 22 марта 2020

Запросы : Это значение используется для планирования. Это минимальное количество ресурсов, необходимое контейнеру для запуска. Будьте внимательны, запрос не означает, что это всегда выделенные ресурсы для контейнера.

Limits : это максимальное количество этого ресурса, которое будет разрешено узлу используемые контейнеры.

https://sysdig.com/blog/kubernetes-pod-evicted/

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

  • Best Effort.
  • Пакеты с устойчивым использованием, использующие больше ресурсов, чем его запрос истощенный ресурс.
  • Пакетные пакеты, использующие меньше ресурсов, чем его запрос истощенного ресурса.

enter image description here

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

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

https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/

Контейнер может превысить свою память запрос , если узел имеет доступную память

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

https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/

1 голос
/ 21 марта 2020

Планировщик Kubernetes должен иметь возможность планировать 16 модулей, каждый с запросами памяти 1 ГБ, к узлу со свободной емкостью памяти 16 ГБ. Если в любой момент времени любой модуль начинает использовать больше памяти (в определенных пределах), ему будет разрешено делать так. Но в тот момент, когда общее потребление памяти выходит за пределы возможностей узла, блоки, которые потребляют больше, чем их запросы, будут случайным образом прерываться и перепланироваться, если не будет приоритета, в этом случае блоки с более низким приоритетом станут жертвой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...