Восстановление при изменении IP-адресов всех Control Plane узлов
Прежде чем перейти к восстановлению, установите модуль etcd-helper.
Для восстановления работоспособности кластера etcd, в случае изменения IP-адресов на всех Control Plane узлах, выполните последовательно действия:
- На первом Control Plane узле запустите команду для подготовки конфигурации, использовав свои значения параметров:
Пример команды
/usr/local/bin/etcdhelper prepare --nodeip=ВВЕДИТЕ-НОВЫЙ-IP-АДРЕС-УЗЛА
-
В манифест
/etc/kubernetes/manifests/etcd.yamlдобавьте опцию--force-new-cluster. -
Перезагрузите первый Control Plane узел.
-
Отредактируйте запись об узле в кластере etcd.
Пример команды
# Посмотреть ID узла
/usr/local/bin/etcdhelper exec -- member list -w table
# Обновить запись об узле
/usr/local/bin/etcdhelper exec -- member update ВВЕДИТЕ-ID-УЗЛА --peer-urls=https://ВВЕДИТЕ-НОВЫЙ-IP-АДРЕС-УЗЛА:2380
-
Удалите опцию
--force-new-clusterиз манифеста/etc/kubernetes/manifests/etcd.yaml. -
Перезагрузите первый узел.
-
Убедитесь, что кластер kubernetes работает.
-
При восстановлении кластера управления убедитесь, что все поды в неймспейсе
shturval-backendзапущены. Еслиshturval-backend-redisилиshturval-backend-valkeyне запущены, выполните принудительное удаление для перезапуска. -
При восстановлении кластера (клиентского, управления) с провайдером Shturval v2, подготовьте новые хосты и добавьте их в экземпляр провайдера.
-
В графическом интерфейсе кластера откройте раздел Администрирование и перейдите на страницу Управление узлами, нажмите на Конфигурация группы Control Plane. На вкладке Конфигурация ClusterAPI установите 1 в поле Запрошено реплик.
Примеры команд для применения в интерфейсе командной строки
# Изменить количество реплик в KubeadmControlPlane
kubectl edit KubeadmControlPlane -n ИМЯ-КЛАСТЕРА ИМЯ-КЛАСТЕРА-control-plane
В spec KubeadmControlPlane установите значение 1 для параметра replicas.
- Вернитесь на страницу Управление узлами и скопируйте имена узлов в статусе
NotReady.
Пример команды для применения в интерфейсе командной строки
# Получить имена узлов кластера
kubectl get node
- Получите список Machines и удалите Machines, соответствующие Control Plane узлам в статусе
NotReady.
Примеры команд
# Получить все Machines кластера
kubectl get machines -n ИМЯ-КЛАСТЕРА
# Удалить поочередно Machines, соответствующие Control Plane узлам в статусе `NotReady`
kubectl delete machines -n ИМЯ-КЛАСТЕРА ИМЯ-MACHINE
Удаление занимает некоторое время. В результате будут удалены Machines, узлы и ВМ, если кластер развернут с провайдером отличным от Shturval v2.
Обратите внимание! В случае длительного удаления, например, более 15 минут, вы можете удалить Machines ручным способом:
- Отредактируйте удаляемый ресурс Machine, удалив finalizer.
- Удалите узел из кластера и ВМ в платформе виртуализации.
- Когда удалены все Machines, в графическом интерфейсе кластера откройте раздел Администрирование и перейдите на страницу Управление узлами, нажмите на Конфигурация группы Control Plane. На вкладке Конфигурация ClusterAPI установите 3 в поле Запрошено реплик.
Примеры команд для применения в интерфейсе командной строки
# Изменить количество реплик в KubeadmControlPlane
kubectl edit KubeadmControlPlane -n ИМЯ-КЛАСТЕРА ИМЯ-КЛАСТЕРА-control-plane
В spec KubeadmControlPlane установите значение 3 для параметра replicas.