Eine Reihe von Wiederherstellungen planen


Auf dieser Seite wird beschrieben, wie Sie den "Sicherung für GKE"-Wiederherstellungsplan erstellen, um Sicherungen in Google Kubernetes Engine (GKE) wiederherzustellen.

Wiederherstellungspläne sind vorkonfigurierte Wiederherstellungsszenarien für Sicherungen. Mit Wiederherstellungsplänen können Administratoren Berechtigungen zur Verwendung dieser Konfigurationen erteilt werden. Diese Nutzer können eine Sicherung schnell und unabhängig wiederherstellen, wenn ein Vorfall auftritt. Zum Beispiel können nichtflüchtige Daten durch ein Softwareupdate in einer bereitgestellten Anwendung beschädigt werden, wodurch der Anwendungs-Namespace in einen ungültigen Zustand versetzt wird, der eine Wiederherstellung erfordert.

Während der Wiederherstellung können Sie optional Transformationsregeln anwenden, die mit einer Reihe von Ressourcen übereinstimmen und den aktuellen Wert eines Attributs für diese Ressourcen durch einen neuen Wert ersetzen.

Hinweise

Planen Sie eine Reihe von Sicherungen.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen den Sicherung für GKE-Wiederherstellungsadministrator (roles/gkebackup.restoreAdmin) zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Verwalten eines Wiederherstellungsplans benötigen. Dies ist eine Teilmenge der IAM-Rolle „Sicherung für GKE-Administrator“ (roles/gkebackup.admin) in Ihrem Projekt. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Wiederherstellungsplan erstellen

Sie können einen Wiederherstellungsplan für Ihre Sicherungen mit der Google Cloud CLI oder der Google Cloud Console erstellen.

gcloud

Führen Sie den folgenden Befehl aus, um einen Wiederherstellungsplan zu erstellen:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=NAMESPACED_RESOURCE_RESTORE_MODE \
    --all-namespaces \
    --cluster-resource-conflict-policy=CLUSTER_RESOURCE_CONFLICT_POLICY \
    --cluster-resource-scope-selected-group-kinds=CLUSTER_RESOURCE_SCOPE \
    --volume-data-restore-policy=VOLUME_DATA_RESTORE_POLICY

