Траблшутинг резервного копирования

Логи и описание бэкапа

Список бэкапов

kubectl get backup -n velero

События и ошибки по бэкапу

kubectl describe backup <имя-бэкапа> -n velero

Логи сервера Velero

kubectl logs -n velero deployment/velero --tail=500

Логи job бэкапа (если создаётся Job)

kubectl logs -n velero job/<имя-job> -f

Для бэкапов, упавших на ранней стадии, файл лога может отсутствовать — ориентируйтесь на kubectl describe backup и логи deployment/velero (Troubleshooting (v1.17)).

Restore

Описание restore (kubectl)

kubectl describe restore <имя> -n velero

Описание restore (Velero CLI)

velero restore describe <имя>

Лог restore (Velero CLI)

velero restore logs <имя>

Сбор отладочного архива

Справка по команде velero debug

velero debug --help

Команда velero debug формирует архив с версиями, логами сервера и плагинов и ресурсами, которыми управляет Velero (Troubleshooting (v1.17)).

Повышение уровня логирования

В манифесте Deployment velero в неймспейсе velero для контейнера сервера добавляют аргументы --log-level и debug (Troubleshooting (v1.17)).


Почему бэкап может быть недоступен в интерфейсе

Причина Что проверить
Нет BackupStorageLocation Подключение S3, kubectl get backupstoragelocation -n velero
Ошибка доступа к S3 URL, порт, TLS, учётные данные, сеть с узлов кластера до хранилища
Неверные ключи Поля доступа в секрете/объекте хранилища; для MinIO — access key / secret key
Другой скоуп Бэкапы привязаны к контексту (кластер / неймспейс)
Синхронизация Интервал backupSyncPeriod; при необходимости перезапуск компонентов Velero
Ручное удаление в бакете Не удалять каталоги restic/kopia без согласованного удаления BackupRepository
Сервис выключен Сервисы и репозиторииУстановленные сервисыshturval-backup, режим Авто

Типичные ошибки и ситуации

Error checking repository for stale locks

Данные в объектном хранилище (каталоги restic/kopia) удалены или повреждены, а объекты BackupRepository в кластере остались. Либо удалять данные вместе с BackupRepository, либо не трогать данные в бакете вручную.

error checking if volume is a hostPath volume

Velero не включает в file system backup тома hostPath. Сообщение не останавливает остальной бэкап. Чтобы убрать предупреждение, исключите тома аннотацией на поде:

backup.velero.io/backup-volumes-excludes: name1,name2,name3

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

Поды сканера Trivy часто короткоживущие; к моменту копирования тома под уже мог исчезнуть. Обычно это ожидаемо и не означает полный отказ бэкапа.

SignatureDoesNotMatch при velero backup logs

Загрузка артефактов идёт по временным подписанным URL. У части S3-совместимых хранилищ возможны отклонения от API AWS. Проверьте версию подписи (Signature V4), тип учётной записи (Troubleshooting (v1.17)).

Бэкап завис в фазе InProgress после сбоя

Прерванные бэкапы Velero не продолжает. Бэкап в InProgress без данных в хранилище можно удалить (Troubleshooting (v1.17)):

Удаление записи Backup в Kubernetes

kubectl delete backup <имя> -n velero

Восстановление Service типа LoadBalancer

После restore у Service новый UID → у облачного балансировщика может смениться имя. Обновите DNS CNAME или используйте spec.loadBalancerIP, если провайдер поддерживает (Troubleshooting (v1.17), документация Kubernetes).

Admission webhooks блокируют создание ресурсов при restore

Webhook может отклонить или изменить объект. Варианты: временно отключить webhook, использовать restore item action plugin (Troubleshooting (v1.17)).

Kopia: конфликт владельца репозитория (maintenance must be run by designated user)

При ручной работе с репозиторием Kopia нужно соблюдать пользователя/хост по умолчанию для репозитория Velero; при конфликте — выставить владельца maintenance через CLI Kopia (Troubleshooting (v1.17)).

Ошибки при восстановлении в форме

  • PV, занятые работающими подами, не восстанавливаются.
  • Конфликт имён: политика Обновить или удаление конфликтующего ресурса до нового Restore.

Проверка состояния

Список BackupStorageLocation

kubectl get backupstoragelocation -n velero

Список BackupRepository

kubectl get backuprepository -n velero

События в неймспейсе velero

kubectl get events -n velero --sort-by='.lastTimestamp' | tail -20

Учётные данные для BackupStorageLocation и связанных секретов — шаги в Troubleshooting (v1.17).