Node Conditions

Обзор

Node Conditions — состояния узла, по которым можно определить, здоров ли узел и готов ли он принимать поды. Условия отображаются на странице узла и в kubectl describe node.


Состояния здорового узла

СостояниеОписаниеЗдоровый статус
NetworkUnavailableCilium/CNI не запущен на узлеfalse
MemoryPressureKubelet сообщает о нехватке памятиfalse
DiskPressureKubelet сообщает о нехватке дискового пространстваfalse
PIDPressureСлишком много процессов (PID) на узлеfalse
ReadyУзел готов принимать подыtrue

Дополнительные условия (shturval-npd)

Если установлен модуль shturval-npd, в колонке Узел отображаются дополнительные состояния узла.

СостояниеОписаниеЗдоровый статус
ReadonlyFilesystemФайловая система перемонтирована только для чтенияfalse
KernelDeadlockЯдро Linux в состоянии блокировкиfalse
XfsShutdownФайловая система XFS остановленаfalse
CperHardwareErrorFatalАппаратная ошибка с уровнем fatalfalse
CorruptDockerOverlay2Повреждение хранилища overlay2false

Если подключить дополнительные мониторы, настроив конфигурацию shturval-npd в узлах кластера добавятся conditions:

СостояниеОписаниеЗдоровый статус
FrequentKubeletRestartkubelet часто перезапускаетсяfalse
FrequentDockerRestartdocker часто перезапускаетсяfalse
FrequentContainerdRestartcontainerd часто перезапускаетсяfalse
FrequentUnregisterNetDeviceЯдро часто ждёт освобождения сетевого устройстваfalse
ContainerRuntimeUnhealthycontainer runtime не отвечаетfalse
KubeletUnhealthykubelet не отвечает на проверкуfalse
Скриншот: колонка «Узел» с дополнительными мониторами

Колонка «Узел» с дополнительными мониторами


Автоматические Taints при условиях

При определённых условиях Kubernetes автоматически добавляет Taints на узел:

TaintОписаниеЭффект
node.kubernetes.io/not-readyReady=FalseNoExecute
node.kubernetes.io/unreachableReady=UnknownNoExecute
node.kubernetes.io/memory-pressureНехватка памятиNoSchedule
node.kubernetes.io/disk-pressureНехватка дискаNoSchedule
node.kubernetes.io/pid-pressureЛимит PIDNoSchedule
node.kubernetes.io/network-unavailableСеть недоступнаNoSchedule
node.kubernetes.io/unschedulableУзел не подлежит планированию (cordon)NoSchedule
node.cloudprovider.kubernetes.io/uninitializedУзел с облачным провайдером до инициализации cloud-controller-managerNoSchedule

Подробнее о встроенных taints — в разделе Node Pools, Taints и Tolerations.


Где смотреть

  • Интерфейс: Администрирование → Управление узлами → клик по узлу → вкладка «Узел» → блок «Состояние», колонка Узел.
  • CLI: kubectl describe node <name> — секция Conditions.