>_ IzzyLab

Практическое задание

Лимиты ресурсов в Deployment

сложно

В /root/limited.yaml уже описан рабочий Deployment api (образ myapi:1.0), но у контейнера не заданы ресурсы — в проде это опасно. Доработай манифест: добавь контейнеру requests (cpu 100m, memory 128Mi) и limits (cpu 500m, memory 256Mi).

Что потренируешь:
  • kubernetes
  • deployment
  • resources
  • requests-limits
  • yq

Разбор темы

У контейнера в Kubernetes два уровня ресурсов: requests — гарантированный минимум, по которому scheduler выбирает узел, и limits — потолок, при превышении которого память приводит к OOMKilled, а CPU троттлится. Оба блока живут в spec.template.spec.containers[].resources, значения — строки: CPU в милли-ядрах (100m = 0.1 ядра), память с суффиксом Mi (мебибайты). Без лимитов один под может съесть ресурсы всего узла — потому в проде их задают всегда; дописать блок в готовый Deployment удобно через yq.

Что проверяется

  1. Манифест валиден
  2. limit cpu 500m
  3. request memory 128Mi

Как это выглядит