Настройка резервного копирования с использованием Кибер Бэкап
В разделе описана процедура настройки резервного копирования ресурсов Kubernetes и данных на PersistentVolumeClaim (PVC) в Longhorn с использованием Кибер Бэкап в Nova.
1. Необходимые условия
-
Развернут кластер Nova версии 7.5.0.
-
Развернут отдельный сервер с установленным Кибер Бэкап версии 18.5.
-
У вас есть доступ к кластеру Nova с учетной записью, имеющей роль
cluster-adminв Kubernetes. -
Установлен модуль Longhorn.
-
Настроено резервное копирование узлов кластера.
2. Установка агента Кибер Бэкап в Nova
-
Убедитесь, что у вас установлены необходимые пакеты из статьи.
-
В веб-консоли Кибер Бэкап перейдите в Устройства → Необслуживаемые машины.
-
Добавьте приложение Kubernetes.
-
Скачайте и установите агент Кибер Бэкап для Kubernetes.
-
Скопируйте агент на мастер-узлы.
-
Запустите агент с правами
root. -
При установке выберите Agent for Linux и Agent for Kubernetes.
-
При установке укажите IP-адрес сервера управления Кибер Бэкап и данные для подключения (в данном случае — имя и пароль).
|
При возникновении ошибки при установке обратитесь к статье. |
3. Бэкап Kubernetes ресурсов Nova и PVC (на Longhorn)
3.1. Добавление кластера Nova в веб консоли Кибер Бэкап
-
В веб-консоли Кибер Бэкап перейдите в Устройства → Необслуживаемые машины (или в любую другую вкладку пределах блока Устройства).
-
Добавьте кластер Kubernetes.
-
Выберите подключенный агент.
-
Выберите конфигурационный файл кластера (можно использовать файл
kubeadmin.conf, созданный при установке Nova, или взять с мастер-узла/etc/kubernetes/admin.conf).
3.2. Создание плана защиты в веб-консоли Кибер Бэкап
-
В веб-консоли Кибер Бэкап перейдите в Планы → Защита.
-
Создайте план и выберите Kubernetes в Выбор данных.
-
Выберите Комбинированное в Хранение моментальных снимков.
-
Выберите Место сохранения.
-
Нажмите Создать.
|
Для большей безопасности данных рекомендуется использовать Комбинированное хранение моментальных снимков. Это позволит хранить резервную копию данных PVC локально и на удаленном сервере в настроенном Хранилище резервных копий (например, на NFS-сервере). |
3.3. Настройка резервного копирования PVC на основе Longhorn в Nova
Создайте VolumeSnapshotClass для резервного копирования данных Longhorn.
kind: VolumeSnapshotClass
apiVersion: snapshot.storage.k8s.io/v1
metadata:
name: longhorn
annotations:
snapshot.storage.kubernetes.io/is-default-class: "true"
driver: driver.longhorn.io
deletionPolicy: Delete
parameters:
type: bi
3.4. Проверка резервного копирования PVC
-
Создайте ресурсы из следующего манифеста в кластере Nova (можно применить в веб-консоли Nova или с одного из мастер-узлов).
Пример
apiVersion: v1 kind: Namespace metadata: name: test --- apiVersion: v1 kind: Pod metadata: name: busybox-pod namespace: test spec: containers: - name: busybox image: hub-nova.orionsoft.ru/library/busybox:latest command: ["/bin/sh", "-c", "sleep 3600"] volumeMounts: - mountPath: /tmp/busybox name: busybox-storage volumes: - name: busybox-storage persistentVolumeClaim: claimName: busybox-pvc --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: busybox-pvc namespace: test spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: longhorn-storage-single-replica -
Создайте файл внутри пода в смонтированном каталоге.
kubectl exec -it busybox-pod -n test -- /bin/sh -c 'echo "Hello World!" > /tmp/busybox/test.txt' -
Зайдите в веб-консоль Кибер Бэкап в Устройства → Kubernetes.
-
Найдите и нажмите на пространство имен
test. -
Нажмите на Защитить.
-
Выберите и примените план защиты.
-
В веб-консоли Nova перейдите на вкладку Namespaces и удалите пространство имен
test. -
В веб-консоли Longhorn перейдите на вкладку Volume и убедитесь, что
busybox-podотсутствует в списке. -
В веб-консоли Кибер Бэкап перейдите в Устройства → Kubernetes.
-
Найдите и нажмите на пространство имен
test. -
Нажмите Восстановление.
-
Выберите нужную резервную копию и нажмите Восстановить.
-
Нажмите на Восстановить все пространство.
-
Выберите Удалить старое пространство и создать новое с выбранными ресурсами и нажмите Начать восстановление.
-
В веб-консоли Nova перейдите на вкладку Ресурсы → Pods.
-
Убедитесь, что создался под
busybox-pod. -
Убедитесь, что данные восстановились.
kubectl exec -it busybox-pod -n test -- /bin/sh -c 'cat /tmp/busybox/test.txt' Hello World!
4. Создание резервной копии узлов Nova
В данном примере будет выполнено резервное копирование и восстановление мастер-узлов.
4.1. Создание плана защиты в веб-консоли Кибер Бэкап
-
В веб-консоли Кибер Бэкап перейдите в Планы → Защита.
-
Создайте план и выберите Вся машина в Выбор данных.
-
Выберите Место сохранения.
-
Нажмите Создать.
-
Отредактируйте план и добавьте узел для резервного копирования. Для этого нажмите на Добавить устройство. После этого выберите мастер-узел.
-
Перейдите в Устройства → Физические и виртуальные машины → выберите мастер-узел и нажмите Защитить.
-
Запустите резервное копирование и дождитесь его завершения.
-
Выключите мастер-узел и создайте аналогичный сервер.
-
Установите агент Кибер Бэкап на сервер с аналогичными ранее настройками, но также добавьте компонент Bootable Media Builder.
-
В веб-консоли Кибер Бэкап перейдите в Хранилища резервных копий → выберите хранилище → выберите резервную копию, из которой хотите выполнить восстановление → нажмите Восстановить и выберите Вся машина.
-
Укажите сервер, куда будут восстановлены данные, и нажмите Начать восстановление.
-
Проверьте, какие изменения будут выполнены, и нажмите Начать восстановление.
-
Дождитесь окончания восстановления.
-
Зайдите на узел и проверьте состояние сервисов
kubeletиetcd.systemctl status kubelet systemctl status etcd -
В случае проблем с
etcdследуйте соответствующему пункту в статье.