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

О сервисе

Параметр Значение
Название в интерфейсе Модуль резервного копирования и восстановления
Системное название (идентификатор) shturval-backup
Назначение в кластере Резервное копирование и восстановление ресурсов Kubernetes и PersistentVolumes; расписания бэкапов; перенос ресурсов между кластерами
Критический Нет (перечень сервисов)
Публичный репозиторий Velero
Компонент Open Source в составе платформы Velero 1.17.1 (релиз платформы 2.13) / 1.17.2 (2.14)
Зависимости shturval-backup-crds, shturval-networking
Неймспейс velero

При выборе сервиса на шаге создания кластера зависимые сервисы подключаются автоматически.

Назначение

shturval-backup разворачивает Velero в кластере: объекты Backup, Schedule, Restore, хранилище бэкапов в S3-совместимом backend и (при необходимости) механизмы копирования томов.

Пользовательские сценарии — подключение хранилища, создание бэкапов, restore, траблшутинг — собраны в разделе Резервное копирование в кластере.

Установка сервиса

Сервис состоит из двух чартов: shturval-backup-crds с CRD Velero и основного чарта shturval-backup.

При ручной установке из Доступных чартов сначала установите shturval-backup-crds и дождитесь статуса готовности сервиса на странице Установленные сервисы. После этого установите основной чарт shturval-backup. Если установить основной чарт до готовности CRD, Kubernetes не сможет создать кастомные ресурсы Velero.

Где управлять сервисом

Сервисы и репозиторииУстановленные сервисыshturval-backupУправлять. Режим Авто включает автоматическое применение манифестов сервиса (обзор).

Если чарт не установлен, его можно поставить из Доступных чартов (чарт shturval-backup), см. как развернуть новый сервис. При необходимости переопределения параметров чарта, примените изменения через ShturvalServicePatch.

Скриншоты: страница сервиса и ShturvalServicePatch

Импорт ShturvalServicePatch для shturval-backup

Страница сервиса shturval-backup

Примененные ShturvalServicePatch для shturval-backup

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

Удаление объектов бэкапа из хранилища после истечения TTL по умолчанию выполняется в пределах 1 часа. Период задаётся через defaultRepoMaintainFrequency в ShturvalServicePatch для shturval-backup.

Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
  name: <имя ресурса>
spec:
  shturvalServiceConfigName: shturval-backup
  customvalues:
    configuration:
       defaultRepoMaintainFrequency: "<ваше значение параметра>"
Параметр Описание Тип Пример
metadata.name Имя ресурса ShturvalServicePatch string shturval-backup-delete
defaultRepoMaintainFrequency Интервал, с которым запускается связанная с репозиторием обработка (в т.ч. удаление просроченных данных); по умолчанию 1h string 3h

Начиная с Velero 1.16 частоту quick maintenance для конкретного репозитория можно уточнять на ресурсе BackupRepository (поле вроде maintenanceFrequency, по умолчанию 1 час), см. также Backup Repository Configuration (v1.17).

Автоматическое исключение промежуточных CSI-ресурсов

Начиная с Velero v1.17.0 (в платформе — с релиза 2.13.1) контроллер автоматически исключает из сбора ресурсов Kubernetes объекты CSI-снэпшотов:

  • volumesnapshots.snapshot.storage.k8s.io — неймспейсный ресурс VolumeSnapshot;
  • volumesnapshotcontents.snapshot.storage.k8s.io — кластерный ресурс VolumeSnapshotContent.

Эти объекты считаются промежуточными CSI-ресурсами, а также среди них могут быть старые или созданные другим резервным копированием. Velero не собирает все существующие в кластере VolumeSnapshot и VolumeSnapshotContent обычным resource collection: в обработку попадают только объекты, относящиеся к текущему backup flow.

Отображение в манифесте резервного копирования

После создания резервной копии в YAML-манифесте Backup вы увидите, даже если указывали ресурсы только в included:

excludedClusterScopedResources:
  - volumesnapshotcontents.snapshot.storage.k8s.io
excludedNamespaceScopedResources:
  - volumesnapshots.snapshot.storage.k8s.io
Версия Velero Поведение
v1.14.0 и выше CSI-поддержка встроена в код Velero; отдельный velero-plugin-for-csi устанавливать не нужно
v1.14.0–v1.16.x Блок auto-exclude отсутствует
v1.17.0 и выше Auto-exclude VolumeSnapshot/VolumeSnapshotContent

Типовые сообщения об ошибках

Кратко (подробности и команды — траблшутинг):

Error checking repository for stale locks

Данные в бакете (restic/kopia) удалены или не согласованы с BackupRepository в кластере. Не удаляйте каталоги репозитория вручную без удаления соответствующих CR.

error checking if volume is a hostPath volume

Tom hostPath не участвует в file system backup; сообщение не останавливает весь процесс. При необходимости задайте backup.velero.io/backup-volumes-excludes.

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

Краткоживущий под сканера; при гонке с бэкапом сообщение допустимо.