Sobes.tech
Back to questions
Middle
10

Как Kubernetes использует cgroups для управления лимитами ресурсов?

Companies where asked
МТС DigitalМТС Digital

Answer from AI

sobes.tech AI

Kubernetes использует cgroups (control groups) для управления ресурсами контейнеров, таких как CPU и память. При создании пода kubelet через контейнерный рантайм (например, Docker или containerd) назначает контейнерам соответствующие cgroups с лимитами, заданными в спецификации пода (requests и limits).

Cgroups позволяют ядру Linux ограничивать и изолировать потребление ресурсов процессами. Kubernetes переводит значения ресурсов из манифеста в параметры cgroups:

  • CPU: лимитируется через квоты и период времени (cpu.cfs_quota_us и cpu.cfs_period_us), что ограничивает долю CPU.
  • Память: задаётся максимальный объём памяти, который контейнер может использовать (memory.limit_in_bytes).

Таким образом, cgroups обеспечивают эффективное и изолированное распределение ресурсов между подами, предотвращая превышение лимитов и обеспечивая гарантии качества обслуживания.