In diesem Thema wird erläutert, wie Sie die Arbeitslasten und dynamischen Speichervolumes sichern und wiederherstellen, die auf Tanzu Kubernetes Grid(TKG)-Arbeitslastclustern für TKG mit einem eigenständigen Verwaltungscluster gehostet werden.
Informationen zum Sichern und Wiederherstellen der Clusterinfrastruktur, des eigenständigen Verwaltungsclusters und der Arbeitslastclusterobjekte selbst finden Sie unter Back Up and Restore Management and Workload Cluster Infrastructure.
Informationen zum Sichern und Wiederherstellen von vSphere with Tanzu-Clustern, einschließlich Supervisor-Clustern und den von ihnen erstellten Arbeitslastclustern, finden Sie in der Dokumentation zu VMware vSphere 8.0 unter Sichern und Wiederherstellen von vSphere with Tanzu.
Sie können Velero, ein Open Source Community-Standardtool, verwenden, um Infrastruktur und Arbeitslasten eigenständiger TKG-Verwaltungscluster zu sichern und wiederherzustellen.
Velero unterstützt eine Vielzahl von Speicheranbietern für das Speichern der Sicherungen. Velero unterstützt auch:
Ein Tanzu Kubernetes Grid-Abonnement bietet Unterstützung für die von VMware getestete, kompatible Velero-Verteilung, die über die Download-Seite für Tanzu Kubernetes Grid verfügbar ist.
Zum Sichern und Wiederherstellen von TKG-Clustern benötigen Sie Folgendes:
Nach Erfüllung der oben genannten Voraussetzungen können Sie auch mithilfe von Velero Arbeitslasten zwischen Clustern migrieren. Anweisungen finden Sie unter Clustermigration und Ressourcenfilterung in der Velero-Dokumentation.
VorsichtWenn Sie die mit Vorgängerversionen von TKG verteilte Velero-CLI v1.9.x oder früher bereits installiert haben, müssen Sie ein Upgrade auf v1.10.3 durchführen. Ältere Velero-Versionen funktionieren nicht mit den in v1.10 und höher verwendeten CRDs. Weitere Informationen finden Sie unter Upgrade von Velero unten.
Gehen Sie zum Installieren der Velero-CLI v1.10.3 wie folgt vor:
.gz
-Datei der Velero-CLI für das Betriebssystem Ihrer Workstation herunter. Der Dateiname beginnt mit velero-linux-
, velero-mac-
oder velero-windows64-
.Verwenden Sie den Befehl gunzip
oder das Extraktionstool Ihrer Wahl, um die Binärdatei zu entpacken:
gzip -d <RELEASE-TARBALL-NAME>.gz
Ändern Sie den Namen der CLI-Binärdatei für Ihre Plattform in velero
, achten Sie darauf, dass es sich um eine ausführbare Datei handelt, und fügen Sie sie zu Ihrem PATH
hinzu.
/usr/local/bin
und benennen Sie sie in velero
um.chmod +x /usr/local/bin/velero
Program Files\velero
und kopieren Sie die Binärdatei in diesen Ordner.velero.exe
.velero
, wählen Sie Eigenschaften (Properties) > Sicherheit (Security) aus und stellen Sie sicher, dass Ihr Benutzerkonto über die Berechtigung Vollständige Kontrolle (Full Control) verfügt.env
zu suchen.Path
unter Systemvariablen (System variables) aus und klicken Sie auf Bearbeiten (Edit).velero
-Binärdatei ein.Velero v1.10.3 verwendet andere CRDs als v1.9.x. Außerdem wurde in Velero v1.10 Kopia mit Restic als Uploader übernommen, was zu einigen Änderungen bei der Benennung von Komponenten und Befehlen sowie bei der Funktionsweise von Velero geführt hat. Weitere Informationen zu den Breaking Changes zwischen v1.9.x und v1.10 finden Sie unter Breaking Changes im Velero v1.10 Änderungsprotokoll. Wenn Sie Velero v1.9.x mit einer früheren Version von TKG installiert haben, müssen Sie ein Upgrade von Velero durchführen.
Aktualisieren Sie die CRD-Definitionen mit der Binärdatei Velero v1.10.
velero install --crds-only --dry-run -o yaml | kubectl apply -f -
Aktualisieren Sie die Konfiguration der Velero-Bereitstellung und des Daemon-Sets, um die Umbenennung der Komponenten in Velero v1.10 zu berücksichtigen.
Im folgenden Befehl kann uploader_type
entweder restic
oder kopia
sein.
kubectl get deploy -n velero -ojson \
| sed "s#\"image\"\: \"velero\/velero\:v[0-9]*.[0-9]*.[0-9]\"#\"image\"\: \"velero\/velero\:v1.10.0\"#g" \
| sed "s#\"server\",#\"server\",\"--uploader-type=$uploader_type\",#g" \
| sed "s#default-volumes-to-restic#default-volumes-to-fs-backup#g" \
| sed "s#default-restic-prune-frequency#default-repo-maintain-frequency#g" \
| sed "s#restic-timeout#fs-backup-timeout#g" \
| kubectl apply -f -
(Optional) Wenn Sie das restic
-Daemon-Set verwenden, benennen Sie die entsprechenden Komponenten um.
echo $(kubectl get ds -n velero restic -ojson) \
| sed "s#\"image\"\: \"velero\/velero\:v[0-9]*.[0-9]*.[0-9]\"#\"image\"\: \"velero\/velero\:v1.10.0\"#g" \
| sed "s#\"name\"\: \"restic\"#\"name\"\: \"node-agent\"#g" \
| sed "s#\[ \"restic\",#\[ \"node-agent\",#g" \
| kubectl apply -f -
kubectl delete ds -n velero restic --force --grace-period 0
Weitere Informationen finden Sie unter Upgrade auf Velero 1.10 in der Velero-Dokumentation.
Um Tanzu Kubernetes Grid-Arbeitslastclusterinhalte zu sichern, benötigen Sie Speicherorte für:
Weitere Informationen finden Sie in der Velero-Dokumentation unter Sichern von Speicherorten und Volume-Snapshot-Speicherorten in der Velero-Dokumentation. Velero unterstützt eine Vielzahl von Speicheranbietern. Hierbei kann es sich um
VMware empfiehlt, jedem Cluster einen eindeutigen Speicher-Bucket zuzuweisen.
So richten Sie MinIO ein:
Führen Sie das Container-Image minio
mit MinIO-Anmeldedaten und einem Speicherort aus, z. B.:
$ docker run -d --name minio --rm -p 9000:9000 -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio123" -e "MINIO_DEFAULT_BUCKETS=mgmt" gcr.io/velero-gcp/bitnami/minio:2021.6.17-debian-10-r7
Speichern Sie die Anmeldedaten in einer lokalen Datei und übergeben Sie sie an die Option --secret-file
von velero install
, z. B.:
[default]
aws_access_key_id=minio
aws_secret_access_key=minio123
Unter vSphere werden Sicherungen des Clusterobjektspeichers und von Volume-Snapshots an demselben Speicherort gespeichert. Dieser Speicherort muss ein S3-kompatibler externer Speicher auf Amazon Web Services (AWS) oder ein S3-Anbieter wie MinIO sein.
Informationen zum Einrichten von Speicher für Velero unter vSphere finden Sie unter Velero-Plug-In für vSphere in Vanilla Kubernetes Cluster für das v1.5.1-Plug-In.
Um Speicher für Velero unter AWS einzurichten, befolgen Sie die Verfahren im Repository für Velero-Plug-Ins für AWS:
Richten Sie nach Bedarf S3-Speicher für jedes Plug-In ein. Das Objektspeicher-Plug-In speichert Clusterobjektsicherungen und ruft sie ab, und der Volume-Snapshotter speichert Datenvolumes und ruft sie ab.
Um Speicher für Velero unter Azure einzurichten, befolgen Sie die Verfahren im Repository für Velero-Plug-Ins für Azure:
Erstellen eines Azure-Speicherkontos und eines Blob-Containers
Abrufen der Ressourcengruppe, die Ihre VMs und Festplatten enthält
Richten Sie nach Bedarf S3-Speicher für jedes Plug-In ein. Das Objektspeicher-Plug-In speichert Clusterobjektsicherungen und ruft sie ab, und der Volume-Snapshotter speichert Datenvolumes und ruft sie ab.
Um den Velero-Server in einem Arbeitslastcluster bereitzustellen, führen Sie den Befehl velero install
aus. Dieser Befehl erstellt einen Namespace mit dem Namen velero
im Cluster und platziert eine Bereitstellung mit dem Namen velero
darin.
HinweisWenn Velero bereits auf dem Cluster installiert ist, befolgen Sie die Schritte unter Upgrade von Velero.
Um Velero zu installieren, führen Sie velero install
mit den folgenden Optionen aus:
--provider $PROVIDER
: Beispiel: aws
--plugins projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.6.2_vmware.1
--bucket $BUCKET
: Der Name Ihres S3-Buckets--backup-location-config region=$REGION
: Die AWS-Region, in der sich der Bucket befindet--snapshot-location-config region=$REGION
: Die AWS-Region, in der sich der Bucket befindet--kubeconfig
zum Installieren des Velero-Servers in einem anderen Cluster als dem aktuellen Standardcluster.(Optional) --secret-file ./VELERO-CREDS
Eine Möglichkeit, Velero den Zugriff auf einen S3-Bucket zu ermöglichen, besteht darin, in dieser Option eine lokale VELERO-CREDS
-Datei zu übergeben, die wie folgt aussieht:
[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
Weitere Optionen finden Sie unter Installieren und Starten von Velero.
Durch die Ausführung des Befehls velero install
wird ein Namespace mit der Bezeichnung velero
im Cluster erstellt sowie eine Bereitstellung mit der Bezeichnung velero
darin platziert.
Wie Sie den Befehl velero install
ausführen und Velero ansonsten in einem Cluster einrichten, hängt von Ihrer Infrastruktur und Ihrem Speicheranbieter ab, wie in den folgenden Abschnitten beschrieben.
Mit diesem Verfahren wird Velero auf Arbeitslastclustern installiert, die von einem eigenständigen Verwaltungscluster auf vSphere verwaltet werden.
Informationen zum Bereitstellen von Velero in einem vSphere with Tanzu Supervisor-Cluster, der als Tanzu Kubernetes Grid-Verwaltungscluster dient, finden Sie unter Sichern und Wiederherstellen von vSphere with Tanzu.
Installieren Sie den Velero-Server im aktuellen Standardcluster in Ihrer kubeconfig
, indem Sie velero install
mit den Optionen ausführen, die oben unter Velero-Installationsoptionen aufgeführt sind.
Wenn Sie beispielsweise MinIO als Objektspeicher verwenden möchten, beachten Sie die Anweisungen für die Einrichtung des MinIO-Servers in der Velero-Dokumentation:
velero install --provider aws --plugins "projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.6.2_vmware.1" --bucket velero --secret-file ./credentials-velero --backup-location-config "region=minio,s3ForcePathStyle=true,s3Url=minio_server_url" --snapshot-location-config region="default"
Weitere Informationen zum Vanilla Kubernetes-Cluster im Velero-Plug-In für vSphere Repository v1.5.1 finden Sie im Abschnitt Installieren.
Durch die Installation des Velero-Servers im Cluster wird ein Namespace mit dem Namen velero
erstellt und eine Bereitstellung mit dem Namen velero
darin platziert.
Wenn Sie keine Anmeldedatendatei an --secret-file
mit velero install
(siehe oben) übergeben, konfigurieren Sie oben den Zugriff auf Velero über Ihren S3-Sicherungsbucket. Hängen Sie beispielsweise unter AWS eine Richtlinie an die IAM-Rolle nodes.tkg.cloud.vmware.com
an, die gehostete Anwendungen wie Velero steuert, um den Zugriff auf den S3-Bucket zu ermöglichen.
Fügen Sie das Velero-Plug-In für vSphere hinzu, mit dem Velero in Ihrem S3-Bucket neben Clusterobjekten auch CSI-Volume-Snapshots für Arbeitslastdaten speichern kann:
Rufen Sie die von Ihrem CSI-Treiber verwendeten vSphere-Anmeldedaten ab und entschlüsseln Sie sie in einer geheimen Konfigurationsdatei csi-vsphere.conf
:
kubectl -n vmware-system-csi get secret vsphere-config-secret -o jsonpath='{.data.csi-vsphere\.conf}'| base64 -d > csi-vsphere.conf
(Optional) Überprüfen und bestätigen Sie die Werte für IP-Adresse, Benutzername und Kennwort von vCenter in der geheimen Konfigurationsdatei csi-vsphere.conf
, was wie folgt aussieht:
cluster-id = "CLUSTER-ID"
[VirtualCenter "VCENTER-IP"]
user = "USERNAME"
password = "PASSWORD"
port = "443"
Verwenden Sie die Konfigurationsdatei, um den geheimen Schlüssel velero-vsphere-config-secret
im Namespace velero
zu erstellen:
kubectl -n velero create secret generic velero-vsphere-config-secret --from-file=csi-vsphere.conf
Erstellen Sie eine ConfigMap
-Datei velero-plugin.conf
für das Velero-Plug-In, das auf den geheimen Schlüssel verweist:
apiVersion: v1
kind: ConfigMap
metadata:
name: velero-vsphere-plugin-config
data:
cluster_flavor: VANILLA
vsphere_secret_name: velero-vsphere-config-secret
vsphere_secret_namespace: velero
Wenden Sie die ConfigMap
an:
kubectl -n velero apply -f velero-plugin.conf
Hinzufügen des Plug-Ins:
velero plugin add PLUGIN-IMAGE
Wobei PLUGIN-IMAGE
den Registrierungspfad zum Container-Image darstellt, das im Velero-Plug-In für vSphere Repo v1.5.1 aufgeführt ist, z. B. http://projects.registry.vmware.com/tkg/velero/velero-plugin-for-vsphere:v1.5.1_vmware.1
.
Aktivieren Sie das Plug-In, indem Sie der Rolle, die Sie für das Tanzu Kubernetes Grid-Konto erstellt haben, die folgenden Berechtigungen für die VirtualMachine hinzufügen, sofern Sie diese beim Erstellen des Kontos nicht bereits angegeben haben:
velero install
mit den oben unter den Velero-Installationsoptionen aufgeführten Optionen aus.velero install
mit den oben unter den Velero-Installationsoptionen aufgeführten Optionen aus.Mit Velero können Sie die aktuellen Arbeitslasten und den Zustand dauerhafter Datenträger eines Arbeitslastclusters für vollständige Cluster oder bestimmte Namespaces sichern und wiederherstellen.
So sichern Sie den Inhalt eines Arbeitslastclusters:
Befolgen Sie die Anweisungen unter Bereitstellen des Velero-Servers in Clustern für Ihre Infrastruktur (siehe oben), um einen Velero-Server im Arbeitslastcluster zusammen mit dem Velero-Plug-In für vSphere bereitzustellen, falls erforderlich.
Sichern Sie die Clusterinhalte:
velero backup create your_backup_name
Wenn velero backup
den Fehler transport is closing
zurückgibt, versuchen Sie es nach dem Erhöhen des Arbeitsspeichergrenzwerts erneut, wie in der Velero-Dokumentation unter Aktualisieren von Ressourcenanforderungen und Grenzwerten nach der Installation beschrieben.
HinweisDas Sichern und Wiederherstellen von Windows-Arbeitslastclustern und Arbeitslastclustern mit mehreren Betriebssystemen wird nicht unterstützt.
So stellen Sie den Inhalt eines Arbeitslastclusters aus der Sicherung wieder her:
Erstellen Sie einen neuen Cluster. Sie können eine Clustersicherung nicht in einem vorhandenen Cluster wiederherstellen.
Befolgen Sie die Anweisungen unter Bereitstellen des Velero-Servers in Clustern für Ihre Infrastruktur (siehe oben), um einen Velero-Server im neuen Cluster zusammen mit dem Velero-Plug-In für vSphere bereitzustellen, falls erforderlich.
Stellen Sie den Clusterinhalt wieder her:
velero backup get
velero restore create your_restore_name --from-backup your_backup_name