Когда модуль Kubernetes запланирован на конкретном узле, требуется, чтобы модуль имел достаточно ресурсов для запуска. Kubernetes знает ресурсы своего узла, но как kubernetes знает, сколько ресурсов потребуется для предварительного планирования, чтобы эффективно планировать его в узлах. Для этого будет использоваться requests
. Когда мы указываем request
ресурса, kubernetes гарантирует, что модуль получит такое количество ресурса.
С другой стороны, limit
ограничивает использование ресурса модулем. Кубернетес не позволят капсуле брать больше ресурсов, чем limit
. Когда дело доходит до ЦП, если вы запрашиваете больше kubernetes, вы будете искусственно регулировать скорость процессора. Если pod превышает limit
, то pod будет прерван. Проще говоря, просто limit
всегда больше, чем request
.
Этот пример даст вам представление о request
и limit
. Подумайте, что есть модуль, в котором вы задаете запрос памяти в 7 ГБ и ограничение памяти в 10 ГБ. В вашем кластере есть три узла, где узел 1 имеет 2 ГБ памяти, узел 2 имеет 8 ГБ памяти и узел 3 имеет 16 ГБ. Ваш модуль никогда не будет запланирован на node1. Но это будет либо запланировано на узле 2 или узле 3 в зависимости от текущего использования памяти модуля. Но если это запланировано на узле 3, оно будет прервано в любом сценарии, это превысит использование памяти на 10 ГБ.