Настройка MachineHealthCheck
Содержание
ОбзорПредварительные требованияНастройка MachineHealthCheck для MachineDeploymentНастройка MachineHealthCheck для узлов control planeСправкаОбзор
MachineHealthCheck — это ресурс в Cluster API, который позволяет пользователям определять условия, при которых Machines в кластере следует считать неисправными. MachineHealthCheck задается в управляющем кластере и применяется к конкретному кластеру рабочих нагрузок.
При создании MachineHealthCheck пользователи указывают тайм-аут для каждого из условий, которые они определяют для проверки Node машины. Если любое из этих условий сохраняется в течение указанного тайм-аута, для Machine будет выполнено восстановление. По умолчанию действие восстановления Machine должно инициировать создание новой Machine для замены отказавшей, однако провайдеры могут подключать более сложные внешние решения для восстановления.
MachineHealthCheck использует механизм rolling update в Cluster API. Во время rolling update все ранее подключенные диски удаляются и заменяются новыми дисками на вновь созданных машинах. Убедитесь, что никакие функции кластера или рабочие нагрузки не зависят от данных, хранящихся на исходных дисках.
Предварительные требования
Прежде чем пытаться настроить MachineHealthCheck, у вас должен быть рабочий управляющий кластер, в котором развернут как минимум один MachineDeployment или KubeadmControlPlane.
Настройка MachineHealthCheck для MachineDeployment
Чтобы настроить MachineHealthCheck для MachineDeployment, необходимо создать ресурс MachineHealthCheck в управляющем кластере.
Настройка MachineHealthCheck для узлов control plane
Ограничения и риски для узлов control plane
- Сбой лидера Etcd при недоступности Kubelet: автоматическое восстановление может завершиться неудачей, если неисправный узел является текущим лидером etcd и служба
kubeletна нем не работает. Cluster API пытается перенести лидерство etcd перед удалением узла, но при этом опирается наkubelet, который проксирует запросы к локальному экземпляру etcd. Еслиkubeletне отвечает, передача лидерства не может быть выполнена, что блокирует ротацию. - Риск потери кворума: проявляйте осторожность при настройке MachineHealthCheck для узлов control plane. Агрессивные тайм-ауты или неверная конфигурация могут привести к удалению нескольких узлов control plane, что потенциально нарушит кворум etcd и сделает control plane кластера недоступной.