Резервное копирование

Оператор snapshotter (Snapshotter)

Оператор snapshotter (Snapshotter) предоставляет управление снапшотами ("снимками") постоянных томов (Persistent Volumes) в кластере Kubernetes. Снапшоты используются с совместимыми CSI-драйверами. CSI-драйверы в РОСА Кубис, поддерживающие снапшоты:

  • RawFile CSI;
  • Ceph CSI;
  • NFS CSI;
  • oVirt CSI;
  • vSphere CSI. Снапшоты предоставляют стандартный способ копирования содержимого тома в определенный момент времени без создания нового тома. Снапшоты могут быть необходимы, например, администраторам баз данных для создания резервных копий перед выполнением операций.

CRD оператора

Для управления снапшотами оператор snapshotter использует Custom Resource Definition (CRD):

  • VolumeSnapshotClass ‒ в кастомном ресурсе задаются атрибуты для создания снапшотов. Основной параметр ‒ используемый CSI-драйвер;
  • VolumeSnapshotContent ‒ фактическое содержимое снапшота, связанное с VolumeSnapshot;
  • VolumeSnapshot ‒ объект в Kubernetes, описывающий снимок PVC.

Конфигурация оператора

Оператор snapshotter является критически важным для работы Комплекса (недоступен для отключения). По умолчанию модуль устанавливается в клиентские кластеры и кластер управления во включенном состоянии.

Для просмотра состояния сервиса нужно перейти на страницу "Установленные сервисы" раздела "Сервисы и репозитории", найти "Оператор snapshotter" (shturval-snapshotter) и нажать Управлять.

Для корректной работы модуля должен быть включен CRD оператора snapshotter (shturval-snapshotter-crds).

Модуль резервного копирования и восстановления (velero)

Модуль резервного копирования и восстановления основан на velero, обеспечивающем создание резервных копий (не snapshots), назначение расписания и восстановление данных из ранее созданных резервных копий, а также перенесение ресурсов кластера в другие кластеры, репликацию производственного кластера в кластеры разработки и тестирования.

Для настройки velero в интерфейсе кластера управления Комплекса нужно:

  1. в боковом меню открыть раздел "Сервисы и репозитории";
  2. перейти на страницу "Установленные сервисы". Далее следует найти "Модуль резервного копирования и восстановления". Если модуль не отображается, нужно в боковом меню открыть раздел "Сервисы и репозитории" и перейти на страницу "Доступные чарты", найти чарт shturval-backup и нажать Установить.

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

Удаление бэкапов происходит в пределах одного часа после истечения срока их хранения. Если требуется изменить период удаления по умолчанию, следует подготовить и загрузить в кластер с помощью импорта манифестов ShturvalServicePatch для Модуль резервного копирования и восстановления (Velero) (shturval-backup). В customvalues необходимо задать значение для defaultRepoMaintainFrequency, как приведено в примере ShturvalServicePatch ниже (описание параметров ‒ в таблице 95):

apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: <имя ресурса>
spec:
shturvalServiceConfigName: shturval-backup
customvalues:
configuration:
defaultRepoMaintainFrequency: "<ваше значение параметра>"

Таблица 95 ‒ Параметры customvalues

Чтобы перейти к просмотру примененного ShturvalServicePatch, нужно:

  1. в кластере из раздела "Сервисы и репозитории" открыть страницу "Установленные сервисы";
  2. найти Модуль резервного копирования и восстановления (shturval-backup) и перейти к управлению;
  3. когда ShturvalServicePatch будет применен, на вкладке "Сервис" статус обновится до Patched, а на вкладке "Примененные PatchSSC" в списке отобразится загруженный ShturvalServicePatch.

Решение ошибок

"Error checking repository for stale locks"

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

"error checking if volume is a hostPath volume"

Такая ошибка говорит о том, что под, содержащий в volumes контейнера указание на hostPath, не был добавлен в бэкап. Это происходит по причине того, что velero не может записывать резервные копии с hostPath.

Появление этой ошибки не прерывает работу модуля резервного копирования.

Если требуется исключить поды с hostPath из бэкапа, необходимо вручную проставить аннотации в шаблон пода Deployment/DaemonSet, которые создают поды с такими mounts:

Аннотации:

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

где в name1, name2 … nameN нужно вписать через запятую все names из volume, которые ссылаются на hostPath.

"pod volume backup failed: getting pod trivy-system/scan-vulnerabilityreport-*"

Сканер уязвимостей Trivy периодически создает поды. Допустимо, что в процессе создания резервной копии поды могли быть удалены или пересозданы.

С дополнительной информацией можно ознакомиться на официальном сайте. В текущем релизе используется velero версии 1.15.2.