Групове планування
Kubernetes v1.35 [alpha](стандартно вимкнено)Групове планування забезпечує, щоб група Podʼів була запланована з дотриманням принципу "все або нічого". Якщо кластер не може вмістити всю групу (або визначену мінімальну кількість Podʼів), жоден з Podʼів не привʼязується до вузла.
Ця функція залежить від PodGroup API. Переконайтесь, що увімкнено функціональну можливість GenericWorkload та групу API scheduling.k8s.io/v1alpha2 у кластері.
Як це працює
Коли втулок GangScheduling увімкнено, планувальник змінює життєвий цикл Podʼів, що належать до PodGroup, для якої встановлено політику планування типу gang. Для кожної PodGroup цей процес відбувається за такими кроками:
Планувальник утримує Podʼи у фазі
PreEnqueue, доки:- Вказаний обʼєкт PodGroup існує.
- Кількість Podʼів, створених для PodGroup, принаймні дорівнює
minCount.
Podʼи не потрапляють до активної черги планування, доки не будуть виконані обидві умови.
Після досягнення кворуму планувальник намагається знайти розміщення для всіх Podʼів у групі. Він використовує цикл планування PodGroup, щоб прийняти одне, атомарне рішення щодо планування. Втулок
GangSchedulingреалізує розширювану точкуPermit, яка оцінюється для кожного Pod, що підлягає плануванню. Це використовується для визначення, чи задовольняє обмеженняminCount, порівнюючи кількість успішно розміщених Podʼів з значеннямminCount.Якщо планувальник знаходить придатні місця для розміщення щонайменше
minCountподів, він дозволяє всім їм привʼязатися до призначених їм вузлів. Якщо він не може знайти достатньо місць для задоволення вимогиminCount, жоден з подів не планується. Натомість вони переміщуються до черги, що подів які неможливо спланувати на вузли, щоб чекати на звільнення ресурсів кластера, що дозволяє тим часом планувати інші робочі навантаження.
Що далі
- Дізнайтеся про PodGroup API та його життєвий цикл.
- Дізнайтеся про політики планування PodGroup.
- Дізнайтеся про планування PodGroup.