Dabei gilt:

  • RESTORE_PLAN: der Name des Wiederherstellungsplans, den Sie erstellen möchten.
  • PROJECT_ID: die ID Ihres Google Cloud-Projekts.
  • LOCATION: die Computing-Region für die Ressource, z. B. us-central1. Siehe Informationen zu Ressourcenstandorten. Der Standort muss mit der Region übereinstimmen, in der sich der Zielcluster befindet.
  • BACKUP_PLAN: die Quelle der Sicherungen, die mit diesem Wiederherstellungsplan wiederhergestellt werden können.
    • projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME
  • CLUSTER: Name des Zielclusters, in dem Sie die Sicherung wiederherstellen möchten.

    • Regionale Cluster: projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
    • Zonale Cluster: projects/PROJECT_ID/locations/ZONE/clusters/CLUSTER_NAME
  • NAMESPACED_RESOURCE_RESTORE_MODE definiert, wie mit Wiederherstellungszeitkonflikten für Namespace-Ressourcen umgegangen wird. Namespace-Ressourcen werden immer in Gruppen wiederhergestellt, entweder nach Namespace oder nach ProtectedApplication. Verwenden Sie eine dieser Optionen:

    • delete-and-restore: Wenn der Zielcluster dieselbe Gruppe von Ressourcen enthält, die auf den Cluster zurückgesetzt werden sollen, wird die vorhandene Gruppe von Ressourcen gelöscht, bevor die neuen Ressourcen wiederhergestellt werden.
    • fail-on-conflict: Wenn im Zielcluster bereits Gruppen von Ressourcen enthalten sind, die für die Wiederherstellung aus einer Sicherung ausgewählt wurden, schlägt die Wiederherstellung fehl.
  • --all-namespaces: Stellt alle Namespace-Ressourcen in der Sicherung wieder her. Alternativ können Sie Folgendes angeben:

    • --excluded-namespaces mit einer Liste von Namespaces als NAMESPACE1,NAMESPACE2,..., um alle Namespaces mit Ausnahme der Namespaces in der Liste wiederherzustellen.
    • --selected-applications mit einer Liste von ProtectedApplications als NAMESPACE1/APP1,NAMESPACE2/APP2,..., die wiederhergestellt werden soll.
    • --selected-namespaces mit einer Liste von Namespaces als NAMESPACE1,NAMESPACE2,..., die wiederhergestellt werden sollen.
    • --no-namespaces: stellt alle Namespace-Ressourcen in der Sicherung wieder her. Diese Option kann nicht zusammen mit --cluster-resource-scope-no-group-kinds angegeben werden.

    Beim Erstellen eines Wiederherstellungsplans müssen Sie eine dieser Optionen angeben.

  • CLUSTER_RESOURCE_CONFLICT_POLICY: definiert, wie mit Wiederherstellungszeitkonflikten für ausgewählte Clusterressourcen umgegangen wird. Verwenden Sie eine dieser Optionen:

    • use-existing-version: Wenn die wiederhergestellten Ressourcen bereits im Zielcluster vorhanden sind, behält Backup for GKE die vorhandenen Ressourcen bei.

    • use-backup-version: Wenn die Ressourcen, die wiederhergestellt werden, bereits im Zielcluster vorhanden sind, ersetzt die Backup for GKE die vorhandenen Ressourcen durch die neuen Ressourcen aus der Sicherung.

  • --cluster-resource-scope-selected-group-kinds: (Optional) stellt Clusterressourcen mit ausgewählten Gruppenarten im Format Group/Kind wieder her. CLUSTER_RESOURCE_SCOPE definiert GroupKinds der Clusterressourcen, die wiederhergestellt werden sollen. Beispiel: apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass.

    Alternativ können Sie Folgendes angeben:

    • cluster-resource-scope-all-group-kinds, um alle wiederherzustellenden Arten von Clusterressourcengruppen auszuwählen.
    • cluster-resource-scope-excluded-group-kinds mit einer Liste von Arten von Clusterressourcengruppen, um alle Clusterressourcenarten wie in der Liste wiederherzustellen.
    • cluster-resource-scope-no-group-kinds. Diese Option kann nicht zusammen mit --no-namespaces angegeben werden.

    Wenn Sie keine dieser Optionen angeben, werden keine Clusterressourcen wiederhergestellt.

  • VOLUME_DATA_RESTORE_POLICY: Legen Sie fest, wie Daten für wiederhergestellte Volumes ausgefüllt werden. Verwenden Sie eine der folgenden Optionen:

    • restore-volume-data-from-backup: Neue PVs werden mit den entsprechenden Volume-Sicherungsdaten in der Sicherung wiederhergestellt.

    • reuse-volume-handle-from-backup: PVs werden mit dem Volume-Handle des ursprünglichen PV in der Sicherung vorab bereitgestellt.

    • no-volume-data-restoration: PVs werden nicht wiederhergestellt. Bei der Wiederherstellung werden nur ausgewählte PVCs wiederhergestellt und erwartet, dass der entsprechende Speichertreiber entweder leere PVs dynamisch bereitstellt oder sie an vorab bereitgestellte PVs bindet, die "out of band" erstellt wurden.

Eine vollständige Liste der Optionen finden Sie in der Dokumentation zu gcloud beta container backup-restore restore-plans create.

RestorePlan für alle Namespaces erstellen

Der folgende Befehl erstellt einen RestorePlan, um alle Namespaces und Clusterressourcen wiederherzustellen:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=fail-on-conflict \
    --all-namespaces \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-all-group-kinds \
    --volume-data-restore-policy=restore-volume-data-from-backup

