Eine Reihe von Wiederherstellungen planen

In diesem Dokument wird beschrieben, wie Sie einen Wiederherstellungsplan in Google Distributed Cloud (GDC) mit Air Gap erstellen, bearbeiten und löschen.

Wiederherstellungspläne sind vorkonfigurierte Wiederherstellungsszenarien für Sicherungen. Mit Wiederherstellungsplänen können Nutzern mit der Rolle „Backup Creator“ Berechtigungen zur Verwendung dieser Konfigurationen erteilt werden.

Backup Creators 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 eine Reihe von Ersetzungsregeln anwenden, die mit einer Reihe von Ressourcen übereinstimmen und den aktuellen Wert eines Attributs für diese Ressourcen durch einen neuen Wert ersetzen. Beispielsweise kann eine Substitutionsregel den Namespace der gesicherten Ressourcen während der Wiederherstellung ändern, um eine Arbeitslast von einem Namespace zu einem anderen zu migrieren.

Hinweis

IAM-Rollen anfordern

Bitten Sie Ihren IAM-Admin der Organisation, Ihnen die Rolle User Cluster Backup Admin (user-cluster-backup-admin) zuzuweisen, um einen Wiederherstellungsplan zu erstellen. Mit dieser Rolle können Sicherungsressourcen wie Sicherungspläne und Wiederherstellungspläne in Nutzerclustern erstellt, abgerufen, aufgelistet, beobachtet, aktualisiert, gepatcht und gelöscht werden.

Wenn Sie ein Anwendungsoperator sind, bitten Sie einen Administrator mit Berechtigungen als „User Cluster Backup Admin“, einen Wiederherstellungsplan für Sie zu erstellen.

Wiederherstellungsplan erstellen

Erstellen Sie einen Wiederherstellungsplan mithilfe der GDC-Konsole oder der API.

Console

  1. Melden Sie sich in der GDC-Konsole an.
  2. Klicken Sie im Navigationsmenü auf Sicherung für Cluster.
  3. Klicken Sie auf Wiederherstellungsplan erstellen.
  4. Führen Sie im Abschnitt Grundlagen des Wiederherstellungsplans die folgenden Schritte aus und klicken Sie auf Weiter:
    1. Geben Sie unter Name des Wiederherstellungsplans den Namen Ihres Wiederherstellungsplans ein.
    2. Optional: Geben Sie unter Beschreibung des Wiederherstellungsplans eine Beschreibung für den Wiederherstellungsplan ein.
    3. Wählen Sie in der Liste Quellcluster den Quellcluster für den Wiederherstellungsplan aus.
    4. Wählen Sie in der Liste Projekt das Projekt für den Wiederherstellungsplan aus.
    5. Wählen Sie das Projekt aus, das an den Quellcluster angehängt ist.
    6. Wählen Sie im Feld Sicherungsplan einen Sicherungsplan für einen vorhandenen Cluster aus, der den Sicherungen entspricht, die Sie wiederherstellen möchten.
    7. Wählen Sie im Feld Zielcluster 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:
      1. Klicken Sie auf Ausgewählte Namespace-Ressourcen, um die Namespaces in der Sicherung anzugeben, die wiederhergestellt werden soll.
        1. Klicken Sie auf Cluster-Namespaces bearbeiten und dann auf Cluster-Namespace hinzufügen, um einen Namespace einzugeben.
      2. Klicken Sie auf Ausgewählte geschützte Anwendungen, um Ressourcen durch Angabe von Namespace und Anwendungsnamen hinzuzufügen.
    2. Wählen Sie aus, wie Konflikte verarbeitet werden sollen:
      1. 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.
      2. 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:
      1. 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.
      2. 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.
      3. 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. Klicken Sie auf Clusterbezogene Ressourcen nicht wiederherstellen, um die vorhandene Version der Ressource unverändert zu lassen.
    2. Klicken Sie auf Clusterbezogene Ressourcen wiederherstellen nach GroupKind, um diese Ressourcen wiederherzustellen.
      1. Klicken Sie auf GroupKinds bearbeiten, um weitere clusterbezogene Ressourcen hinzuzufügen. Geben Sie die API-Gruppe und die Objektart ein, um Ressourcen in diesen Typen abzugleichen.
    3. Klicken Sie auf Vorhandene Ressourcen beibehalten, um Ressourcen zu erstellen, wenn sie im Zielcluster nicht vorhanden sind.
    4. Klicken Sie auf Ressourcen im Zielcluster überschreiben, 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 Ersetzungsregeln hinzufügen die folgenden Schritte aus und klicken Sie auf Weiter:
    1. Klicken Sie auf Neue Regel hinzufügen.
    2. Geben Sie im Feld Cluster-Namespaces eine Liste von Namespaces ein, um einen Abgleich mit Ressourcen in diesen Namespaces auszuführen.
    3. Wenn Sie GroupKinds hinzufügen möchten, klicken Sie auf GroupKind hinzufügen und geben Sie die API-Gruppe und die Objektart ein, um Ressourcen innerhalb dieser Typen abzugleichen.
    4. Geben Sie im Feld JSON-Pfad den JSON-Pfad ein, der die Felder in den übereinstimmenden Ressourcen identifiziert, für die der Ersatz gilt.
    5. Geben Sie im Feld Original value pattern (Muster für Originalwert) das ursprüngliche Muster ein, das mit dem neuen Wert verglichen werden soll.
    6. Geben Sie im Feld Neuer Wert den neuen Wert ein, der den aktuellen Wert der übereinstimmenden Attribute ersetzt.
    7. Klicken Sie auf Speichern.
  8. Klicken Sie auf Erstellen.

API

Erstellen Sie eine benutzerdefinierte ClusterRestorePlan-Ressource, um Wiederherstellungen aus einem vorhandenen ClusterBackupPlan zu planen. Mit der ClusterRestorePlan wird die genaue Gruppe von Ressourcen und Namespaces zugewiesen, die ein Sicherungsersteller wiederherstellen darf. Hier ein Beispiel für einen ClusterRestorePlan:

apiVersion: backup.gdc.goog/v1
kind: ClusterRestorePlan
metadata:
  name: RESTORE_PLAN_NAME
  namespace:  PROJECT_NAME
spec:
  targetCluster:
    targetClusterType: UserCluster
    targetClusterName:
      kind: "Cluster"
      name: CLUSTER_NAME
  description: RESTORE_PLAN_DESCRIPTION
  clusterBackupPlanName: CLUSTER_BACKUP_PLAN_NAME
  clusterRestoreConfig:
    volumeDataRestorePolicy: RestoreVolumeDataFromBackup
    clusterResourceConflictPolicy: UseBackupVersion
    namespacedResourceRestoreMode: DeleteAndRestore
    namespacedResourceRestoreScope:
      selectedNamespaces:
        namespaces: [NAME_SPACE]
    clusterBackupRepositoryRef: CLUSTER_BACKUP_REPOSITORY
    substitutionRules:
      - newValue: NEW_CONFIG_VALUE
        originValuePattern: VALUE_PATTERN
        target:
          groupKinds:
          jsonPath: '{.metadata.name}'
          namespaces:
          - NAME_SPACE
      - newValue: NEW_CONFIG_VALUE
        originValuePattern: VALUE_PATTERN
        target:
          groupKinds:
          jsonPath: '{.metadata.name}'
          namespaces:
          - NAME_SPACE

Ersetzen Sie Folgendes:

  • Ersetzen Sie RESTORE_PLAN_NAME durch den Namen Ihres Wiederherstellungsplans.
  • Ersetzen Sie PROJECT_NAME durch den Namen Ihres GDC-Projekts.
  • Ersetzen Sie CLUSTER_NAME durch den Namen Ihres Clusters.

In diesem Beispiel werden die folgenden Werte verwendet:


Wert

Attribut

Beschreibung
targetClusterName Name des Quellclusters in einem Projekt, mit dem dieser Plan verknüpft ist.
description Eine vom Nutzer angegebene Beschreibung des Zwecks der ClusterRestorePlan.
clusterBackupPlanName Der Name des ClusterBackupPlan, der wiederhergestellt werden soll. Die ClusterBackupPlan muss sich im selben Namespace wie die ClusterRestorePlan befinden.
clusterRestoreConfig Konfiguration für den Wiederherstellungsprozess.
volumeDataRestorePolicy Geben Sie einen der folgenden Werte an:
  • NoVolumeDataRestoration: PVs/PVCs werden nicht wiederhergestellt.
  • RestoreVolumeDataFromBackup: Neue PVs und PVCs werden aus der Sicherung erstellt.
  • ReuseVolumeHandleFromBackup: Erstellt neue PVs, versucht aber, PVCs mit ihren ursprünglichen PVs wiederherzustellen. Vorgesehen für die Wiederherstellung in demselben Cluster, aus dem die Sicherung erstellt wurde.
clusterResourceConflictPolicy Gibt das Verhalten für den Umgang mit Konflikten bei Clusterressourcen an, z. B. wenn die Ressource bereits im Cluster vorhanden ist. Geben Sie einen der folgenden Werte an:
  • UseExistingVersion: Vorhandene Ressourcen werden bei einem Konflikt nicht überschrieben.
  • UseBackupVersion: Löscht vorhandene Clusterressourcen und erstellt sie bei einem Konflikt neu. Vorhandene clusterbezogene Ressourcen im Zielcluster werden durch die Versionen aus der Sicherung überschrieben. Dies ist eine gefährliche Option, die bei unsachgemäßer Verwendung zu unbeabsichtigtem Datenverlust führen kann. Wenn Sie beispielsweise eine benutzerdefinierte Ressourcendefinition löschen, werden alle benutzerdefinierten Ressourcen dieses Typs von Kubernetes gelöscht.
namespacedResourceRestoreMode Behandelt die Situation, in der die wiederhergestellten Sätze von Namespace-Ressourcen bereits im Zielcluster vorhanden sind. Geben Sie einen der folgenden Werte an:
  • DeleteAndRestore: Wenn widersprüchliche Ressourcen auf oberster Ebene wie Namespaces oder ProtectedApplications gefunden werden, wird zuerst die widersprüchliche Ressource und alle ihre referenzierten Ressourcen gelöscht, bevor die Ressourcen aus dem Backup wiederhergestellt werden. Verwenden Sie diesen Modus nur, wenn Sie einen Teil eines Clusters auf einen früheren Zustand zurücksetzen möchten.
  • FailOnConflict: Wenn zu Beginn oder während des Wiederherstellungsprozesses in Konflikt stehende Ressourcen auf oberster Ebene wie die Ressource Namespace oder ProtectedApplication gefunden werden, schlägt die Restore fehl.
  • MergeSkipOnConflict: Wenn während des Wiederherstellungsvorgangs in Konflikt stehende Ressourcen gefunden werden, wird in diesem Modus die Wiederherstellung der in Konflikt stehenden Ressourcen aus der Sicherung übersprungen und die Wiederherstellung anderer Ressourcen, die sich nicht im Cluster befinden, fortgesetzt.
  • MergeReplaceOnConflict: Wenn während des Wiederherstellungsvorgangs in Konflikt stehende Ressourcen gefunden werden, werden die in Konflikt stehenden Ressourcen durch die Sicherung ersetzt und andere Ressourcen, die sich nicht im Cluster befinden, werden weiter wiederhergestellt.
namespacedResourceRestoreScope Gibt an, welche Namespaces oder ProtectedApplications für die Wiederherstellung zulässig sind.
  • selectedApplications verknüpft geschützte Anwendungen mit dieser Wiederherstellung.
  • selectedNamespaces enthält NAME_SPACE, das den Namespace angibt, der aus der Sicherung wiederhergestellt werden soll.
clusterBackupRepositoryRef Gibt das Repository an, in dem die Restore-Ressourcen gespeichert werden sollen. Dieses Repository kann sich von dem Repository unterscheiden, aus dem die Sicherung stammt. Das Repository muss ein ReadWrite-Repository im Cluster sein.
substitutionRules Regeln zum Ersetzen von Werten in den gesicherten Kubernetes-Ressourcen während der Wiederherstellung. Eine leere Liste bedeutet, dass keine Ersetzung erfolgt. Ersetzungsregeln werden nacheinander in der definierten Reihenfolge angewendet. Diese Reihenfolge ist wichtig, da sich Änderungen, die durch eine Regel vorgenommen werden, auf die Abgleichslogik der nachfolgenden Regel auswirken können. In jeder Regel werden ein target, ein originValuePattern für den Abgleich (VALUE_PATTERN) und ein newValue (NEW_CONFIG_VALUE) zum Ersetzen angegeben. Die target kann namespaces enthalten, um den Bereich der Regel (NAME_SPACE) festzulegen.

Nachdem ein ClusterRestorePlan erstellt wurde, können Nutzer mit der Rolle „Backup Creator“ Sicherungen manuell wiederherstellen.

Wiederherstellungsplan ansehen

