Velero Handbuch
Es kann vorkommen, dass Ihnen in Ihrem Kubernetes-Cluster ein Fehler unterläuft, den Sie am liebsten so schnell wie möglich rückgängig machen würden. Sogar schneller, als den gesamten Cluster neu zu verteilen. Mit velero (https://velero.io/) ist dies möglich.
Velero ist ein Open-Source-Tool, das von VMware gesponsert wird, um Kubernetes-Cluster sicher zu sichern, zu migrieren und wiederherzustellen. Das Tool läuft als Serverprozess (Deployment) in Ihrem Cluster. Zusätzlich haben Sie auf Ihrem Desktop einen Klienten, mit dem Sie den Dienst steuern können. Mit diesem Client können Sie Backups erstellen, wiederherstellen, planen und löschen.
In diesem Leitfaden werden wir die Schritte zur Einrichtung in Kombination mit dem S3-Objektspeicher durchgehen. In diesem Leitfaden verwenden wir eine Linux-Workstation. Für Windows oder macOS müssen Sie einige der Schritte anpassen.
Bedingungen:
- Ein funktionierender Kubernetes-Cluster in Previder PaaS+
- kubectl cli Werkzeug für Ihren Cluster konfiguriert (https://docs.jelastic.com/kube...)
- Ein S3-Bucket mit Anmeldeinformationen (Previder Object Storage oder andere S3-kompatible Speicher)
Schritt 1: Installieren Sie den velero-Client.
Finden Sie die richtige Version für Ihr Betriebssystem auf dieser Github-Seite: https://github.com/vmware-tanz...
laden Sie den veleroclient in Ihr /tmp-Verzeichnis herunter
❯ cd /tmp
❯ wget https://link_van_git
Entpacken Sie den Tarball
❯ tar -xvzf velero-v1.5.3-linux-amd64.tar.gz
In Ihrem /tmp-Verzeichnis haben Sie nun die velero-Binärdatei. Sie können bereits testen, ob es funktioniert
❯ ./velero-v1.5.3-linux-amd64/velero help
Wenn alles gut funktioniert, verschieben Sie die Binärdatei in Ihren PATH. Unter (Ubuntu) Linux tun Sie das, indem Sie es nach /usr/local/bin verschieben❯ sudo mv velero-v1.5.3-linux-amd64/velero /usr/local/bin/velero
Schritt 2 Konfigurieren Sie S3-Speicher
Erstellen Sie eine Konfigurationsdatei (credentials-velero) für den S3-Bucket in Ihrem Home-Ordner mit den Zugangsdaten für Ihren Bucket
[default]
aws_access_key_id =
aws_secret_access_key =
Schritt 3 Velero im Kubernetes Cluster installieren
Nun können Sie velero mit folgendem Befehl installieren. Achten Sie darauf, dass Sie beim bucket-Parameter den richtigen Bucket angeben und bei der s3 url die url Ihres Objektspeichers, in diesem Fall den von Previder.
❯ velero install \
--provider aws \
--plugins velero/velero-plugin-for-aws \
--bucket mijnvelerobucket \
--secret-file ./credentials-velero \
--use-volume-snapshots=false \
--wait \
--backup-location-config region=NL,s3ForcePathStyle="true",s3Url=https://object.previder.nl
Sobald die Installation abgeschlossen ist, können Sie sie über
❯ kubectl get deployments -l component=velero –namespace=velero
Sie erhalten dann die folgende Ausgabe
Schritt 4 Prüfung
Für diesen Test können Sie die Beispielanwendung verwenden, die in dem Tarball aus Schritt 1 enthalten ist. Sie können natürlich auch jede andere Anwendung verwenden.
❯ kubectl apply -f examples/nginx-app/base.yaml
namespace/nginx-example created
deployment.apps/nginx-deployment created
Sichern Sie nun diese nginx-Anwendung mit folgendem Befehl
❯ velero backup create nginx-backup --selector app=nginx
Wir können in der Zwischenzeit überprüfen, ob alles gut gelaufen ist:
❯ velero backup describe nginx-backup
Als Nächstes wird der gesamte Namespace, in dem die nginx-Testanwendung läuft, verworfen.
❯ kubectl delete namespace nginx-example
Und prüfen, ob alles weg ist
❯ kubectl get deployments --namespace=nginx-example
❯ kubectl get services --namespace=nginx-example
❯ kubectl get namespace/nginx-example
Wiederherstellung der nginx-Anwendung
❯ velero restore create --from-backup nginx-backup
Prüfen Sie, ob der Namespace und die Dienste wieder verfügbar sind:
❯ kubectl get namespace/nginx-example
❯ kubectl get services --namespace=nginx-example
Andere Tipps
Anstatt ein Backup von Hand zu erstellen, können Sie es mit cron planen. Als Beispiel für die Sicherung unserer nginx-Demo-Anwendung jede Nacht um 1 Uhr:
❯ velero schedule create nginx-daily --schedule="0 1 * * *" --selector app=nginx
Sie können die Sicherung mit
❯ velero backup delete nginx-backup
So entfernen Sie alles aus diesem Test aus dem Cluster
❯ kubectl delete namespace/velero clusterrolebinding/velero
❯ kubectl delete crds -l component=velero
❯ kubectl delete -f examples/nginx-app/base.yaml