Kubernetes v1.37: Менеджери ресурсів на рівні Pod переходять у бета

З випуском Kubernetes v1.37, можливість Pod-Level Resource Managers перейшла в статус Beta (типово вимкнена)!

Вперше представлена як можливість Alpha у Kubernetes v1.36, це вдосконалення розширює можливості Pod-Level Resources, надаючи Topology Manager, CPU Manager і Memory Manager у kubelet змогу використовувати декларації ресурсів на рівні Podʼа (.spec.resources) безпосередньо під час ухвалення рішень про розміщення на апаратних ресурсах.

Використання ресурсів рівня Podʼа менеджерами вузлів

До появи цієї можливості отримання ексклюзивних CPU-ядер, вирівняних за NUMA, або памʼяті для застосунків з критичною затримкою змушувало операторів кластерів робити вибір "все або нічого": призначати цілі запити ресурсів кожному контейнеру в Podʼі або повністю відмовитися від ексклюзивного вирівнювання за NUMA. Для сучасних робочих навантажень, що запускають легкі sidecar-контейнери (такі як агенти логування або експортери телеметрії), виділення спеціальних фізичних ядер допоміжним контейнерам було марнотратним.

Функція Pod-Level Resource Managers вирішує цю проблему, дозволяючи гібридні моделі розподілу ресурсів. Kubelet може резервувати ексклюзивні ресурси, вирівняні за NUMA, для основних контейнерів застосунків, одночасно розміщуючи sidecar-контейнери без класу Guaranteed у спільному пулі, ізольованому в межах Podʼа. Це забезпечує основним робочим навантаженням необмежену продуктивність, локальну для NUMA, тоді як sidecar-контейнери працюють в ізольованому спільному пулі Podʼа, отримуючи локальним вирівнюванням за NUMA та захистом від зовнішніх втручань вузла без використання спеціальних фізичних ядер.

Що нового у бета-версії

Перехід у бета-версію приносить ключові операційні та API покращення:

  • Перехід у бета-версію: Керується функціональною можливістю PodLevelResourceManagers, яку можна ввімкнути (типово вимкнена) у Kubernetes v1.37.
  • Звітування PodResources API: gRPC-сервіс v1 PodResources (PodResourcesLister) вводить поля верхнього рівня cpu_ids і memory у відповідях PodResources. Інструменти моніторингу та втулки пристроїв можуть безпосередньо запитувати ексклюзивні призначення на рівні Podʼа без подвійного підрахунку виділень контейнерів.

Початок роботи та надання відгуків

Для детального ознайомлення з технічними деталями та налаштуванням цієї можливості дивіться офіційну документацію:

Щоб ознайомитися з покроковим посібником з налаштування та розгортання робочих навантажень:

Щоб дізнатися більше про те, як призначати ресурси Podʼам:

Оскільки ця можливість проходить шлях від бета-версії до GA, ваш відгук є надзвичайно цінним. Повідомляйте про будь-які проблеми або діліться своїм досвідом через стандартні канали комунікації Kubernetes: