Восстановление (restore)
Ресурс Restore
Восстановление из бэкапа создаёт объект Restore в неймспейсе velero. Контроллер Velero асинхронно применяет ресурсы из выбранного Backup. Прогресс и ошибки отражаются в статусе Restore.
Манифест Restore в интерфейсе доступен на вкладке Манифест; после изменений YAML выполняют проверку.
После создания объект Restore не редактируют — при необходимости создают новый. Удалить ресурс Restore можно со страницы списка восстановлений, со страницы просмотра или через манифест. В списке восстановленных копий кластера и неймспейса можно удалить одну копию или несколько сразу. Как выбрать объекты и подтвердить удаление — в разделе Множественное удаление.
В графическом интерфейсе кластера или неймспейса
Резервное копирование и восстановление → Восстановленные копии → Восстановить из резервной копии. Кнопка активна, если в текущем скоупе есть хотя бы один Backup.
Скриншоты — иллюстрация



Источник выбирается в блоке Восстановление из ресурса: Резервной копии или Планировщика. Заполняется одно из двух полей.
| Поле | Параметр в манифесте | Описание |
|---|---|---|
| Имя резервной копии | 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) перечислены в траблшутинге.