RestorePlan erstellen, um ein Rollback eines Namespace durchzuführen

Mit dem folgenden Befehl wird ein RestorePlan erstellt, um den Namespace my-ns aus der Sicherung zurückzusetzen:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=delete-and-restore \
    --selected-namespaces=my-ns \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-selected-group-kinds=apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass \
    --volume-data-restore-policy=restore-volume-data-from-backup

Erstellen Sie einen RestorePlan, um ein ProtectedApplication rückgängig zu machen und die ursprünglichen Volumes wieder zu verbinden.

Mit dem folgenden Befehl wird ein RestorePlan erstellt, um ein Rollback der ProtectedApplication my-ns/my-app durchzuführen, um die ursprünglichen Volumes wieder zu verbinden:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=delete-and-restore \
    --selected-applications=my-ns/my-app \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-no-group-kinds \
    --volume-data-restore-policy=reuse-volume-handle-from-backup

Erstellen Sie einen RestorePlan, um nur Clusterressourcen wiederherzustellen

Der folgende Befehl erstellt einen RestorePlan, um alle Clusterressourcen wiederherzustellen:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=fail-on-conflict \
    --no-namespaces \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-all-group-kinds

Console

Gehen Sie nach der folgenden Anleitung vor, um einen Wiederherstellungsplan in der Google Cloud Console zu erstellen:

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie im Navigationsmenü auf Sicherung für GKE.

  3. Klicken Sie auf Wiederherstellungsplan erstellen.

  4. Führen Sie im Abschnitt Plan benennen und Cluster auswählen die folgenden Schritte aus und klicken Sie auf Weiter:

    1. Geben Sie den Namen des Wiederherstellungsplans und eine optionale Beschreibung ein.
    2. Wählen Sie einen Sicherungsplan für einen vorhandenen Cluster aus, der den Sicherungen entspricht, die Sie wiederherstellen möchten.
    3. Wählen Sie den Zielcluster aus, in dem Sie die Sicherung wiederherstellen möchten.
  5. Führen Sie im Abschnitt Namespace-Ressourcen auswählen die folgenden Schritte aus und klicken Sie auf Weiter:

    1. Wählen Sie aus, welche Namespaces wiederhergestellt werden sollen:

      • Klicken Sie auf Alle Namespace-Ressourcen, um alle Namespace-Ressourcen in der Sicherung wiederherzustellen.
        1. Klicken Sie im Abschnitt „Ausnahmen“ auf NAMESPACES HINZUFÜGEN, um alle Namespaces in der Sicherung auszuschließen.
      • Klicken Sie auf Ausgewählte Namespace-Ressourcen, um die Namespaces in der Sicherung anzugeben, die wiederhergestellt werden soll.
      • Klicken Sie auf Ausgewählte geschützte Anwendungen, um Ressourcen durch Angabe von Namespace und Anwendungsnamen hinzuzufügen.
      • Klicken Sie auf Keine Namespace-Ressourcen, um keine Namespace-Ressourcen wiederherzustellen.
    2. Wählen Sie aus, wie Konflikte verarbeitet werden sollen, wenn Namespace-Ressourcen ausgewählt sind:

      • Klicken Sie auf Fehler bei Konflikt (nicht destruktiv), damit die Wiederherstellung fehlschlägt, wenn im Zielcluster bereits Namespaces zur Wiederherstellung aus einer Sicherung vorhanden sind.
      • Klicken Sie auf Rollback (destruktiv), um die vorhandenen Namespaces zu löschen, bevor die neuen Namespaces wiederhergestellt werden, wenn im Zielcluster bereits Namespaces zur Wiederherstellung aus einer Sicherung vorhanden sind.
    3. Wählen Sie aus, wie Volume-Daten wiederhergestellt werden sollen, und klicken Sie auf Weiter:

      • Klicken Sie auf Neue Volumes bereitstellen und Volume-Daten aus der Sicherung wiederherstellen, um Volume-Daten aus der Sicherung auf einem neuen nichtflüchtigen Speicher wiederherzustellen.
      • Klicken Sie auf Volume-Daten nicht wiederherstellen, um ein neues nichtflüchtiges Volume bereitzustellen. Wenn der Zielcluster ein unbegrenztes nichtflüchtiges Volume enthält, das die PersistentVolumeClaim-Anforderungen erfüllt, ist der Cluster an das Volume gebunden.
      • Klicken Sie auf Vorhandene Volumes mit Ihren Daten wiederverwenden, um keine Volume-Sicherungsdaten wiederherzustellen. Alle PersistentVolumeClaims sind an Volumes gebunden, die auf vorhandene nichtflüchtige Speicher verweisen.
  6. (Optional) Führen Sie im Abschnitt Clusterbezogene Ressourcen auswählen die folgenden Schritte aus und klicken Sie auf Weiter:

    1. Wählen Sie aus, welche Gruppenarten wiederhergestellt werden sollen:

      • Klicken Sie auf Alle clusterbezogenen Ressourcen, um alle clusterbezogenen Ressourcen in der Sicherung wiederherzustellen.
        1. Klicken Sie im Abschnitt „Ausnahmen“ auf GROUPKINDS HINZUFÜGEN, um alle clusterbezogenen Ressourcen in der Sicherung auszuschließen.
      • Klicken Sie auf Ausgewählte clusterbezogene Ressourcen, um die clusterbezogenen Ressourcen in der Sicherung anzugeben, die wiederhergestellt werden soll. apiextensions.k8s.io/CustomResourceDefinition und storage.k8s.io/StorageClass sind standardmäßig ausgewählt. Klicken Sie auf GROUPKIND HINZUFÜGEN, um weitere clusterbezogene Ressourcen hinzuzufügen.
      • Klicken Sie auf Keine clusterbezogenen Ressourcen, um keine Clusterressource wiederherzustellen.
    2. Wählen Sie aus, wie Konflikte verarbeitet werden sollen, wenn Ressourcen mit Clusterbereich ausgewählt werden:

      • Klicken Sie auf Ressourcen im Zielcluster beibehalten, um eine Ressource zu überspringen, wenn sie bereits im Zielcluster vorhanden ist.
      • Klicken Sie auf Ressourcen im Zielcluster ersetzen, um eine Ressource zu löschen, wenn sie bereits im Zielcluster vorhanden ist, und um die Kopie aus der Sicherung wiederherzustellen.

  7. (Optional) Führen Sie im Abschnitt Transformationsregeln hinzufügen die folgenden Schritte aus und klicken Sie auf Weiter:

    1. Klicken Sie auf Regel hinzufügen und geben Sie optional eine Beschreibung ein.
    2. Wenn Sie die Transformationsregeln auf Ressourcen beschränken möchten, die bestimmte Bedingungen erfüllen, gehen Sie im Abschnitt Ressourcenbedingungen und Aktionen angeben so vor:
      1. Klicken Sie auf Bedingung für Namespaces und geben Sie eine Liste von Namespaces ein, die mit Ressourcen in diesen Namespaces übereinstimmen.
      2. Klicken Sie auf Groupkind-Bedingung und geben Sie "API-Groupkind" und dann die Objektart ein. Dadurch wird eine API-Gruppe mit Ressourcen innerhalb dieser Typen abgeglichen.
      3. Klicken Sie auf JSON-Pfadbedingung und geben Sie den JSON-Pfad ein, der die Felder in den übereinstimmenden Ressourcen identifiziert, für die die Transformation angewendet wird.
      4. Geben Sie den neuen Wert ein, der den aktuellen Wert der übereinstimmenden Attribute ersetzt, oder klicken Sie auf das Kästchen Bestimmte Werte ersetzen (mithilfe eines regulären Ausdrucks). Geben Sie dann das Muster ein, das mit dem aktuellen Wert dieser Ressourcen verglichen werden soll.
    3. Klicken Sie auf Änderungen speichern.
  8. Prüfen Sie die Details des Wiederherstellungsplans und klicken Sie auf Plan erstellen.

