Kubernetes v1.36 [alpha](стандартно вимкнено)Випередження з урахуванням робочого навантаження (Workload-aware preemption) вводить механізм випередження, спеціально розроблений для PodGroups. Коли PodGroup не може бути запланована, планувальник використовує логіку випередження, яка намагається зробити можливим планування цієї PodGroup. Цей підхід використовується виключно під час планування PodGroup і замінює стандартний механізм випередження для подів з вказаної PodGroup.
Коли ця функція увімкнена, планувальник розглядає PodGroup як єдиний блок випередження, а не оцінює окремі поди з PodGroup окремо. Щоб звільнити місце для очікуючих подів у групі, він шукає жертви по всьому кластеру і знає, як обробляти та випереджати інші PodGroups як жертви відповідно до їхніх режимів розладу.
Ця функція залежить від Групового планування та Workload API. Переконайтеся, що у кластері увімкнено функціональні можливості GenericWorkload та GangScheduling, а також групу API. scheduling.k8s.io/v1alpha2
Процес випередження з урахуванням робочого навантаження дотримується тих самих принципів, що й стандартне випередження, з кількома відмінностями:
Домен по всьому кластеру: Замість оцінки випередження вузол за вузлом, планувальник оцінює весь кластер як єдиний домен. Він обирає набір жертв на кількох вузлах, які можна видалити, щоб звільнити достатньо місця для планування PodGroup.
Ієрархія важливості жертв: Планувальник визначає, які одиниці випередження (окремі поди або PodGroups) є більш критичними і повинні бути захищені від випередження, використовуючи сувору ієрархію:
Пріоритет і режим розладу групи подів: Планувальник враховує конкретний пріоритет і режим розладу PodGroup для оцінки того, чи можна випереджати її поди під час подій випередження.
priority або disruptionMode цієї PodGroup.