Восстановление из резервной копии в Velero
Velero — это инструмент с открытым исходным кодом, предназначенный для резервного копирования и восстановления ресурсов Kubernetes, выполнения аварийного восстановления и миграции приложений между кластерами. Он позволяет сохранять и восстанавливать как объекты Kubernetes, так и данные постоянных томов при интеграции с Longhorn.
|
1. Активация Velero
-
Чтобы включить установку Velero, обновите файл inventories/sample/group_vars/k3s/config.yaml.
-
В секции параметров Velero задайте следующие значения:
velero_enabled: true (1) velero_ui_password: "<пароль>" velero_s3_bucket: "<имя_бакета>" velero_s3_url: "<s3_url>" velero_s3_login: "<логин>" velero_s3_password: "<пароль>"1 velero_enabled: true— параметр активирует процесс установки Velero
Остальные параметры требуются для настройки доступа к S3-совместимому хранилищу.
|
Для корректной работы VolumeSnapshot и резервного копирования данных Persistent Volumes необходимо предварительно настроить Backup Target в сервисе Longhorn. Настройка выполняется в интерфейсе Longhorn:
|
2. Создание резервной копии
-
Авторизуйтесь в сервисе Velero.
-
Перейдите в раздел Backups и нажмите + New.
-
На шаге Type выберите From Scratch.
-
На шаге Info настройте параметры:
-
Backup Name — задайте уникальное название для резервной копии
-
TTL — задайте время жизни резервной копии в часах
-
Included Namespaces — выберите portal-box
-
Options — активируйте опцию Snapshot Volumes, чтобы сохранить содержимое Longhorn-томов
-
Storage Location — выберите локацию default
-
-
На шаге Resources активируйте опцию Include Cluster Resources.
-
Пропустите шаг Labels.
-
-
На последнем шаге Confirmation проверьте правильность заполненных параметров и нажмите Confirm.
Дождитесь завершения создания резервной копии, статус должен быть Completed.
3. Восстановление данных
Восстановление данных в Velero выполняется в три этапа:
3.1. Восстановление кластера K3s
Процесс восстановления кластера K3s отличается от обычной установки: необходимо запустить плейбук, который выполняет только задачи восстановления из резервной копии, а не разворачивает кластер заново.
Плейбук восстанавливает конфигурацию кластера, включая манифесты, сертификаты и настройки компонентов.
Выполните команду:
docker run -it --network host --rm \
-v /home/$USER/portal-box:/apps \ (1)
-v ~/.ssh/id_rsa:/root/.ssh/id_rsa \
-v ~/.kube/cloud:/root/.kube/cloud \
deploy-manager-1.9.1 \
-i inventories/box/hosts \
-u $USER \
deploy.yml \
--ask-vault-pass \ (2)
--tags restore -e '{"restore": true}' (3)
Параметры команды:
| 1 | -v — с помощью флага монтируются нужные директории: плейбук, SSH-ключ и kubeconfig |
| 2 | --ask-vault-pass — команда для запроса пароля в интерактивном режиме |
| 3 | --tags restore -e '{"restore": true}' — выполняет только задачи восстановления |
3.2. Восстановление дисков
На этом этапе восстанавливаются только тома, объектам кластера нельзя запускаться до восстановления дисков.
Выполните действия в Velero:
-
В боковом меню перейдите в раздел Backups.
-
В боковом меню выберите резервную копию и в колонке Actions нажмите на иконку восстановления. Откроется окно для настроек восстановления из резервной копии:
-
Restore name — укажите название.
-
На шаге backup активируйте опции:
-
Include Cluster Resources
-
Restore Volumes
-
Preserve Node Ports
-
-
-
На шаге Resources в поле Excluded Resources введите следующие объекты кластера, которые нужно исключить из восстановления, чтобы избежать ошибок в процессе:
deployments, statefulsets, daemonsets, pods, replicasets, validatingwebhookconfigurations, volumeattachments
-
Шаг Mapping & Labels оставьте без изменений.
-
На шаге Confirmation проверьте параметры и нажмите Confirm.
Дождитесь завершения процесса восстановления в Velero. Восстановление объектов произойдёт быстро, однако восстановление дисков в Longhorn может занять значительное время.
|
Не переходите к следующему этапу, пока все диски (Volumes) в Longhorn не восстановятся и не перейдут в статус Detached и Ready for workload: Ready.
|
3.3. Восстановление объектов кластера
После полного восстановления всех дисков (томов) можно восстанавливать контроллеры, которые будут монтировать эти тома.
Выполните действия в Velero:
-
На шаге Info не включайте дополнительные опции.
-
На шаге Resources в поле Included Resources удалите тип
*(обозначает — все объекты) и добавьте следующие объекты:deployments, statefulsets, daemonsets, validatingwebhookconfigurations
Дождитесь, когда все поды будут успешно созданы и запущены.
4. Удаление резервной копии
После восстановления кластера рекомендуется удалить резервную копию через Velero. Для этого используйте команду:
velero backup delete <BACKUP_NAME>
Эта команда удаляет в Velero ресурс резервной копии и запускает очистку её метаданных и объектов, которые хранятся в объектном хранилище.
|
Даже после успешного удаления через Velero могут остаться:
Выполните удаление вручную, очистив бакет с резервными копиями. |