Kubernetes Node Remediation
Kubernetes Node Remediation — это набор операторов Kubernetes, которые обеспечивают автоматическое восстановление неисправных узлов кластера Managed Service for Kubernetes и высокую доступность для stateful-нагрузок.
Решение состоит из двух контроллеров:
- Node Healthcheck Controller — отслеживает сбои.
- Self Node Remediation Controller — переносит нагрузку с неисправных узлов и восстанавливает их.
-
Установите kubectl и настройте его на работу с кластером.
-
Создайте группу узлов для работы Kubernetes Node Remediation.
-
Задайте настройки приложения:
- Пространство имен — создайте новое пространство имен (например,
remediation-space). Если вы оставите пространство имен по умолчанию, Kubernetes Node Remediation может работать некорректно. - Название приложения — укажите название приложения.
- Пространство имен — создайте новое пространство имен (например,
-
Нажмите кнопку Установить.
-
Дождитесь перехода приложения в статус
Deployed. -
Создайте ресурс
NodeHealthCheck:-
Создайте файл с описанием ресурса
NodeHealthCheck:apiVersion: remediation.medik8s.io/v1alpha1 kind: NodeHealthCheck metadata: name: nodehc-sample spec: minHealthy: 51% remediationTemplate: apiVersion: self-node-remediation.medik8s.io/v1alpha1 kind: SelfNodeRemediationTemplate name: self-node-remediation-automatic-strategy-template namespace: <пространство_имен_приложения> selector: matchLabels: beta.kubernetes.io/os: linux unhealthyConditions: - duration: 60s status: "False" type: Ready - duration: 60s status: Unknown type: ReadyГде:
-
spec.minHealthy— минимальный процент здоровых узлов, при котором разрешено начинать восстановление. -
spec.unhealthyConditions— список условий для статуса узла, по которым контроллер определяет, что узел неисправен.duration— время, в течение которого условие должно сохраняться, прежде чем начнется процесс восстановления узла.type— тип условия.status— ожидаемый статус для признания узла неисправным.
В приведенном примере контроллер NodeHealthCheck начнет восстановление, если тип условия
Readyдля узла в течение 60 секунд указывает на его недоступность или нерабочее состояние. -
-
Перейдите в директорию с файлом и выполните команду:
kubectl apply -f <имя_файла>
-
- Обнаружение сбоев узлов.
- Восстановление планировщиком затронутых рабочих нагрузок.
- Восстановление узлов после сбоев.
Служба технической поддержки Yandex Cloud отвечает на запросы 24 часа в сутки, 7 дней в неделю. Доступные виды запросов и срок их обработки зависят от тарифного плана. Подключить платную поддержку можно в консоли управления. Подробнее о порядке оказания технической поддержки.
| Helm-чарт | Версия | Pull-команда | Документация |
|---|---|---|---|
| yandex-cloud/medik8s/kubernetes-node-remediation/chart/kubernetes-node-remediation | 1.0.1 | Открыть |
| Docker-образ | Версия | Pull-команда |
|---|---|---|
| yandex-cloud/medik8s/kubernetes-node-remediation/self-node-remediation-operator1750332903325272502991409697328138047197170598960 | v0.10.0-y | |
| yandex-cloud/medik8s/kubernetes-node-remediation/node-healthcheck-operator1750332903325272502991409697328138047197170598960 | v0.7.0 | |
| yandex-cloud/medik8s/kubernetes-node-remediation/kube-rbac-proxy1750332903325272502991409697328138047197170598960 | v0.19.0 |