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

Стан функціоналу: Alpha починаючи з Kubernetes v1.37; стандартно вимкнено
Докладніше про цей функціонал

Щоб скористатися цією функцією, вам (або адміністратору кластера) потрібно увімкнути функціональну можливість 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ʼи перед виведенням вузла з експлуатації.
  • Використовуйте 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}'
Востаннє змінено August 30, 2026 at 10:31 AM PST: [uk] Ukrainian translation (all-in-one) (ac41b20ac1)