Velero
Das Addon Velero installiert das Werkzeug für Backup und Wiederherstellung von Kubernetes-Ressourcen und persistenten Volumes. Es sichert die Resilienz des Clusters bei Datenverlust oder bei einer Migration zwischen Umgebungen.
In der Konsole
- Wählen Sie bei der Erstellung im Schritt Addons Velero aus (standardmäßig deaktiviert).
- Auf einem bestehenden Cluster: Edit > Extensions & Addons, Velero aktivieren, dann Save.
Die Detailseite des Clusters zeigt Velero im Abschnitt Extensions an, wenn es aktiv ist.
Velero wird im Cluster mit dem bereits installierten AWS-Plugin (velero-plugin-for-aws, für S3-Speicher) installiert. Standardmäßig ist kein Backup-Speicherort konfiguriert.
Den Backup-Speicher konfigurieren
Velero benötigt für seine Backups einen Objektspeicher-Speicherort, zum Beispiel einen Hikube-S3-Bucket. Dieser Speicherort wird im Feld Helm Configuration (YAML) — optional deklariert, das erscheint, sobald das Addon ausgewählt ist. Der Wert wird unter dem Schlüssel velero an das Helm-Chart von Velero übergeben.
velero:
configuration:
backupStorageLocation:
- name: default
provider: aws
bucket: velero-backups
config:
region: us-east-1
s3ForcePathStyle: "true"
s3Url: https://<s3-endpoint>
credentials:
secretContents:
cloud: |
[default]
aws_access_key_id=<access-key>
aws_secret_access_key=<secret-key>
schedules:
daily:
schedule: "0 2 * * *"
template:
ttl: 240h
Die verfügbaren Optionen sind im Helm-Chart von Velero beschrieben.
Die im Override eingegebenen Zugriffsschlüssel werden in der Konfiguration des Clusters gespeichert. Verwenden Sie einen eigenen Bucket-Benutzer für Velero, der auf den Backup-Bucket beschränkt ist.
Nutzung im Cluster
# Backup-Speicherorte und ihr Zustand
kubectl get backupstoragelocations -A
# Backups und Wiederherstellungen
kubectl get backups -A
kubectl get restores -A
Mit der CLI velero (auf die kubeconfig des Clusters konfiguriert). Geben Sie ihr zuerst den Namespace an, in dem das Addon installiert ist:
velero client config set namespace=$(kubectl get deploy -A -l app.kubernetes.io/name=velero -o jsonpath='{.items[0].metadata.namespace}')
velero backup create my-backup --include-namespaces production
velero backup describe my-backup
velero restore create --from-backup my-backup
Best Practices
- Planen Sie wiederkehrende Backups (
schedules) mit einer passenden Aufbewahrungsdauer (ttl). - Testen Sie regelmäßig eine vollständige Wiederherstellung auf einem Testcluster.
- Speichern Sie die Backups in einem Bucket, der von Ihren Anwendungsdaten getrennt ist.