So rufen Sie einen Wiederherstellungsplan über die GDC Console auf:

  1. Melden Sie sich in der GDC-Konsole an.
  2. Klicken Sie im Navigationsmenü auf Sicherung für Cluster.
  3. Klicken Sie auf Projekt auswählen, um je nach Rolle eine Organisation oder ein Projekt auszuwählen:
    1. User Cluster Backup Admin: Wählen Sie eine Organisation aus, um alle Wiederherstellungspläne in einer Organisation aufzurufen, oder wählen Sie ein Projekt aus, um alle Wiederherstellungspläne in einem Projekt aufzurufen.
    2. Backup Creator: Wählen Sie ein Projekt aus, um alle Wiederherstellungspläne in einem Projekt aufzurufen.
  4. Klicken Sie auf den Tab Pläne wiederherstellen.
  5. Klicken Sie in der Liste auf einen Wiederherstellungsplan, um die Details aufzurufen.

Wiederherstellungsplan bearbeiten

Wenn das Backup-Repository, das mit dem Wiederherstellungsplan verknüpft ist, den Sie bearbeiten möchten, beim Erstellen des Wiederherstellungsplans einen Wert im Feld Verknüpfter Cluster(schreibgeschützt) hat, wird es zweimal erstellt. Der Wiederherstellungsplan wird sowohl an den Lese-/Schreib- als auch an den Cluster mit Lesezugriff weitergegeben.

Wenn Sie den Wiederherstellungsplan bearbeiten, der zu einem Backup-Repository gehört, für das sowohl Lese-/Schreib- als auch Lesezugriff-Cluster festgelegt sind, müssen Sie den Wiederherstellungsplan bearbeiten, für den TARGET CLUSTER auf den Lese-/Schreib-Cluster festgelegt ist.

So bearbeiten Sie einen Wiederherstellungsplan mit der GDC Console:

  1. Melden Sie sich in der GDC-Konsole an.
  2. Klicken Sie im Navigationsmenü auf Sicherung für Cluster.
  3. Klicken Sie auf Projekt auswählen, um je nach Rolle eine Organisation oder ein Projekt auszuwählen:
    1. User Cluster Backup Admin: Wählen Sie eine Organisation aus, um alle Wiederherstellungspläne in einer Organisation aufzurufen, oder wählen Sie ein Projekt aus, um alle Wiederherstellungspläne in einem Projekt aufzurufen.
    2. Backup Creator: Wählen Sie ein Projekt aus, um alle Wiederherstellungspläne in einem Projekt aufzurufen.
  4. Klicken Sie auf den Tab Pläne wiederherstellen.
  5. Klicken Sie auf den Namen des Wiederherstellungsplans, den Sie bearbeiten möchten.
  6. Klicken Sie auf den Tab Plan Configuration (Plankonfiguration), um die Felder aufzurufen, die geändert werden können.
  7. Klicken Sie neben Namespace-Ressourcen auf das Symbol „Bearbeiten“, um diese Ressource zu bearbeiten:

    1. Wählen Sie im Abschnitt Namespace-Ressourcen auswählen die Namespace-Ressourcen in der Sicherung aus, die Sie wiederherstellen möchten:

      1. Wählen Sie Ausgewählte Namespace-Ressourcen aus, um Ressourcen aus den ausgewählten Namespaces in der Sicherung wiederherzustellen:

        1. Wählen Sie Cluster-Namespaces bearbeiten aus, um den Cluster-Namespace auszuwählen.
        2. Geben Sie im Feld Cluster-Namespace 1 den Namen für den Namespace ein.
        3. Klicken Sie auf Speichern.
      2. Wählen Sie Ausgewählte geschützte Anwendungen aus, um Ressourcen aus den ausgewählten geschützten Anwendungen in der Sicherung wiederherzustellen:

        1. Wählen Sie Geschützte Anwendungen bearbeiten aus, um den Namespace und die geschützte Anwendung auszuwählen.
        2. Geben Sie im Feld Namespace 1 den Namen für den Namespace ein.
        3. Geben Sie im Feld Geschützte Anwendung 1 den Namen der geschützten Anwendung ein.
        4. Klicken Sie auf Speichern.
  8. Klicken Sie neben Clusterbezogene Ressourcen auf das Symbol „Bearbeiten“, um diese Ressource zu bearbeiten:

    1. Optional: Wählen Sie im Abschnitt Clusterbezogene Ressourcen auswählen die clusterbezogenen Ressourcen aus, die wiederhergestellt werden sollen. Geben Sie dazu die API-Gruppen und GroupKinds an und legen Sie fest, wie Konflikte gelöst werden sollen:

      1. Wählen Sie Clusterbezogene Ressourcen nicht wiederherstellen aus, um clusterbezogene Ressourcen aus dem Wiederherstellungsprozess zu entfernen.
      2. Wählen Sie Clusterbezogene Ressourcen nach GroupKind wiederherstellen aus, um die Ressourcen nach der angegebenen GroupKind wiederherzustellen:

      3. Klicken Sie auf den Button GroupKind bearbeiten, um einen GroupKind anzugeben.

      4. Klicken Sie auf den Button GroupKind hinzufügen.

      5. Geben Sie den Namen des GroupKind ein.

      6. Klicken Sie auf Speichern.

    2. Legen Sie im Abschnitt Konfliktbehandlung fest, welche Aktion ausgeführt werden soll, wenn die Ressource bereits im Zielcluster vorhanden ist:

      1. Wählen Sie Vorhandene Ressourcen beibehalten aus, um Ressourcen zu erstellen, wenn sie noch nicht im Cluster vorhanden sind.
      2. Wählen Sie Vorhandene Ressourcen überschreiben aus, um alle vorhandenen Ressourcen zu löschen und diese Ressource durch die wiederhergestellte Ressource zu ersetzen.
    3. Klicken Sie auf Speichern, um die Änderungen zu bestätigen.

  9. Klicken Sie im Bereich Ersetzungsregeln auf den Button Neue Regel hinzufügen, um eine neue Ersetzungsregel hinzuzufügen:

    1. Geben Sie im Feld Cluster-Namespaces den Namen des Cluster-Namespace ein, für den diese Substitutionsregel gelten soll.
    2. Klicken Sie auf den Button GroupKind hinzufügen, um diese Regel auf ein bestimmtes GroupKind-Objekt anzuwenden.
    3. Geben Sie im Feld JSON-Pfad den Pfad zum Ressourcenattribut ein, das Sie ersetzen möchten, im JSON-Format.
    4. Geben Sie im Feld Muster für Originalwert einen regulären Ausdruck ein, der mit dem Originalwert des Attributs übereinstimmt.
    5. Geben Sie im Feld Neuer Wert den Wert ein, der das Zielfeld ersetzen soll. Wenn dieses Feld leer ist, wird das Zielfeld aus der Ressource entfernt.
    6. Klicken Sie auf Speichern, um die Erstellung der neuen Substitutionsregel abzuschließen.
  10. Klicken Sie im Bereich Ersetzungsregeln auf das Symbol „Bearbeiten“, um eine vorhandene Ersetzungsregel zu bearbeiten.

  11. Klicken Sie im Bereich Ersetzungsregeln auf das Löschsymbol , um eine vorhandene Ersetzungsregel zu löschen.

