Создание бэкапов
Предварительные требования
- Подключено S3-хранилище.
- Установлен и работает модуль резервного копирования и восстановления (shturval-backup) — режим Авто, см. обзор сервисов.
Ресурс Backup (разовый бэкап)
Имя, TTL, хранилище, лейблы бэкапа и селектор объектов (неймспейсы, типы ресурсов, лейблы) задают объём данных. Селектор в форме интерфейса работает по принципу «И»: в бэкап попадают выбранные объекты кластера/неймспейсов и объекты с выбранными лейблами или выражениями.
Для сложной конфигурации бэкапа рекомендуется использовать YAML-манифест. Загрузить его в графический интерфейс можно через импорт манифестов.
В графическом интерфейсе кластера или неймспейса
| Действие | Путь |
|---|---|
| Разовый бэкап | Резервное копирование и восстановление → Резервные копии → Добавить резервную копию |
| Планировщик | Резервное копирование и восстановление → Планировщики → Добавить планировщик |
Скриншоты — иллюстрация





Параметры резервной копии
| Поле | Параметр в манифесте | Описание |
|---|---|---|
| Имя | metadata.name | Обязательное. Строчные латинские буквы и цифры, начинается с буквы. После создания не меняется. |
| TTL | spec.ttl | Время жизни бэкапа в хранилище. |
| Хранилище | spec.storageLocation | Выбранный BackupStorageLocation. |
| defaultVolumesToFsBackup | spec.defaultVolumesToFsBackup | Резервное копирование томов через файловую систему пода (по умолчанию включено). Для полного бэкапа кластера с PV рекомендуется отключить, чтобы снизить риск ошибок при восстановлении (см. справочник). |
| Лейблы бэкапа | metadata.labels | Метки, проставляемые на создаваемый объект Backup. |
Выбор ресурсов и неймспейсов
В кластере доступно: Копирование кластерных ресурсов, Копирование неймспейсов, Копирование неймспейсных ресурсов. В неймспейсе доступен только блок Копирование неймспейсных ресурсов.
Состав резервной копии задаётся отдельно для кластерных ресурсов, неймспейсов и неймспейсных ресурсов: что включить в копию и что из неё исключить. Один и тот же ресурс или неймспейс нельзя одновременно включить и исключить.
| Поле | Параметр в манифесте | Описание |
|---|---|---|
| Включить кластерные ресурсы | spec.includedClusterScopedResources | Типы кластерных ресурсов, включаемые в резервную копию. |
| Исключить кластерные ресурсы | spec.excludedClusterScopedResources | Типы кластерных ресурсов, исключаемые из резервной копии. |
| Включить неймспейсы | spec.includedNamespaces | Неймспейсы, включаемые в резервную копию. |
| Исключить неймспейсы | spec.excludedNamespaces | Неймспейсы, исключаемые из резервной копии. |
| Включить неймспейсные ресурсы | spec.includedNamespaceScopedResources | Типы неймспейсных ресурсов, включаемые в резервную копию. |
| Исключить неймспейсные ресурсы | spec.excludedNamespaceScopedResources | Типы неймспейсных ресурсов, исключаемые из резервной копии. |
В ресурсе Schedule те же параметры задаются в spec.template.
Чекбокс Все кластерные ресурсы, Все неймспейсные ресурсы или Все неймспейсы выбирает сразу всё в этом списке (*Все ресурсы или неймспейсы. В манифест передаётся единственное значение *) и снимает уже отмеченные имена. Если затем выбрать конкретный ресурс или неймспейс, отметка «все» снимается.
Правило исключения всех неймспейсов в Velero заблокировано, поэтому в интерфейсе чекбокс Все неймспейсы недоступен. Исключить можно только выбранные неймспейсы.
Неймспейс velero исключается автоматически — его восстановление приводит к ошибке.
В одном списке нельзя одновременно выбрать «все» (*) и отдельные имена. Сохранить такую настройку не получится.
Если ничего не включили и ничего не исключили, в копию попадёт всё в этом блоке. Неймспейс velero и промежуточные CSI-снапшоты платформа не копирует в любом случае.
Можно включить все ресурсы (*) и исключить отдельные типы. Наоборот нельзя: исключить всё и при этом что-то включить. Если и во включении, и в исключении стоит «все» (*), в копию не попадёт ничего.
Зависимые объекты: при выборе PVC в неймспейсные ресурсы в бэкап попадает связанный PV.
Автоисключение CSI-снапшотов: при обработке Backup контроллер Velero (начиная с v1.17.0, в платформе — с 2.13.1) автоматически добавляет в исключения volumesnapshots.snapshot.storage.k8s.io и volumesnapshotcontents.snapshot.storage.k8s.io, даже если в конфигурации в интерфейсе они не задавались. Подробности — Автоматическое исключение промежуточных CSI-ресурсов.
Скриншоты



