To use this feature, you (or a cluster administrator) will need to enable the NodeLifecycleConditions feature gate for all relevant components in your cluster.
See Enable Or Disable Feature Gates for more information.
Стани життєвого циклу вузла повідомляють, чи проходить вузол через подію життєвого циклу, як-от drain, обслуговування або коректне вимкнення вузла (Graceful Node Shutdown). Вони дають спільний сигнал, який адміністратори кластера, контролери та сторонні інструменти можуть використовувати для керування життєвим циклом.
Доступні такі загальновідомі стани життєвого циклу:
| Стан | Опис |
|---|---|
DrainInProgress | Для вузла зараз виконується drain відповідно до обраних адміністратором критеріїв drain. |
Drained | Вузол досяг обраних адміністратором критеріїв drain. |
MaintenancePlanned | Очікується, що вузол зазнає змін у майбутньому. Якщо зміни впливають на робочі навантаження, виконайте drain вузла перед початком обслуговування. |
MaintenanceInProgress | Вузол зараз проходить обслуговування. Обслуговування може включати розгортання апаратного або програмного забезпечення, усунення проблем, виведення з експлуатації або налагодження. |
GracefulNodeShutdownInProgress | Визначено, що на вузлі триває коректне вимкнення вузла. |
Поле status кожного стану життєвого циклу має таке значення:
True: стан життєвого циклу, про який повідомляє цей стан, зараз спостерігається.False: стан життєвого циклу, про який повідомляє цей стан, зараз не спостерігається.Unknown: той, хто записує стан, не може визначити, чи активний стан життєвого циклу.Стани життєвого циклу — це спостереження, які дають корисний контекст щодо стану життєвого циклу вузла. Наприклад, використовуйте MaintenancePlanned, щоб повідомити, що вузол може перейти в обслуговування в майбутньому, або Drained, щоб повідомити, що обраних адміністратором критеріїв drain досягнуто.
Поле reason вказує, чому стан має свій поточний статус. Ті, хто записує стани, мають використовувати для reason стабільні значення у стилі CamelCase. Поле message може містити додаткові подробиці, зрозумілі людині.
Цей приклад повідомляє, що для вузла заплановано обслуговування:
status:
conditions:
- type: MaintenancePlanned
status: "True"
reason: MaintenanceWindow
message: "Hardware maintenance is scheduled for this Node"
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}'