# Оголошені функції вузла

LLMS index: [llms.txt](/llms.txt)

---

<div class="feature-state-notice feature-beta" title="Функціональна можливість: NodeDeclaredFeatures">
              <span class="feature-state-name">СТАН ФУНКЦІОНАЛУ:</span> 
              <code>Kubernetes v1.36 [beta]</code>(стандартно увімкнено)</div>


Вузли Kubernetes використовують _заявлені функції_ для повідомлення про доступність конкретних нових або обмежених функцій. Компоненти панелі управління використовують цю інформацію для прийняття кращих рішень. Kube-scheduler за допомогою втулка `NodeDeclaredFeatures` гарантує, що поди розміщуються тільки на вузлах, які явно підтримують функції, необхідні для поду. Крім того, контролер допуску `NodeDeclaredFeatureValidator` перевіряє оновлення подів на відповідність оголошеним функціям вузла.

Цей механізм допомагає керувати розбіжностями версій і покращувати стабільність кластера, особливо під час оновлення кластера або в середовищах зі змішаними версіями, де не всі вузли можуть мати однакові функції. Він призначений для розробників функцій Kubernetes, які впроваджують нові функції на рівні вузлів, і працює у фоновому режимі; розробники застосунків, які розгортають поди, не повинні безпосередньо взаємодіяти з цією структурою.

## Як це працює {#how-it-works}

1. **Звіт про функції Kubelet:** під час запуску kubelet на кожному вузлі виявляє, які керовані функції Kubernetes наразі ввімкнені, і повідомляє про них у полі `.status.declaredFeatures` вузла. У це поле включаються лише функції, що активно розробляються.
2. **Фільтрування планувальника:** стандартний планувальник kube-scheduler використовує втулок `NodeDeclaredFeatures`. Цей втулок:
    * На етапі `PreFilter` перевіряє `PodSpec`, щоб визначити набір функцій вузла, необхідних для пода.
    * На етапі `Filter` перевіряє, чи функції, перелічені в `.status.declaredFeatures` вузла, відповідають вимогам, визначеним для Podʼа. Podʼи не будуть плануватися на вузлах, які не мають необхідних функцій. Настроювані планувальники також можуть використовувати поле `.status.declaredFeatures` для застосування подібних обмежень.
3. **Контроль допуску:** Контролер допуску `nodedeclaredfeaturevalidator` може відхиляти Podʼи, які вимагають функцій, не оголошених вузлом, до якого вони привʼязані, запобігаючи проблемам під час оновлення пода.

## Увімкнення оголошення функцій вузла {#enabling-node-declared-features}

Щоб використовувати функції, оголошені вузлом, необхідно увімкнути [функціональну можливість `NodeDeclaredFeatures`](/docs/reference/command-line-tools-reference/feature-gates/#NodeDeclaredFeatures) на компонентах `kube-apiserver`, `kube-scheduler` та `kubelet`.

## Що далі

* Детальніше читайте в KEP: [KEP-5328: Оголошені функції вузла](https://github.com/kubernetes/enhancements/blob/6d3210f7dd5d547c8f7f6a33af6a09eb45193cd7/keps/sig-node/5328-node-declared-features/README.md)
* Прочитайте про [контролер допуску NodeDeclaredFeatureValidator](/docs/reference/access-authn-authz/admission-controllers/#nodedeclaredfeaturevalidator).
