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 die Rolle "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
- Regionale Cluster:
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:merge-skip-on-conflict
: überspringt die einzelnen in Konflikt stehenden Ressourcen.merge-replace-volume-on-conflict
: überspringt die einzelnen in Konflikt stehenden Ressourcen, ersetzt aber die zugrunde liegenden Daten des nichtflüchtigen Volumes.merge-replace-on-conflict
: ersetzt die einzelnen in Konflikt stehenden Ressourcen und die zugrunde liegenden Daten des nichtflüchtigen Volumes.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 alsNAMESPACE1,NAMESPACE2,...
, um alle Namespaces mit Ausnahme der Namespaces in der Liste wiederherzustellen.--selected-applications
mit einer Liste von ProtectedApplications alsNAMESPACE1/APP1,NAMESPACE2/APP2,...
, die wiederhergestellt werden soll.--selected-namespaces
mit einer Liste von Namespaces alsNAMESPACE1,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 FormatGroup/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:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie im Navigationsmenü auf Sicherung für GKE.
Klicken Sie auf Wiederherstellungsplan erstellen.
Führen Sie im Abschnitt Plan benennen und Cluster auswählen die folgenden Schritte aus und klicken Sie auf Weiter:
- Geben Sie den Namen des Wiederherstellungsplans und eine optionale Beschreibung ein.
- Wählen Sie einen Sicherungsplan für einen vorhandenen Cluster aus, der den Sicherungen entspricht, die Sie wiederherstellen möchten.
- Wählen Sie den Zielcluster aus, in dem Sie die Sicherung wiederherstellen möchten.
Führen Sie im Abschnitt Namespace-Ressourcen auswählen die folgenden Schritte aus und klicken Sie auf Weiter:
Wählen Sie aus, welche Namespaces wiederhergestellt werden sollen:
- Klicken Sie auf Alle Namespace-Ressourcen, um alle Namespace-Ressourcen in der Sicherung wiederherzustellen.
- 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.
- Klicken Sie auf Alle Namespace-Ressourcen, um alle Namespace-Ressourcen in der Sicherung wiederherzustellen.
Wählen Sie aus, wie Konflikte verarbeitet werden sollen, wenn Namespace-Ressourcen ausgewählt sind:
- Klicken Sie auf Zusammenführen und überspringen (nicht destruktiv), wenn eine bestimmte Ressource bereits vorhanden ist, überspringen Sie die Wiederherstellung der Ressource aus der Sicherung.
- Klicken Sie auf Zusammenführen und Volume ersetzen (destruktiv), wenn eine bestimmte Ressource bereits vorhanden ist, überspringen Sie die Wiederherstellung dieser Ressource, aber ersetzen Sie das zugrunde liegende nichtflüchtige Volume mithilfe der Richtlinie zur Wiederherstellung von Volume-Daten. Durch "Zusammenführen und Volume ersetzen" wird die reine Datenwiederherstellung ermöglicht.
- Klicken Sie auf Zusammenführen und ersetzen (destruktiv), wenn eine bestimmte Ressource bereits vorhanden ist, ersetzen Sie diese Ressource durch die Ressource aus der Sicherung und die zugehörigen Volume-Daten. Folgen Sie dazu der Richtlinie zur Wiederherstellung von Volume-Daten.
- 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.
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.
(Optional) Führen Sie im Abschnitt Clusterbezogene Ressourcen auswählen die folgenden Schritte aus und klicken Sie auf Weiter:
Wählen Sie aus, welche Gruppenarten wiederhergestellt werden sollen:
- Klicken Sie auf Alle clusterbezogenen Ressourcen, um alle clusterbezogenen Ressourcen in der Sicherung wiederherzustellen.
- 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
undstorage.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.
- Klicken Sie auf Alle clusterbezogenen Ressourcen, um alle clusterbezogenen Ressourcen in der Sicherung wiederherzustellen.
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.
(Optional) Führen Sie im Abschnitt Transformationsregeln hinzufügen die folgenden Schritte aus und klicken Sie auf Weiter:
- Klicken Sie auf Regel hinzufügen und geben Sie optional eine Beschreibung ein.
- 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:
- Klicken Sie auf Bedingung für Namespaces und geben Sie eine Liste von Namespaces ein, um einen Abgleich mit Ressourcen in diesen Namespaces auszuführen.
- 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.
- 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.
- 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.
- Klicken Sie auf Änderungen speichern.
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:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie im Navigationsmenü auf Sicherung für GKE.
Klicken Sie auf den Tab Pläne wiederherstellen.
Maximieren Sie den Sicherungsplan und klicken Sie auf den Namen des Wiederherstellungsplans.
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:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie im Navigationsmenü auf Sicherung für GKE.
Klicken Sie auf den Tab Pläne wiederherstellen.
Klicken Sie auf den Namen des Wiederherstellungsplans.
Klicken Sie auf den Tab Details.
Klicken Sie auf edit 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:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie im Navigationsmenü auf Sicherung für GKE.
Klicken Sie auf den Tab Pläne wiederherstellen.
Maximieren Sie den Cluster und klicken Sie auf den Namen des Plans.
Klicken Sie auf delete Plan löschen.
Geben Sie den Namen des Wiederherstellungsplans ein und klicken Sie im Bestätigungsdialogfeld auf Wiederherstellungsplan löschen.