# 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 ``` ## Расписание бэкапов ```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)