Стани життєвого циклу вузла

СТАН ФУНКЦІОНАЛУ: Alpha since Kubernetes v1.37; (стандартно вимкнено)
More information about this feature

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ʼи перед виведенням вузла з експлуатації.
  • Використовуйте taints і tolerations, щоб керувати плануванням Podʼів і політикою виселення.

Перегляд станів життєвого циклу

Використовуйте kubectl describe node, щоб переглянути всі стани вузла:

kubectl describe node <node-name>

Щоб вивести тип і статус кожного стану, використовуйте:

kubectl get node <node-name> \
  -o jsonpath='{range .status.conditions[*]}{.type}={.status}{"\n"}{end}'
Змінено November 03, 2026 at 10:06 PM PST: [uk] Add node lifecycle conditions reference page (d8a682d2f9)