Создать резервную копию и восстановить ресурсы с Restic
В инструкции описано создание резервной копии ресурсов в кластере Managed Kubernetes и восстановление ресурсов из резервной копии с помощью Restic.
Перед началом работы
Проверьте, что Restic установлен и инициализирован.
Создайте секрет для подключения к S3-хранилищу s3-keys.yaml:
apiVersion: v1kind: Secretmetadata:name: s3-keysdata:accessKeyId: <access_key_id>secretAccessKey: <secret_key_id>resticKey: <restic_password>bucketName: "<restic_repository>"type: OpaqueГде:
<access_key_id> — значение Key ID (логин) персонального ключа доступа для S3-хранилища.
<secret_key_id> — значение Key Secret (пароль) персонального ключа доступа для S3-хранилища.
<your_region> — регион размещения бакета. Например, ru-central-1.
<restic_repository> — путь к хранилищу резервных копий. Например, s3:s3.cloud.ru/restic-test/restic-repo.
<restic_password> — пароль к хранилищу резервных копий, использованный при инициализации Restic.
Выполните команду:
kubectl apply -f s3-keys.yamlРазверните в отдельном пространстве имен кластера приложение. Например, cloudru-app-example.
cloudru-app-example.yamlСоздайте в контейнере файл.
Пример:
kubectl exec -ti --stdin --tty <pod-name> -n cloudru-nginx-example -- /bin/bash$ echo "Hello cloud.ru!" > /usr/share/nginx/html/index.htmlПроверьте, что приложение отвечает.
Пример:
curl <the_public_IP_address_assigned_to_the_load_balancer>
Шаг 1. Создайте резервную копию
Задайте параметры бэкапирования по расписанию в манифесте cronjob-backup.yaml.
cronjob-backup.yamlВыполните команду:
kubectl apply -f cronjob-backup.yamlПроверьте экземпляры резервных копий:
restic snapshots
Шаг 3. Восстановите ресурсы из резервной копии
Задайте параметры восстановления в манифесте job-restore.yaml.
job-restore.yamlВыполните команду:
kubectl apply -f job-restore.yamlЧтобы восстановить данные по идентификатору резервной копии, выполните:
restic restore <snapshot_ID> --target /path/to/restoreГде <snapshot_ID> — идентификатор экземпляра резервной копии. Можно получить, выполнив: restic snapshots.
Чтобы восстановить только часть данных из резервной копии, добавьте флаг –include:
restic restore <snapshot_ID> --target /path/to/restore --include /specific/path