Режим обслуживания узлов кластера
В процессе эксплуатации платформы Nova Container Platform может возникнуть необходимость перевода узла в режим обслуживания.
Находясь в режиме обслуживания, узел исключается из очереди Kubernetes Scheduler и более не может размещать какие-либо вновь запланированные рабочие нагрузки.
Любые существующие рабочие нагрузки будут эвакуированы и запущенны на других подходящий узлах кластера Kubernetes.
Исключение составляют нагрузки, запущенные контроллером DaemonSet
, перезапуск которых на других узлах невозможен.
Внимание
Объекты Pod, которые не управляются контроллерами ReplicaSet, DaemonSet, StatefulSet и Job, не могут быть эвакуированы с узла и будут удалены при переводе узла в режим обслуживания. Убедитесь, что в кластере Kubernetes есть достаточное количество узлов, отвечающих тем же критериям, что и переводимый в режим обслуживания узел. В противном случае эвакуированные объекты Pod будут находиться в состоянии Pending
до тех пор, пока узел не будет возвращен в работу.
Перевод узла кластера в режим обслуживания
Для перевода узла в режим эксплуатации следуйте процедуре ниже.
Необходимые условия
- На вашем локальном компьютере установлена утилита nova-ctl.
- У вас есть доступ к Kubernetes API с привилегиями администратора кластера (
cluster-admin
). - У вас есть закрытый ключ SSH на вашем локальном компьютере, который нужно предоставить утилите
nova-ctl
.
Процедура
-
Получите список всех узлов кластера и определите имя узла, который необходимо вывести в режим обслуживания:
Пример
-
Переведите выбранный узел в состояние
SchedulingDisabled
, выполнив команду:Пример
-
Выполните эвакуацию всех рабочих нагрузок с выбранного узла, выполнив команду:
Пример
$ kubectl drain node-worker-bdh6p8fn.nova-zig4kntx30g3.local --ignore-daemonsets node/node-worker-bdh6p8fn.nova-zig4kntx30g3.local already cordoned Warning: ignoring DaemonSet-managed Pods: kube-system/cilium-gvkgx, kube-system/kube-proxy-rdmzh, nova-csi-drivers/nova-oauth-csi-provider-6hnbs, nova-csi-drivers/nova-secrets-store-csi-driver-qcmnh, nova-ingress-public/nova-ingress-public-controller-g8g7h, nova-monitoring/nova-cadvisor-f9pfm, nova-monitoring/nova-prometheus-node-exporter-ppfn6, nova-neuvector/neuvector-enforcer-pod-nxwch, nova-secrets-webhook/nova-oauth-secrets-webhook-slssp evicting pod kube-system/coredns-5b7664d478-w269k evicting pod kube-system/coredns-5b7664d478-7vbbb pod/coredns-5b7664d478-w269k evicted pod/coredns-5b7664d478-7vbbb evicted node/node-worker-bdh6p8fn.nova-zig4kntx30g3.local drained
Информация
Для удаления с узла объектов Pod, запущенных без использования контроллеров ReplicaSet, DaemonSet, StatefulSet и Job, используйте
kubectl drain
с опцией--force
. -
После успешного выполнения команды
kubectl drain
вы можете выключить узел для проведения запланированных работ.
Возврат узла кластера в режим эксплуатации
Для возврата узла в режим эксплуатации следуйте процедуре ниже.
Необходимые условия
- На вашем локальном компьютере установлена утилита nova-ctl.
- У вас есть доступ к Kubernetes API с привилегиями администратора кластера (
cluster-admin
). - У вас есть закрытый ключ SSH на вашем локальном компьютере, который нужно предоставить утилите
nova-ctl
.
Процедура
-
После завершения работ включите ранее выключенный узел и дождитесь его загрузки.
-
Проверьте, что узел стал доступен для размещения рабочих нагрузок (статус узла
Ready
) выполнив команду:Пример
-
Разрешите запуск рабочих нагрузок на выбранном узле, выполнив команду:
Пример
-
Узел готов к эксплуатации в кластере Kubernetes.