Випередження з урахуванням робочого навантаження
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) є більш критичними і повинні бути захищені від випередження, використовуючи сувору ієрархію:
- Пріоритет: Одиниці з вищим пріоритетом завжди важливіші.
- Тип робочого навантаження: PodGroups вважаються важливішими за окремі поди з тим самим пріоритетом.
- Розмір групи (PodGroups): Якщо обидві одиниці є PodGroups, та, що має більше членів (більший розмір), вважається важливішою.
- Час запуску: Одиниці, які були запущені раніше, є важливішими.
Пріоритет і режим розладу групи подів: Планувальник враховує конкретний пріоритет і режим розладу PodGroup для оцінки того, чи можна випереджати її поди під час подій випередження.
Примітка:
Під час планування одного пода застосовується стандартне випередження подів. Починаючи з версії 1.36, коли планувальник виконує стандартне випередження для одного пода і намагається випередити под, що належить до PodGroup, він не враховує поляpriority або disruptionMode цієї PodGroup.Що далі
- Дізнайтеся більше про Пріоритети і розлади групи подів.
- Дізнайтеся більше про Workload API.
- Дізнайтеся більше про Планування груп подів.