Восстановление кластера

Восстановление кластера управления и клиентского кластера.

При потере кластера управления или клиентского кластера восстановление возможно из резервных копий Velero в S3. На этой странице — пошаговые процедуры для обоих сценариев.


Рекомендуемые резервные копии

Перед восстановлением убедитесь, что настроены регулярные бэкапы. Подробные рекомендации по настройке резервного копирования см. на странице Рекомендации по резервному копированию.

Краткий перечень необходимых бэкапов:

Объект Описание
Неймспейсы клиентских кластеров Все неймспейсные ресурсы неймспейсов клиентских кластеров
Инфраструктурные провайдеры Провайдеры в shturval-capsm, capov-system, capv-system, capos-system, capbd-system, capvcd-system, capy-system (см. таблицу провайдеров)
ClusterRoles Роли в кластере управления
Клиентские кластеры Полный набор данных (с отключённым defaultVolumesToFsBackup)

Обратите внимание! Для бэкапа клиентского кластера с полным набором данных отключите defaultVolumesToFsBackup для всех томов.


Восстановление кластера управления (все Control Plane недоступны)

Когда все Control Plane узлы кластера управления не отвечают, но в S3 есть резервные копии неймспейсов клиентских кластеров, провайдеров и ClusterRoles.

Шаг 1: Установка нового кластера управления

Установите платформу по инструкции установки:

  • Используйте IP-адрес не отвечающего кластера управления как IP API-сервера;
  • Количество и характеристики узлов — как у не отвечающего кластера;
  • Установите модуль резервного копирования и восстановления (Velero).

Шаг 2: Настройка доступа к S3

Настройте подключение к тому же S3-хранилищу, где находятся бэкапы: Резервное копирование и восстановлениеХранилищаДобавить хранилище.

Добавление хранилища

Хранилища Velero

Шаг 3: Восстановление резервных копий

Восстановите резервную копию, содержащую:

  • неймспейсы клиентских кластеров;
  • инфраструктурных провайдеров;
  • ClusterRoles (UserRoles, GroupRoles).

Резервное копирование и восстановлениеВосстановленные копииВосстановить из резервной копии.

Восстановление из резервной копии

Восстановление

Доступ к управлению клиентскими кластерами должен быть восстановлен.


Восстановление клиентского кластера (все Control Plane недоступны)

Когда IP всех Control Plane клиентского кластера недоступны, но в кластере управления сохранены данные конфигурации и есть резервная копия клиентского кластера в S3.

Шаг 1: Создание нового кластера с теми же параметрами

Создайте новый клиентский кластер с характеристиками сломанного:

  • те же IP-адреса API-сервера и Ingress;
  • тот же провайдер и конфигурация.

Шаг 2: Установка Velero в кластере

Установите модуль резервного копирования и восстановления (Velero) в новом кластере в режиме auto.

Шаг 3: Подключение S3

Подключите S3-хранилище, в котором находится резервная копия сломанного кластера.

Шаг 4: Восстановление из бэкапа

Восстановите резервную копию клиентского кластера через Резервное копирование и восстановлениеВосстановленные копии.


Политика обновления при восстановлении

При восстановлении доступна политика обновления существующих ресурсов:

  • Пропустить (по умолчанию) — не перезаписывать существующие ресурсы;
  • Обновить — обновить существующие ресурсы данными из бэкапа.

Обратите внимание! PV, используемые запущенными нагрузками (Deployment, StatefulSet, Pod), не восстанавливаются, чтобы не прервать работу приложений.


Восстановление удалённого клиентского кластера

Если IP-адреса всех Control Plane узлов клиентского кластера недоступны, данные конфигурации клиентского кластера утеряны (кластер удалён из платформы), но есть резервная копия клиентского кластера, возможно восстановить доступ к кластеру.

Рекомендации по созданию резервных копий для восстановления доступа на странице Рекомендации по резервному копированию.

Для восстановления доступа выполните следующие действия:

  1. Поднять временный клиентский кластер с теми же параметрами (IP, провайдер), что и удалённый кластер.
Скриншот интерфейса платформы

Скриншот интерфейса: Скриншот интерфейса платформы

  1. Подключить S3 хранилище, в котором находится резервная копия неймспейсов клиентских кластеров, инфраструктурных провайдеров и ClusterRoles из кластера управления.
Скриншот интерфейса платформы

Скриншот интерфейса: Скриншот интерфейса платформы

Скриншот интерфейса: Скриншот интерфейса платформы

Скриншот интерфейса: Скриншот интерфейса платформы

  1. Восстановить резервную копию клиентского кластера.
Скриншот интерфейса платформы

Скриншот интерфейса: Скриншот интерфейса платформы

Скриншот интерфейса: Скриншот интерфейса платформы

Скриншот интерфейса: Скриншот интерфейса платформы

  1. Записать конфигурацию клиентского кластера:
    • адрес API сервера кластера и сведения о конфигурации безопасности доступны в Configmap kubeadm-config неймспейса kube-system;
Скриншот интерфейса платформы

Скриншот интерфейса: Скриншот интерфейса платформы

  • адрес Ingress доступен в ssc Модуля управления внешними подключениями (shturval-ingress-controller).
Скриншот интерфейса платформы

Скриншот интерфейса: Скриншот интерфейса платформы

Скриншот интерфейса: Скриншот интерфейса платформы

После чего тестовый кластер можно удалить.

Скриншот интерфейса платформы

Скриншот интерфейса: Скриншот интерфейса платформы

Скриншот интерфейса: Скриншот интерфейса платформы

  1. Дальнейшие шаги соответствуют инструкции восстановления при потере клиентского кластера.

Объекты для бэкапа

Объекты для бэкапа: провайдеры (неймспейсы shturval-capsm, capov-system, capv-system, capos-system, capbd-system, capvcd-system, capy-system), неймспейсы клиентских кластеров, UserRoles и GroupRoles в shturval-backend.


Настройка Velero через ShturvalServicePatch

Период удаления бэкапов

Удаление бэкапов происходит в пределах 1 часа после истечения срока хранения. Чтобы изменить период, примените Patch:

apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
  name: <имя ресурса>
spec:
  shturvalServiceConfigName: shturval-backup
  customvalues:
    configuration:
       defaultRepoMaintainFrequency: "<ваше значение параметра>"
Параметр Описание Тип данных Пример
metadata.name Имя создаваемого ShturvalServicePatch string shturval-backup-delete
defaultRepoMaintainFrequency Период времени, по истечении которого бэкапы будут удалены. По умолчанию 1 час string 3h

Решение типичных ошибок Velero

“Error checking repository for stale locks”

Возникает, если данные удалены с S3 (каталог restic) вручную, но соответствующие BackupRepository не удалены. Рекомендуется удалять репозитории вместе с данными или не удалять данные с S3 вручную.

“error checking if volume is a hostPath volume”

Velero не может записывать резервные копии с hostPath. Ошибка не прерывает работу модуля. Чтобы исключить поды с hostPath из бэкапа, добавьте аннотацию в шаблон пода (Deployment/DaemonSet):

backup.velero.io/backup-volumes-excludes: name1,name2,name3

Где name1, name2, name3 — имена volume, ссылающихся на hostPath.