Sichern und Wiederherstellen von Clusterarbeitslasten

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.

Velero einrichten

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:

  • Vorher- und Nachher-Hooks für das Sichern und Wiederherstellen, um benutzerdefinierte Prozesse vor oder nach Sicherungs- und Wiederherstellungsereignissen auszuführen.
  • Ausschließen von Aspekten des Arbeitslast- oder Clusterstatus, die für die Sicherung/Wiederherstellung nicht geeignet sind.

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.

Installieren der Velero-CLI

Vorsicht

Wenn 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:

  1. Öffnen Sie die Download-Seite von Tanzu Kubernetes Grid und melden Sie sich mit Ihren Anmeldedaten für VMware Customer Connect an.
  2. Klicken Sie unter Produkt-Downloads auf Zu den Downloads.
  3. Scrollen Sie zu den Velero-Einträgen und laden Sie die .gz-Datei der Velero-CLI für das Betriebssystem Ihrer Workstation herunter. Der Dateiname beginnt mit velero-linux-, velero-mac- oder velero-windows64-.
  4. Verwenden Sie den Befehl gunzip oder das Extraktionstool Ihrer Wahl, um die Binärdatei zu entpacken:

    gzip -d <RELEASE-TARBALL-NAME>.gz
    
  5. Ä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.

    macOS und Linux
    1. Verschieben Sie die Binärdatei in den Ordner /usr/local/bin und benennen Sie sie in velero um.
    2. Machen Sie die Datei ausführbar:
    chmod +x /usr/local/bin/velero
    
    Windows
    1. Erstellen Sie einen neuen Ordner Program Files\velero und kopieren Sie die Binärdatei in diesen Ordner.
    2. Ändern Sie den Namen der Binärdatei in velero.exe.
    3. Klicken Sie mit der rechten Maustaste auf den Ordner 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.
    4. Verwenden Sie die Windows-Suche, um nach env zu suchen.
    5. Wählen Sie Systemumgebungsvariablen bearbeiten (Edit the system environment variables) aus und klicken Sie auf die Schaltfläche Umgebungsvariablen (Environment Variables).
    6. Wählen Sie die Zeile Path unter Systemvariablen (System variables) aus und klicken Sie auf Bearbeiten (Edit).
    7. Klicken Sie auf Neu (New), um eine neue Zeile hinzuzufügen, und geben Sie den Pfad zu der velero-Binärdatei ein.

Upgrade von Velero

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.

  1. Befolgen Sie die Schritte unter Installieren der Velero-CLI, um Velero v1.10.3 zu installieren.
  2. Aktualisieren Sie die CRD-Definitionen mit der Binärdatei Velero v1.10.

    velero install --crds-only --dry-run -o yaml | kubectl apply -f -
    
  3. 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 -
    
  4. (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.

Einrichten eines Speicheranbieters

Um Tanzu Kubernetes Grid-Arbeitslastclusterinhalte zu sichern, benötigen Sie Speicherorte für:

  • Sicherungen des Clusterobjektspeichers für Kubernetes-Metadaten in Clustern
  • Volume-Snapshots für von Clustern verwendete Daten

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

  • einen Online-Cloudspeicheranbieter oder
  • um einen lokalen Objektspeicherdienst (z. B. MinIO) für Proxy- oder Air-Gap-Umgebungen handeln.

VMware empfiehlt, jedem Cluster einen eindeutigen Speicher-Bucket zuzuweisen.

So richten Sie MinIO ein:

  1. 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
    
  2. 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
    

Speicher für vSphere

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.

Speicher für und auf AWS

Um Speicher für Velero unter AWS einzurichten, befolgen Sie die Verfahren im Repository für Velero-Plug-Ins für AWS:

  1. Erstellen Sie einen S3-Bucket.

  2. Legen Sie Berechtigungen für Velero fest.

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.

Speicher für und in Azure

Um Speicher für Velero unter Azure einzurichten, befolgen Sie die Verfahren im Repository für Velero-Plug-Ins für Azure:

  1. Erstellen eines Azure-Speicherkontos und eines Blob-Containers

  2. Abrufen der Ressourcengruppe, die Ihre VMs und Festplatten enthält

  3. Festlegen von Berechtigungen für Velero

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.

Bereitstellen des Velero-Servers in Arbeitslastclustern

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.

Hinweis

Wenn Velero bereits auf dem Cluster installiert ist, befolgen Sie die Schritte unter Upgrade von Velero.

Velero-Installationsoptionen

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
  • (Optional) --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.

Installieren von Velero in Clustern unter vSphere

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.

  1. 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.

  2. 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.

  3. 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:

    1. Laden Sie das Velero-Plug-In für vSphere v1.5.1-Image herunter.
    2. 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
      
    3. (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"
      
    4. 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
      
    5. 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
      
    6. Wenden Sie die ConfigMap an:

      kubectl -n velero apply -f velero-plugin.conf
      
    7. 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.

    8. 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:

      • Konfiguration > Festplattenwechsel-Verfolgung umschalten
      • Bereitstellung > Lesezugriff auf Festplatte zulassen
      • Bereitstellung > Download virtueller Maschinen zulassen
      • Snapshot-Verwaltung > Snapshot erstellen
      • Snapshot-Verwaltung > Snapshot entfernen

Installieren von Velero auf Clustern unter AWS

  1. Um Velero auf Arbeitslastclustern unter AWS zu installieren, führen Sie die Prozedur Velero installieren und starten im Repository der Velero-Plug-Ins für AWS aus.
  2. Führen Sie velero install mit den oben unter den Velero-Installationsoptionen aufgeführten Optionen aus.

Installieren von Velero auf Clustern unter Azure

  1. Um Velero auf Arbeitslastclustern unter Azure zu installieren, führen Sie die Prozedur Velero installieren und starten im Repository der Velero-Plug-Ins für Azure aus.
  2. Führen Sie velero install mit den oben unter den Velero-Installationsoptionen aufgeführten Optionen aus.

Sichern und Wiederherstellen von Arbeitslasten

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.

Sichern von Arbeitslasten

So sichern Sie den Inhalt eines Arbeitslastclusters:

  1. 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.

  2. Sichern Sie die Clusterinhalte:

    velero backup create your_backup_name
    
  3. 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.

Hinweis

Das Sichern und Wiederherstellen von Windows-Arbeitslastclustern und Arbeitslastclustern mit mehreren Betriebssystemen wird nicht unterstützt.

Arbeitslasten wiederherstellen

So stellen Sie den Inhalt eines Arbeitslastclusters aus der Sicherung wieder her:

  1. Erstellen Sie einen neuen Cluster. Sie können eine Clustersicherung nicht in einem vorhandenen Cluster wiederherstellen.

  2. 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.

  3. Stellen Sie den Clusterinhalt wieder her:

    velero backup get
    velero restore create your_restore_name --from-backup your_backup_name
    
check-circle-line exclamation-circle-line close-line
Scroll to top icon