Wiederherstellungsplan ansehen

Sie können einen Wiederherstellungsplan und die zugehörigen Details über die gcloud CLI oder die Google Cloud Console aufrufen.

gcloud

Führen Sie den folgenden Befehl aus, um alle Wiederherstellungspläne innerhalb des Projekts und des Speicherorts aufzulisten:

gcloud beta container backup-restore restore-plans list \
    --project=PROJECT_ID \
    --location=LOCATION

Nur für list-Befehle können Sie - als Wert für alle Parameter außer PROJECT_ID angeben. Der Wert - fungiert als Platzhalter. Der Wert - ist die Standardeinstellung für jeden Parameter, wenn Sie keine Befehlszeilenoption angeben oder kein Attribut festlegen.

Eine vollständige Liste der Optionen finden Sie in der Dokumentation zu gcloud beta container backup-restore restore-plans list.

Führen Sie den folgenden Befehl aus, um die Details eines Wiederherstellungsplans aufzurufen:

gcloud beta container backup-restore restore-plans describe RESTORE_PLAN \
     --project=PROJECT_ID \
     --location=LOCATION

Console

Folgen Sie der nachstehenden Anleitung, um einen Wiederherstellungsplan und die zugehörigen Details in der Google Cloud Console aufzurufen:

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie im Navigationsmenü auf Sicherung für GKE.

  3. Klicken Sie auf den Tab Pläne wiederherstellen.

  4. Maximieren Sie den Sicherungsplan und klicken Sie auf den Namen des Wiederherstellungsplans.

  5. Klicken Sie auf den Tab Details, um die Details aufzurufen.

