Sobes.tech
Назад к вопросам
Senior
5

Как ограничить CPU и память для контейнера в Kubernetes? Что произойдёт при превышении лимитов?

Компании, где спрашивали
WildberriesWildberries

Ответ от нейросети

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 может перезапустить контейнер в зависимости от политики рестарта.

Таким образом, лимиты помогают контролировать использование ресурсов и предотвращают негативное влияние одного контейнера на другие в кластере.