Справочная информация
Раздел «Администратору кластера»: быстрый переход по подразделам
Бэкап и снапшот
| Аспект | Бэкап (Velero) | Снапшот |
|---|---|---|
| Что сохраняется | Ресурсы и тома по селектору бэкапа (неймспейсы, типы, лейблы). | Копия тома на уровне хранилища (CSI и т.п.). |
| Результат восстановления | Состояние включённых в бэкап объектов. Не «вся система целиком». | Состояние тома в момент снапшота. |
| Гранулярность | Объекты Kubernetes. | Блоки/данные тома. |
| Связи | При выборе PVC в бэкап попадает связанный PV. | Независим от модели ресурсов Kubernetes. |
| Типичное применение | Восстановление приложений, перенос между кластерами, DR. | Быстрое восстановление тома, клонирование. |
Резервная копия не заменяет снапшот всего кластера: в восстановлении участвуют только те ресурсы, которые попали в бэкап.
Поведение бэкапа (Velero и платформа)
- Селективный выбор — включающие или исключающие неймспейсы, типы ресурсов, лейблы; отдельные объекты можно пометить лейблом
velero.io/exclude-from-backup=true(Backup Reference (v1.17)). - Автоисключение CSI-снапшотов — начиная с Velero v1.17.0 (платформа 2.13.1) контроллер принудительно исключает
volumesnapshots.snapshot.storage.k8s.ioиvolumesnapshotcontents.snapshot.storage.k8s.ioиз обычного сбора ресурсов. Подробности — shturval-backup. - Неймспейс
veleroисключается автоматически. defaultVolumesToFsBackup— при значении по смыслу «да» тома подов копируются через file system backup (общая схема описана в File System Backup (v1.17)). При отключении для томов используются механизмы на уровне провайдера (CSI-снапшоты и т.д.), если они доступны в кластере. Для полного бэкапа кластера с томами рекомендуется отключать файловое копирование для всех томов, чтобы уменьшить риск ошибок при восстановлении.- BackupRepository и kopia — при бэкапе с PV в объектном хранилище создаётся структура с данными бэкапа и каталог kopia. Репозитории в kopia привязаны к неймспейсам с бэкапируемыми PV, а не к отдельным объектам
Backup. В неймспейсеveleroсоздаются ресурсыBackupRepository(в т.ч. с префиксом имени неймспейса). - Удаление бэкапа — удаление только CR
Backupв Kubernetes не убирает данные из хранилища; для полного удаления данных из object/block storage используетсяvelero backup delete(Backup Reference (v1.17)). Удаление CR не удаляет репозитории kopia сразу; фактическая очистка выполняется процедурами maintenance (частота quick для репозитория настраивается на ресурсеBackupRepository, например полеmaintenanceFrequency(по умолчанию 1 час); full — автоматически; полное удаление «следов» может занимать до порядка недели после удаления бэкапа). Логи maintenance смотрят в ресурсах Job неймспейсаvelero(хранятся последние несколько job). - Объектное хранилище с immutability — режимы неизменяемости объектов у разных провайдеров мешают обновлять метаданные бэкапа в хранилище; поведение зависит от типа политики и провайдера (Backup Reference (v1.17)).
Поведение restore
- Асинхронность — статус в
Restore. - Политика существующих ресурсов —
none(не перезаписывать) илиupdate(обновлять при конфликте), см. страницу restore. - PV в использовании — тома, смонтированные в работающие поды, не восстанавливаются (Deployment, StatefulSet, Pod).
- Порядок — ресурсы восстанавливаются в порядке, рассчитанном Velero с учётом зависимостей (Restore Reference (v1.17)).
- Ресурсы вне бэкапа не затрагиваются.
Рекомендации
- Подключить S3-совместимое хранилище до первых бэкапов.
- Для регулярных копий использовать
Schedule(cron). - Разделять бэкапы по назначению (критичные неймспейсы, «полный» кластер, DR).
- Для полного бэкапа кластера с PV — отключить
defaultVolumesToFsBackupдля соответствующих бэкапов. - Задавать TTL, исходя из ёмкости хранилища и политики хранения.
- Периодически проверять restore на тестовом кластере или в тестовом неймспейсе.
- Не удалять каталоги данных бэкапа (restic/kopia) в объектном хранилище вручную без согласованного удаления
BackupRepository— иначе возможны ошибки вродеError checking repository for stale locks. - Для подов с hostPath при необходимости задать аннотацию
backup.velero.io/backup-volumes-excludesсо списком имён volume. - Сценарии восстановления кластера управления — см. Восстановление кластера.
Документация Velero v1.17
Справочник по CLI, полям CRD и ограничениям: Velero v1.17 Docs.