Files
kubernetes/minio-velero
2025-08-31 00:24:21 +02:00
..
2025-08-31 00:24:21 +02:00
2025-08-31 00:24:21 +02:00
2025-08-31 00:24:21 +02:00
2025-08-31 00:24:21 +02:00
2025-08-31 00:24:21 +02:00
2025-08-31 00:24:21 +02:00
2025-08-31 00:24:21 +02:00
2025-08-31 00:24:21 +02:00
2025-08-31 00:24:21 +02:00
2025-08-31 00:24:21 +02:00
2025-08-31 00:24:21 +02:00

Velero + MinIO (c2et.net)

Este paquete contiene:

  • namespace.yaml
  • Secrets de credenciales (cloud-credentials.yaml, minio-root.yaml)
  • Despliegues de MinIO (minio-a, minio-b) con sus PVC y Service
  • Jobs de inicialización (minio-a-init, minio-b-init)
  • BackupStorageLocation (BSL) por YAML: bsl-incluster-a y bsl-incluster-b
  • Ejemplo de Schedule (nightly a las 02:00 y 02:30)
  • values-velero.yaml: despliegue de Velero sin BSL/Secret (GitOps)
  • ServiceMonitor (si usas Prometheus Operator)
  • Dashboard de Grafana (JSON)

Flujo recomendado (GitOps)

# 1) Instalar Velero por Helm sin BSL ni secrets
helm repo add vmware-tanzu https://vmware-tanzu.github.io/helm-charts
helm upgrade --install velero vmware-tanzu/velero -n minio-velero -f values-velero.yaml

# 2) Crear namespace y desplegar MinIO con sus Secrets, PVCs, Services y Jobs de init
kubectl apply -k ./

# 3) (Opcional) Aplicar Schedules
kubectl apply -f schedules/schedules.yaml

Cliente Velero

Para interactuar con Velero necesitas el binario en tu máquina de administración.

# Linux AMD64
wget https://github.com/vmware-tanzu/velero/releases/download/v1.16.2/velero-v1.16.2-linux-amd64.tar.gz
tar -xvf velero-v1.16.2-linux-amd64.tar.gz
sudo mv velero-v1.16.2-linux-amd64/velero /usr/local/bin/

Verifica la instalación:

velero version

Hacer un backup manual

Ejemplo: respaldar el namespace wireguard.

velero backup create wireguard-backup --include-namespaces wireguard --wait
velero backup describe wireguard-backup --details

Puedes excluir recursos innecesarios (ej. CRDs de KubeVirt):

velero backup create smoke --include-namespaces default --exclude-resources uploadtokenrequests.upload.cdi.kubevirt.io --wait

Programar backups (Schedules)

Ejemplo de programación diaria a las 03:15, TTL de 30 días:

velero schedule create daily-wireguard   --schedule "15 3 * * *"   --include-namespaces wireguard   --ttl 720h   --default-volumes-to-fs-backup

Los schedules también se pueden definir por YAML en schedules/schedules.yaml.

Restaurar un backup

Restaurar al mismo namespace (desastre real)

# 1) Borrar el namespace roto
kubectl delete ns wireguard

# 2) Restaurar desde el backup
velero restore create wireguard-restore --from-backup wireguard-backup --wait
velero restore describe wireguard-restore --details

Restaurar a otro namespace (ensayo)

kubectl create ns wireguard-restore
velero restore create wireguard-restore-test   --from-backup wireguard-backup   --namespace-mappings wireguard:wireguard-restore   --wait

Notas

  • MinIO requiere s3ForcePathStyle=true.
  • Si usas CA propia, añade spec.config.caCert en los BSL.
  • ServiceMonitor requiere Prometheus Operator; ajusta metadata.labels.release al valor que use tu Prometheus.
  • Importa el dashboard JSON en Grafana (datasource prometheus).