Velero — это инструмент с открытым исходным кодом для резервного копирования, восстановления и миграции ресурсов Kubernetes и постоянных томов (PVC).
Основные возможности:
-
Бэкап и восстановление — сохраняет состояние кластера (объекты k8s) и данные томов в объектное хранилище.
-
Миграция — перенос приложений между кластерами или проектами.
-
Репликация — синхронизация ресурсов между окружениями.
-
Гибкость — поддержка расписаний, фильтров по namespace/labels, retention-политик.
-
Работа с томами — через Restic/Kopia (файловый бэкап PVC) или интеграцию с CSI-снапшотами.
Зачем нужен:
Velero позволяет защитить приложения в Kubernetes от сбоев, оперативно восстанавливать их после инцидентов, а также упрощает переезд между кластерами или облачными провайдерами.
Предварительные настройки
Предварительные требования
| Компонент | Требования |
| Kubernetes | Версия 1.20+ |
| kubectl | Установлен и настроен на целевой кластер |
| Объектное хранилище | S3‑совместимое хранилище • Бакет уже создан • Access Key / Secret Key выданы |
| Учётные данные | Ключи доступа к хранилищу в формате credentials-velero (см. ниже) |
Установка клиента Velero
Клиент необходим для запуска команд velero install, создания бэкапов и восстановления.
# Скачать архив последней стабильной версии
wget https://github.com/vmware-tanzu/velero/releases/download/v1.17.2/velero-v1.17.2-linux-amd64.tar.gz
# Распаковать
tar -xzf velero-v1.17.2-linux-amd64.tar.gz
# Перейти в распакованную папку (имя зависит от версии)
cd velero-v1.17.2-linux-amd64.tar.gz
# Переместить бинарный файл в директорию /usr/local/bin
sudo mv velero /usr/local/bin/
Проверка установки
Выполнить команду:
velero version --client-only
Ожидаемый вывод:
Client:
Version: v1.17.2
Git commit: 7013a4097f17a97a0201c0ad3c9dd3f810d32bf6
Установка серверной части Velero в кластер
- Создать файл
credentials-velero.iniс ключами доступа к бакету:
[default] aws_access_key_id = <ACCESS_KEY> aws_secret_access_key = <SECRET_KEY> -
Запустить установку
velero install \ --provider aws \ --bucket <имя бакета> \ --secret-file ./credentials-velero.ini \ --plugins velero/velero-plugin-for-aws:v1.9.0 \ --use-node-agent \ --default-volumes-to-fs-backup \ --backup-location-config \ region=Ru,s3ForcePathStyle="true",s3Url=https://s3.inferit.cloud
Проверка установки
- Выполнить команду:
kubectl get pods -n velero
Поды velero-xxx и node-agent-xxx должны быть в статусе “Running”
2. Запустить резервное копирование данных с группы узлов кластера:
velero backup create test-backup
3. Проверить статус создания резервной копии. Статус в графе STATUS должен смениться на «Completed».
velero backup get
Ожидаемый результат:
NAME STATUS ERRORS WARNINGS CREATED EXPIRES STORAGE LOCATION SELECTOR
test-backup Completed 0 0 2026-02-12 10:29:14 +0000 UTC 29d default <none>
Восстановление данных из резервной копии
Убедитесь, что резервная копия данных доступна в кластере k8s:Выполнить восстановление данных из резервной копии:
velero restore create my-restore \
--exclude-namespaces velero \
--from-backup <имя бекапа>
3. Проверить статус восстановления из резервной копии. Статус в графе STATUS должен смениться на «Completed».
velero get restore
Ожидаемый результат:
NAME BACKUP STATUS STARTED COMPLETED ERRORS WARNINGS CREATED SELECTOR
my-restore test-backup Completed 2026-02-12 11:30:12 +0000 UTC 2026-02-12 11:30:18 +0000 UTC 0 23 2026-02-12 11:30:12 +0000 UTC <none>