Восстановление (restore)

Ресурс Restore

Восстановление из бэкапа создаёт объект Restore в неймспейсе velero. Контроллер Velero асинхронно применяет ресурсы из выбранного Backup. Прогресс и ошибки отражаются в статусе Restore.

Манифест Restore в интерфейсе доступен на вкладке Манифест; после изменений YAML выполняют проверку.

После создания объект Restore не редактируют — при необходимости создают новый. Удалить ресурс Restore можно со страницы списка восстановлений, со страницы просмотра или через манифест. В списке восстановленных копий кластера и неймспейса можно удалить одну копию или несколько сразу. Как выбрать объекты и подтвердить удаление — в разделе Множественное удаление.

В графическом интерфейсе кластера или неймспейса

Резервное копирование и восстановление → Восстановленные копии → Восстановить из резервной копии. Кнопка активна, если в текущем скоупе есть хотя бы один Backup.

Скриншоты — иллюстрация

Восстановление из резервной копии

Статус restore

Манифест restore


Источник выбирается в блоке Восстановление из ресурса: Резервной копии или Планировщика. Заполняется одно из двух полей.

ПолеПараметр в манифестеОписание
Имя резервной копииspec.backupNameОбязательное, если источник — Резервной копии. Имя объекта Backup, из которого выполняется восстановление.
Имя планировщикаspec.scheduleNameОбязательное, если источник — Планировщика. Имя объекта Schedule. Velero восстанавливает из последней копии этого планировщика в фазе Completed.
Политика обновления существующих ресурсовspec.existingResourcePolicyПравило обработки ресурсов, уже существующих в кластере.
ИнтерфейсСмысл в терминах Velero
Пропустить (по умолчанию)Существующие в кластере ресурсы не перезаписываются (existingResourcePolicy: none).
ОбновитьПри конфликте существующие ресурсы обновляются (existingResourcePolicy: update).

Подробнее о порядке применения ресурсов, пропуске уже существующих объектов и фильтрах — Restore Reference (v1.17) и Справочная информация.

Когда можно восстановить

Сразу после создания копии восстанавливать рано: Velero сначала собирает ресурсы и кладёт архив в хранилище.

Восстановление доступно, когда статус копии — Completed или PartiallyFailed. При New или InProgress — нет.

Если источник — планировщик, для восстановления будет выбрана последняя созданная этим планировщиком резервная копия со статусом Completed.

Выбор ресурсов и неймспейсов для восстановления

Списки Доступные ресурсы и Доступные неймспейсы заполняются после выбора резервной копии или планировщика. Выбирайте копию, которая уже завершилась (см. Когда можно восстановить).

В форме два блока: Восстановление ресурсов и Восстановление неймспейсов. Отдельного блока кластерных ресурсов нет: кластерные и неймспейсные типы выбираются в одном списке Восстановление ресурсов.

Для восстановления доступно выбрать сразу все (*Все ресурсы или неймспейсы выбранного блока. В манифест передаётся значение *). Если выбрать конкретный ресурс или неймспейс, отметка «все» снимается.

Один и тот же ресурс или неймспейс нельзя одновременно включить и исключить. В одном списке нельзя одновременно выбрать «все» (*) и отдельные имена. Правило исключения всех неймспейсов и ресурсов для восстановления в Velero заблокировано. Если ничего не включили и ничего не исключили, из копии будет восстановлено всё. Можно включить все ресурсы (*) и исключить отдельные типы. Если в исключении стоит «все» (*), ничего не восстановится независимо от того, что выбрано во включении.

ПолеПараметр в манифестеОписание
Включить ресурсыspec.includedResourcesТипы ресурсов, включаемые в восстановление.
Исключить ресурсыspec.excludedResourcesТипы ресурсов, исключаемые из восстановления.
Включить неймспейсыspec.includedNamespacesНеймспейсы, включаемые в восстановление.
Исключить неймспейсыspec.excludedNamespacesНеймспейсы, исключаемые из восстановления.

Если ничего не включили и ничего не исключили, из копии восстанавливается всё. Явно исключённые ресурсы или неймспейсы не восстанавливаются.

Скриншоты

Восстановление резервной копии

Выбор объектов для бэкапа

Ограничения по томам

PV, которые уже смонтированы в работающие нагрузки (Deployment, StatefulSet, Pod), не восстанавливаются, чтобы не нарушить работу приложений.

Хуки восстановления

Velero поддерживает restore hooks (initContainer и exec после старта пода) для подготовки приложения к работе после restore. В релизе 2.14.0 использование хуков доступно только в интерфейсе манифеста рестора.

Описание аннотаций и полей spec.hooks — Restore Hooks (v1.17).

Пример: Restore (YAML)

apiVersion: velero.io/v1
kind: Restore
metadata:
  name: restore-my-backup
  namespace: velero
spec:
  backupName: backup-my-namespace
  includedNamespaces:
  - my-app
  includedResources:
  - "*"
  excludedResources:
  - events
  restorePVs: true
  existingResourcePolicy: none
  • existingResourcePolicy: none — как «Пропустить»; update — как «Обновить».
  • restorePVs: восстановление PV из бэкапа (при наличии в бэкапе и при отсутствии конфликтов с работающими томами).

Импорт: Импорт манифестов.

Диагностика: velero restore describe <имя> — в т.ч. сводка по хукам (Restore Hooks (v1.17)).


Известные особенности restore на стороне Kubernetes (LoadBalancer, admission webhooks) перечислены в траблшутинге.