Wiederherstellungsplan aktualisieren

Aktualisieren Sie mithilfe der gcloud CLI einen Wiederherstellungsplan und die zugehörigen Details.

gcloud

Führen Sie den folgenden Befehl aus, um einen Wiederherstellungsplan zu aktualisieren, indem Sie beispielsweise eine neue Beschreibung hinzufügen:

gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --description=DESCRIPTION

Eine vollständige Liste der Optionen finden Sie in der Dokumentation zu gcloud beta container backup-restore restore-plans update.

Console

Folgen Sie der Anleitung unten, um einen Wiederherstellungsplan in der Google Cloud Console zu aktualisieren:

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie im Navigationsmenü auf Sicherung für GKE.

  3. Klicken Sie auf den Tab Pläne wiederherstellen.

  4. Klicken Sie auf den Namen des Wiederherstellungsplans.

  5. Klicken Sie auf den Tab Details.

  6. Klicken Sie auf Bearbeiten, um einen Planabschnitt zu bearbeiten, und klicken Sie auf Änderungen speichern.

Wiederherstellungsplan löschen

Sie können einen Wiederherstellungsplan mithilfe der gcloud CLI oder der Google Cloud Console löschen. Beim Löschen eines Wiederherstellungsplans werden auch alle untergeordneten Wiederherstellungspläne gelöscht.

gcloud

Führen Sie den folgenden Befehl aus, um einen Wiederherstellungsplan zu löschen:

gcloud beta container backup-restore restore-plans delete RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION

Eine vollständige Liste der Optionen finden Sie in der Dokumentation zu gcloud beta container backup-restore restore-plans delete.

Console

Folgen Sie der Anleitung unten, um einen Wiederherstellungsplan in der Google Cloud Console zu löschen:

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie im Navigationsmenü auf Sicherung für GKE.

  3. Klicken Sie auf den Tab Pläne wiederherstellen.

  4. Maximieren Sie den Cluster und klicken Sie auf den Namen des Plans.

  5. Klicken Sie auf Plan löschen.

  6. Geben Sie den Namen des Wiederherstellungsplans ein und klicken Sie im Bestätigungsdialogfeld auf Wiederherstellungsplan löschen.

Nächste Schritte