Щоб скористатися цією функцією, вам (або адміністратору кластера) потрібно увімкнути функціональну можливість GenericWorkload для всіх відповідних компонентів у вашому кластері.
Перегляньте Увімкнення або вимкнення функціональних можливостей для отримання додаткової інформації.
PodGroup планується як одиниця, яка захищена від передчасного видалення, поки її Podʼи все ще працюють.
PodGroups належать контролеру Workload, який їх створив (наприклад, Job), через стандартні ownerReferences. Коли обʼєкт-власник видаляється, PodGroups автоматично прибираються сміттєзбирачем.
Імена PodGroup повинні бути унікальними в межах простору імен і відповідати дійсним
DNS-піддоменам.
Контролери повинні створювати обʼєкти в такому порядку:
Workload — шаблон політики планування.PodGroup — екземпляр під час виконання.Pods — з spec.schedulingGroup.podGroupName, що вказує на PodGroup.Якщо PodGroup включає podGroupTemplateRef, який вказує на Workload, що не існує (або видаляється), сервер API відхиляє запит на створення PodGroup. Вказаний Workload повинен існувати перед створенням PodGroup.
Якщо Pod посилається на PodGroup, який ще не існує, Pod залишається в стані очікування. Планувальник автоматично ставить Pod у чергу для планування, як тільки PodGroup буде створено.
PodGroup не може бути повністю видалено, поки будь-які його Podʼи все ще працюють. Спеціальний фіналізатор забезпечує блокування видалення, поки всі Pod, що посилаються на PodGroup, не досягнуть кінцевої фази (Succeeded або Failed).
У більшості випадків контролери робочих навантажень (наприклад, Job) створюють PodGroups автоматично (керуються контролером). Контролер визначає podGroupName для кожного Podʼа під час створення, аналогічно тому, як DaemonSet встановлює спорідненість вузлів для кожного Podʼа.
Якщо вам потрібно більше контролю над іменуванням та життєвим циклом, ви можете безпосередньо створювати обʼєкти PodGroup та самостійно встановлювати spec.schedulingGroup.podGroupName у своїх шаблонах Pod (керовані користувачем). Це надає вам повний контроль над створенням та іменуванням PodGroup.
PodGroup повинні використовувати той самий .spec.schedulerName. Якщо виявлено невідповідність, планувальник відхиляє всі Podʼи в групі як такі, що не можуть бути заплановані.PodGroup повинні використовувати той самий .spec.priority. Якщо виявлено невідповідність, планувальник відхиляє всі Podʼи в групі як такі, що не можуть бути заплановані.PodGroup повинні використовувати той самий .spec.preemptionPolicy. Якщо виявлено невідповідність, планувальник відхиляє всі Podʼи в групі як такі, що не можуть бути заплановані.spec.schedulingGroup у Pod є незмінним. Після встановлення Pod не може перейти до іншої PodGroup.PodGroupTemplates в одному Workload становить 8.PodGroupTemplates.basic та gang.