Существует ли «начальное выделение памяти», отличное от «предела» в Openshift/Kubernetes?
В Java у вас есть минимальное пространство кучи (-Xms
) и максимальное пространство кучи (-Xmx
). Минимальное пространство кучи выделяется для JVM с самого начала, «максимальное пространство кучи» — это предел, при котором JVM сообщит «нет места в куче» при его достижении.
Существуют ли такие разные значения (начальное и предельное) для пода в Openshift/Kubernetes или изначальное выделение памяти по какой-то причине всегда равно пределу?
1 ответ
В Kubernetes механизмы управления ресурсами, такими как ЦП и память,requests
иlimits
.
Requests
это то, что контейнер гарантированно получит. Если контейнер запрашивает ресурс, Kubernetes запланирует его только на узле, который может предоставить ему этот ресурс.
Limits
убедитесь, что контейнер никогда не превышает определенное значение. Контейнеру разрешено подниматься только до предела, а затем его ограничивают.
Если вы не указали ограничение процессора:
- Контейнер может использовать все ресурсы процессора, доступные на узле, на котором он работает, поскольку у него нет верхней границы ресурсов ЦП, которые он может использовать.
- Контейнеру автоматически назначается ограничение по умолчанию, когда он работает в пространстве имен, имеющем ограничение ЦП по умолчанию. Если есть необходимость изменить это, можно использовать LimitRange.
В ситуации, когда вы указали ограничение ЦП, но запрос ЦП не указан, Kubernetes автоматически назначает запрос ЦП, соответствующий лимиту.
Чтобы узнать больше, смотрите эту документацию и эту статью .