Щоб скористатися цією функцією, вам (або адміністратору кластера) потрібно увімкнути функціональну можливість NodeLifecycleConditions для всіх відповідних компонентів у вашому кластері.
Перегляньте Увімкнення або вимкнення функціональних можливостей для отримання додаткової інформації.
Стани життєвого циклу вузла повідомляють, чи проходить вузол подію життєвого циклу, таку як очищення (drain), обслуговування або належне вимкнення вузла (Graceful Node Shutdown). Вони надають спільний сигнал, який адміністратори кластера, контролери та сторонні інструменти можуть використовувати для управління життєвим циклом.
Доступні наступні загальновідомі стани життєвого циклу:
| Стан | Опис |
|---|---|
DrainInProgress | Вузол перебуває в процесі очищення відповідно до критеріїв, обраних адміністратором. |
Drained | Вузол досяг критеріїв очищення, обраних адміністратором. |
MaintenancePlanned | Очікується, що вузол зазнає змін у майбутньому. Якщо зміни впливають на робочі навантаження, очистіть вузол перед початком обслуговування. |
MaintenanceInProgress | Вузол перебуває в стані обслуговування. Обслуговування може включати розгортання апаратного або програмного забезпечення, виправлення, виведення з експлуатації або налагодження. |
GracefulNodeShutdownInProgress | Визначено, що на вузлі триває належне вимкнення вузла. |
Поле status кожного стану життєвого циклу має наступне значення:
| True: статус життєвого циклу, описаний станом, наразі спостерігається.
| False: статус життєвого циклу, описаний станом, наразі не спостерігається.
| Unknown: автор не може визначити, чи активний стан життєвого циклу.
Стани життєвого циклу — це спостереження, які надають корисний контекст щодо стану життєвого циклу вузла. Наприклад, використовуйте MaintenancePlanned, щоб сигналізувати, що вузол може перейти в обслуговування в майбутньому, або Drained, щоб сигналізувати, що обрані адміністратором критерії очищення виконано.
Поле reason визначає, чому стан має свій поточний статус. Автори повинні використовувати стабільні значення у стилі CamelCase для reason. Поле message може надавати додаткові деталі, зрозумілі людині.
Наступний приклад повідомляє, що для вузла заплановано обслуговування:
status:
conditions:
- type: MaintenancePlanned
status: "True"
reason: MaintenanceWindow
message: "Заплановано апаратне обслуговування цього вузла"
lastTransitionTime: "2026-07-20T14:00:00Z"
Адміністратор або контролер, уповноважений адміністратором, відповідає за встановлення та очищення станів життєвого циклу на вузлі.
Автор визначає, коли стан життєвого циклу є активним. Коли стан більше не активний, автор встановлює стан у False або видаляє його.
Kubernetes не визначає ексклюзивне володіння автором, блокування або передачу між учасниками. Автори повинні координувати володіння поза цим API.
Наявні механізми управління життєвим циклом все ще слід використовувати:
kubectl cordon або встановіть .spec.unschedulable, щоб запобігти звичайному плануванню на вузол.kubectl drain, щоб безпечно виселити Podʼи перед виведенням вузла з експлуатації.Використовуйте kubectl describe node, щоб переглянути всі стани для вузла:
kubectl describe node <node-name>
Щоб вивести тип та статус кожного стану, використовуйте:
kubectl get node <node-name> \
-o jsonpath='{range .status.conditions[*]}{.type}={.status}{"\n"}{end}'