Оголошені функції вузла
Kubernetes v1.35 [alpha](стандартно вимкнено)Вузли Kubernetes використовують заявлені функції для повідомлення про доступність конкретних нових або обмежених функцій. Компоненти панелі управління використовують цю інформацію для прийняття кращих рішень. Kube-scheduler за допомогою втулка NodeDeclaredFeatures гарантує, що поди розміщуються тільки на вузлах, які явно підтримують функції, необхідні для поду. Крім того, контролер допуску NodeDeclaredFeatureValidator перевіряє оновлення подів на відповідність оголошеним функціям вузла.
Цей механізм допомагає керувати розбіжностями версій і покращувати стабільність кластера, особливо під час оновлення кластера або в середовищах зі змішаними версіями, де не всі вузли можуть мати однакові функції. Він призначений для розробників функцій Kubernetes, які впроваджують нові функції на рівні вузлів, і працює у фоновому режимі; розробники застосунків, які розгортають поди, не повинні безпосередньо взаємодіяти з цією структурою.
Як це працює
- Звіт про функції Kubelet: під час запуску kubelet на кожному вузлі виявляє, які керовані функції Kubernetes наразі ввімкнені, і повідомляє про них у полі
.status.declaredFeaturesвузла. У це поле включаються лише функції, що активно розробляються. - Фільтрування планувальника: стандартний планувальник kube-scheduler використовує втулок
NodeDeclaredFeatures. Цей втулок:- На етапі
PreFilterперевіряєPodSpec, щоб визначити набір функцій вузла, необхідних для пода. - На етапі
Filterперевіряє, чи функції, перелічені в.status.declaredFeaturesвузла, відповідають вимогам, визначеним для Podʼа. Podʼи не будуть плануватися на вузлах, які не мають необхідних функцій. Настроювані планувальники також можуть використовувати поле.status.declaredFeaturesдля застосування подібних обмежень.
- На етапі
- Контроль допуску: Контролер допуску
nodedeclaredfeaturevalidatorможе відхиляти Podʼи, які вимагають функцій, не оголошених вузлом, до якого вони привʼязані, запобігаючи проблемам під час оновлення пода.
Увімкнення оголошення функцій вузла
Щоб використовувати функції, оголошені вузлом, необхідно увімкнути функціональну можливість NodeDeclaredFeatures на компонентах kube-apiserver, kube-scheduler та kubelet.
Що далі
- Детальніше читайте в KEP: KEP-5328: Оголошені функції вузла
- Прочитайте про контролер допуску NodeDeclaredFeatureValidator.