Восстановление при изменении IP-адресов всех Control Plane узлов

Прежде чем перейти к восстановлению, установите модуль etcd-helper.

Для восстановления работоспособности кластера etcd, в случае изменения IP-адресов на всех Control Plane узлах, выполните последовательно действия:

  1. На первом Control Plane узле запустите команду для подготовки конфигурации, использовав свои значения параметров:
Пример команды
/usr/local/bin/etcdhelper prepare --nodeip=ВВЕДИТЕ-НОВЫЙ-IP-АДРЕС-УЗЛА
  1. В манифест /etc/kubernetes/manifests/etcd.yaml добавьте опцию --force-new-cluster.

  2. Перезагрузите первый Control Plane узел.

  3. Отредактируйте запись об узле в кластере etcd.

Пример команды
# Посмотреть ID узла
/usr/local/bin/etcdhelper exec -- member list -w table
# Обновить запись об узле 
/usr/local/bin/etcdhelper exec -- member update ВВЕДИТЕ-ID-УЗЛА --peer-urls=https://ВВЕДИТЕ-НОВЫЙ-IP-АДРЕС-УЗЛА:2380
  1. Удалите опцию --force-new-cluster из манифеста /etc/kubernetes/manifests/etcd.yaml.

  2. Перезагрузите первый узел.

  3. Убедитесь, что кластер kubernetes работает.

  4. При восстановлении кластера управления убедитесь, что все поды в неймспейсе shturval-backend запущены. Если shturval-backend-redis или shturval-backend-valkey не запущены, выполните принудительное удаление для перезапуска.

  5. При восстановлении кластера (клиентского, управления) с провайдером Shturval v2, подготовьте новые хосты и добавьте их в экземпляр провайдера.

  6. В графическом интерфейсе кластера откройте раздел Администрирование и перейдите на страницу Управление узлами, нажмите на Конфигурация группы Control Plane. На вкладке Конфигурация ClusterAPI установите 1 в поле Запрошено реплик.

Примеры команд для применения в интерфейсе командной строки
# Изменить количество реплик в KubeadmControlPlane 
kubectl edit KubeadmControlPlane -n ИМЯ-КЛАСТЕРА ИМЯ-КЛАСТЕРА-control-plane  

В spec KubeadmControlPlane установите значение 1 для параметра replicas.

  1. Вернитесь на страницу Управление узлами и скопируйте имена узлов в статусе NotReady.
Пример команды для применения в интерфейсе командной строки
# Получить имена узлов кластера
kubectl get node
  1. Получите список 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.
  • Удалите узел из кластера и ВМ в платформе виртуализации.
  1. Когда удалены все Machines, в графическом интерфейсе кластера откройте раздел Администрирование и перейдите на страницу Управление узлами, нажмите на Конфигурация группы Control Plane. На вкладке Конфигурация ClusterAPI установите 3 в поле Запрошено реплик.
Примеры команд для применения в интерфейсе командной строки
# Изменить количество реплик в KubeadmControlPlane
kubectl edit KubeadmControlPlane -n ИМЯ-КЛАСТЕРА ИМЯ-КЛАСТЕРА-control-plane  

В spec KubeadmControlPlane установите значение 3 для параметра replicas.

×