Исключение объекта по лейблу (Velero)
Отдельный объект можно исключить из бэкапа лейблом velero.io/exclude-from-backup=true (применимо, если объект попадает под общий селектор). Подробности и пример команды — Backup Reference (v1.17).
Статус и манифест
Статус выполнения отображается в ресурсе Backup — смотрите поле status.phase. Восстановление из конкретной копии возможно после завершения (Completed или PartiallyFailed) бэкапирования, см. Когда можно восстановить. YAML доступен как манифест того же ресурса. Удалить запись о бэкапе можно со страницы списка бэкапов, со страницы просмотра бэкапа или удалив объект на вкладке манифеста. В списке резервных копий кластера и неймспейса можно удалить одну копию или несколько сразу. Как выбрать объекты и подтвердить удаление — в разделе Множественное удаление.
Удаление только CR Backup через kubectl delete backup не удаляет данные из объектного хранилища; полное удаление данных — через velero backup delete <имя> (Backup Reference (v1.17)).
После правок манифеста бэкапа или планировщика в интерфейсе нажмите Проверить; при ошибке формата манифеста проверка недоступна.
Пример: Backup (YAML)
Имя в spec.storageLocation должно совпадать с именем подключённого хранилища (BackupStorageLocation).
apiVersion: velero.io/v1
kind: Backup
metadata:
name: backup-my-namespace
namespace: velero
spec:
storageLocation: default
ttl: 720h
includedNamespaces:
- my-app
includedNamespaceScopedResources:
- "*"
excludedNamespaceScopedResources:
- events
defaultVolumesToFsBackup: false
Импорт: Импорт манифестов.
Ресурс Schedule (планировщик)
Планировщик создаёт бэкапы по расписанию. Выбор ресурсов и неймспейсов, автоисключение CSI-снапшотов и зависимые объекты — те же, что у разового бэкапа. Изменения в сохранённом планировщике применяются к новым бэкапам, уже созданные не пересобираются. В списке планировщиков кластера и неймспейса можно удалить один планировщик или несколько сразу. Как выбрать объекты и подтвердить удаление — в разделе Множественное удаление.
Скриншот: добавление планировщика

| Поле | Параметр в манифесте | Описание |
|---|---|---|
| Имя планировщика | metadata.name | Обязательное. Строчные латинские буквы и цифры, начинается с буквы. После создания не меняется. |
| Лейблы | metadata.labels | Метки, проставляемые на создаваемый объект Schedule. |
| Расписание | spec.schedule | Обязательное. Cron или CRON_TZРасписание может быть задано в формате Cron или с часовым поясом, например, CRON_TZ=Europe/Moscow 0 3 * * *. При переходе на летнее/зимнее время может не наступить или наступить дважды событие по расписанию. Плейсхолдер поля: CRON_TZ=Europe/Moscow 0 3 * * *. Если указано не только cron-выражение, проверяются префикс CRON_TZ= и указание таймзоны через /. |
| Время хранения резервной копии | spec.template.ttl | Время жизни создаваемых бэкапов в хранилище. Задаётся в часах, минутах и секундах; по умолчанию 720 ч. |
| Имя хранилища | spec.template.storageLocation | Выбранный BackupStorageLocation. |
| defaultVolumesToFsBackup | spec.template.defaultVolumesToFsBackup | Резервное копирование томов через файловую систему пода. Да — включено, Нет — выключено. |
Формат с часовым поясом — в Backup Reference (v1.17).
Для сложной конфигурации планировщика рекомендуется использовать YAML-манифест. Загрузить его в графический интерфейс можно через импорт манифестов.
Пример: Schedule (YAML)
apiVersion: velero.io/v1
kind: Schedule
metadata:
name: daily-my-app
namespace: velero
spec:
schedule: "CRON_TZ=Europe/Moscow 0 3 * * *"
template:
ttl: 168h
storageLocation: default
includedNamespaces:
- my-app
includedNamespaceScopedResources:
- "*"
excludedNamespaceScopedResources:
- events
defaultVolumesToFsBackup: false
При сбоях см. Траблшутинг.