Wiederherstellungsplan löschen

RestorePlans kann über die GDC-Konsole oder durch direktes Löschen der Ressource vom Kubernetes API-Server gelöscht werden. Dadurch werden alle zugehörigen RestorePlan-Artefakte aus dem Objektspeicher gelöscht.

Console

  1. Melden Sie sich in der GDC-Konsole an.
  2. Klicken Sie im Navigationsmenü auf Sicherung für Cluster.
  3. Klicken Sie auf Projekt auswählen, um je nach Rolle eine Organisation oder ein Projekt auszuwählen:
    1. User Cluster Backup Admin: Wählen Sie eine Organisation aus, um alle Wiederherstellungspläne in einer Organisation aufzurufen, oder wählen Sie ein Projekt aus, um alle Wiederherstellungspläne in einem Projekt aufzurufen.
    2. Backup Creator: Wählen Sie ein Projekt aus, um alle Wiederherstellungspläne in einem Projekt aufzurufen.
  4. Klicken Sie auf den Tab Pläne wiederherstellen.
  5. Klicken Sie auf den Namen des Wiederherstellungsplans, den Sie löschen möchten.
  6. Klicken Sie auf den Button Löschen.
  7. Geben Sie den Namen des Wiederherstellungsplans in das Feld ein.
  8. Klicken Sie auf den Button Löschen, um das Löschen dieses Wiederherstellungsplans zu bestätigen.

API

Löschen Sie die Wiederherstellungsplan-Ressource:

kubectl delete clusterRestoreplan RESTORE_PLAN_NAME -n NAMESPACE

Ersetzen Sie Folgendes:

  • RESTORE_PLAN_NAME: der Name des Wiederherstellungsplans.
  • NAMESPACE: der Namespace, der den Wiederherstellungsplan enthält.

Nächste Schritte