Terug naar overzicht

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:

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