Резервное копирование вручную
Используйте Velero, чтобы вручную создавать резервные копии данных кластера и восстанавливать их.
-
Создайте кластер Kubernetes актуальной версии, если это еще не сделано.
Разместите в зоне доступности
ME1одну или несколько групп worker-узлов. Остальные параметры кластера выберите на свое усмотрение. -
Убедитесь, что вы можете подключиться к кластеру с помощью
kubectl. -
Установите и настройте Velero, если это еще не сделано.
-
Установите OpenStack CLI, если это еще не сделано. Убедитесь, что вы можете авторизоваться в облаке с его помощью.
Чтобы познакомиться с созданием резервной копии и восстановлением из нее, создайте демо-приложение coffee. К этому приложению будет подключен постоянный том (persistent volume).
-
Создайте файл манифеста:
-
Создайте нужные ресурсы Kubernetes на основе манифеста:
kubectl apply -f coffee.yamlВсе необходимые для работы приложения ресурсы Kubernetes будут помещены в отдельное пространство имен (namespace)
example-app. -
Убедитесь, что создан диск для постоянного тома:
-
Найдите созданный для приложения постоянный том:
kubectl get pv -n example-appВ выведенной таблице найдите ID постоянного тома, для которого в столбце
CLAIMуказаноexample-app/coffee-pvc:NAME ... STATUS CLAIM ...... ... ... ... ...<ID_ПОСТОЯННОГО_ТОМА> ... Bound example-app/coffee-pvc ... -
Получите ID диска для созданного постоянного тома:
kubectl describe pv <ID_ПОСТОЯННОГО_ТОМА> -n example-appВ выводе команды будет содержаться ID диска в параметре
VolumeHandle:...Source:Type: CSI (a Container Storage Interface (CSI) volume source)Driver: cinder.csi.openstack.orgFSType: ...VolumeHandle: <ID_ДИСКА>... -
Получите подробную информацию о диске с таким ID, используя OpenStack CLI:
openstack volume show <ID_ДИСКА> --fit-width
-
-
Дождитесь назначения балансировщику нагрузки публичного IP-адреса.
Периодически проверяйте статус балансировщика:
kubectl get svc -n example-appВ столбце
EXTERNAL-IPдолжен появиться публичный IP-адрес, назначенный балансировщику. -
Убедитесь, что NGINX отвечает на запросы:
curl <ПУБЛИЧНЫЙ_IP_АДРЕС_БАЛАНСИРОВЩИКА>Должно быть выведено следующее:
The coffee pod says Hello World to everyone! This file is located on the dynamically claimed Cinder ReadWriteOnce persistent volume.
-
Создайте ручную резервную копию всего пространства имен
example-app, в котором находятся нужные для работы приложения ресурсы:velero backup create coffee-backup --include-namespaces example-app -
Загрузите детальную информацию о резервной копии:
velero backup describe coffee-backup -
(Опционально) Посмотрите логи операции резервного копирования:
velero backup logs coffee-backup -
(Опционально) Настройте расписание для автоматического создания резервных копий.
-
Имитируйте отказ приложения. Для этого удалите пространство имен
example-app, в котором находятся ресурсы, необходимые для работы приложения:kubectl delete ns example-app -
Выполните восстановление из резервной копии, которая была создана ранее:
velero restore create --from-backup coffee-backupКоманда восстановит данные в тот же кластер, в котором было выполнено резервное копирование. Если нужно восстановить данные в новый кластер:
- Создайте кластер.
- Установите Velero в кластер.
- Выполните приведенную выше команду.
-
Дождитесь назначения балансировщику нагрузки публичного IP-адреса.
Периодически проверяйте статус балансировщика:
kubectl get svc -n example-appВ столбце
EXTERNAL-IPдолжен появиться публичный IP-адрес, назначенный балансировщику. -
Убедитесь, что NGINX отвечает на запросы:
curl <ПУБЛИЧНЫЙ_IP_АДРЕС_БАЛАНСИРОВЩИКА>Должно быть выведено следующее:
The coffee pod says Hello World to everyone! This file is located on the dynamically claimed Cinder ReadWriteOnce persistent volume.
Работающий кластер тарифицируется и потребляет вычислительные ресурсы. Если инструмент Velero и ресурсы Kubernetes, созданные для проверки резервного копирования с его помощью, вам больше не нужны, удалите их:
-
Удалите созданное пространство имен
example-appи связанные с ним ресурсы, а также созданную резервную копию:Linux/macOSWindowskubectl delete ns example-appvelero backup delete coffee-backup -
Удалите Velero:
velero uninstall -
Удалите резервные копии из бакета, который использовался Velero.
При необходимости также удалите сам бакет.
-
Остановите созданный кластер, чтобы воспользоваться им позже, или удалите его навсегда.