В чем разница между Pod resources.limits и resources.requests в Kubernetes? - PullRequest
2 голосов
/ 07 марта 2019

Я читаю документацию kubernetes https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container

Но мне все еще не ясно, в чем разница между spec.containers[].resources.limits.cpu и spec.containers[].resources.requests.cpu и как это влияет на ограничение ресурсов

Не могли бы вы предложить несколько книг или книг, где это объясняется на английском языке?

Заранее спасибо

1 Ответ

1 голос
/ 07 марта 2019

Когда модуль 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 ГБ.

...