Назад к вопросам
Wildberries
Senior
5
Как ограничить CPU и память для контейнера в Kubernetes? Что произойдёт при превышении лимитов?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Kubernetes для ограничения ресурсов контейнера используются поля resources.requests и resources.limits в манифесте Pod или Deployment.
- requests — гарантирует минимальное количество ресурсов, которые будут выделены контейнеру.
- limits — максимальное количество ресурсов, которое контейнер может использовать.
Пример ограничения CPU и памяти:
containers:
- name: my-container
image: my-image
resources:
requests:
memory: "256Mi"
cpu: "500m"
limits:
memory: "512Mi"
cpu: "1"
Что происходит при превышении лимитов:
- CPU: Если контейнер пытается использовать больше CPU, чем указано в лимите, Kubernetes ограничит его использование (throttling), но контейнер не будет убит.
- Память: Если контейнер превысит лимит памяти, он будет завершён (OOMKilled) ядром операционной системы, и Kubernetes может перезапустить контейнер в зависимости от политики рестарта.
Таким образом, лимиты помогают контролировать использование ресурсов и предотвращают негативное влияние одного контейнера на другие в кластере.