Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
131 lines
3.6 KiB
Markdown
131 lines
3.6 KiB
Markdown
# Velero
|
||
|
||
Резервное копирование и восстановление Kubernetes кластера и PVC. Сохраняет все ресурсы кластера (поды, сервисы, ConfigMap, PVC) и данные томов в S3/MinIO. Поддерживает расписание и TTL для автоматической очистки.
|
||
|
||
## Быстрый старт
|
||
|
||
```yaml
|
||
# group_vars/all/addons.yml
|
||
addon_velero: true
|
||
addon_minio: true # S3 backend для бэкапов
|
||
|
||
velero_schedule_enabled: true
|
||
velero_schedule_cron: "0 2 * * *" # ежедневно в 02:00
|
||
velero_schedule_ttl: "720h" # хранить 30 дней
|
||
```
|
||
|
||
Секреты в `vault.yml`:
|
||
```yaml
|
||
vault_velero_s3_access_key: "minioadmin" # = vault_minio_root_user
|
||
vault_velero_s3_secret_key: "changeme" # = vault_minio_root_password
|
||
```
|
||
|
||
```bash
|
||
make addon-velero
|
||
```
|
||
|
||
## Параметры
|
||
|
||
| Переменная | Умолч. | Описание |
|
||
|---|---|---|
|
||
| `velero_s3_bucket` | `velero` | Имя бакета MinIO |
|
||
| `velero_s3_url` | MinIO internal | S3 endpoint |
|
||
| `velero_schedule_enabled` | `true` | Автоматическое расписание |
|
||
| `velero_schedule_cron` | `0 2 * * *` | Cron расписание |
|
||
| `velero_schedule_ttl` | `720h` | TTL бэкапов |
|
||
|
||
## Velero CLI
|
||
|
||
```bash
|
||
# Установить CLI (на локальную машину)
|
||
brew install velero # macOS
|
||
# или скачать с https://github.com/vmware-tanzu/velero/releases
|
||
|
||
# Настроить kubeconfig
|
||
export KUBECONFIG=$(pwd)/kubeconfig
|
||
|
||
# Статус
|
||
velero version
|
||
velero get backups
|
||
velero get schedules
|
||
```
|
||
|
||
## Ручной бэкап
|
||
|
||
```bash
|
||
# Весь кластер
|
||
velero backup create my-backup
|
||
|
||
# Конкретный namespace
|
||
velero backup create my-app-backup --include-namespaces my-app
|
||
|
||
# С volume data
|
||
velero backup create full-backup --snapshot-volumes
|
||
|
||
# Статус бэкапа
|
||
velero backup describe my-backup
|
||
velero backup logs my-backup
|
||
```
|
||
|
||
## Восстановление
|
||
|
||
```bash
|
||
# Список бэкапов
|
||
velero get backups
|
||
|
||
# Восстановить всё
|
||
velero restore create --from-backup my-backup
|
||
|
||
# Восстановить конкретный namespace
|
||
velero restore create --from-backup my-backup \
|
||
--include-namespaces my-app
|
||
|
||
# Восстановить в другой namespace
|
||
velero restore create --from-backup my-backup \
|
||
--namespace-mappings old-namespace:new-namespace
|
||
|
||
# Статус восстановления
|
||
velero restore describe <restore-name>
|
||
```
|
||
|
||
## Расписание бэкапов
|
||
|
||
```bash
|
||
# Список расписаний
|
||
velero get schedules
|
||
|
||
# Запустить расписание вручную
|
||
velero backup create --from-schedule daily-backup
|
||
```
|
||
|
||
## Исключить ресурсы из бэкапа
|
||
|
||
```yaml
|
||
# Аннотация на namespace или ресурс:
|
||
metadata:
|
||
annotations:
|
||
velero.io/exclude-from-backup: "true"
|
||
```
|
||
|
||
## Внешний S3 (не MinIO)
|
||
|
||
```yaml
|
||
velero_s3_url: "https://s3.amazonaws.com"
|
||
velero_s3_bucket: "my-cluster-backups"
|
||
velero_s3_region: "us-east-1"
|
||
velero_s3_force_path_style: false
|
||
```
|
||
|
||
## Диагностика
|
||
|
||
```bash
|
||
kubectl get pods -n velero
|
||
kubectl logs -n velero deployment/velero -f
|
||
velero backup describe my-backup --details
|
||
```
|
||
## Официальные ресурсы
|
||
|
||
- Официальный сайт: [https://velero.io/](https://velero.io/)
|
||
- Официальная документация: [https://velero.io/docs/](https://velero.io/docs/)
|
||
- Версии Helm chart / ПО: [https://artifacthub.io/packages/helm/vmware-tanzu/velero](https://artifacthub.io/packages/helm/vmware-tanzu/velero)
|