Auf dieser Seite wird beschrieben, wie Sie Ressourcen für die Wiederherstellung mit detaillierterer Genauigkeit auswählen.
Übersicht
Mit der detaillierten Wiederherstellungsfunktion können Sie einen Teil der Ressourcen aus einer Sicherung wiederherstellen. Das detaillierte Wiederherstellungsfeature bietet die Flexibilität, den im übergeordneten Wiederherstellungsplan definierten Wiederherstellungsbereich zu optimieren. Wenn sich der detaillierte Wiederherstellungsbereich nicht mit dem im übergeordneten Wiederherstellungsplan definierten ursprünglichen Bereich überschneidet, werden keine Ressourcen wiederhergestellt.
Das fein abgestufte Wiederherstellungsfeature kann für Wiederherstellungspläne mit einzelnen Konfliktbehandlungsmodi auf Ressourcenebene aktiviert werden:
- Zusammenführen und überspringen
- Zusammenführen und ersetzen
- Zusammenführen und Volume ersetzen
Wenn Ihre Wiederherstellungspläne Modi zur Konfliktverarbeitung auf Namespace- oder ProtectedApplication-Ebene verwenden, z. B. Bei Konflikt oder Rollback, und Sie eine detaillierte Wiederherstellung aktivieren möchten, müssen Sie Ihren Wiederherstellungsplan so aktualisieren, dass die unterstützten Modi verwendet werden, oder einen neuen Wiederherstellungsplan erstellen. Weitere Informationen zu den Wiederherstellungsmodi finden Sie unter Ressourcenkonflikte während der Wiederherstellung verarbeiten.
Für eine detaillierte Wiederherstellung können Sie unter „Einschluss- und Ausschlussfiltern“ eine oder mehrere Filterbedingungen definieren. Sie können eine bestimmte Teilmenge von Ressourcen aus der Sicherung zur Wiederherstellung auswählen oder alle Ressourcen mit Ausnahme einer Teilmenge wiederherstellen. Sie können „Einschließen“- und „Ausschließen“-Filter gleichzeitig definieren. Wenn Einschlussfilter verwendet werden, werden nur Ressourcen wiederhergestellt, die diesen Filtern entsprechen. Bei Verwendung von Ausschlussfiltern werden übereinstimmende Ressourcen aus dem Wiederherstellungsprozess ausgeschlossen. Wenn sowohl Einschluss- als auch Ausschlussfilter angegeben sind, werden zuerst Einschlussfilter und dann Ausschlussfilter angewendet. Das bedeutet, dass Ausschlussfilter Vorrang vor Einschlussfiltern haben. Wenn keine Filter angegeben sind, wird die Wiederherstellung für den gesamten Bereich ausgeführt, der im übergeordneten Wiederherstellungsplan definiert ist.
Beim Erstellen einer Filterbedingung gibt es vier optionale Attribute:
- GroupKind: die Kubernetes API-Gruppe und -Art für die Ressource
- Namespace: der Namespace für Namespace-bezogene Ressourcen
- Ressourcenname: der Name der Ressource
- Labels: Die Schlüssel/Wert-Paare, um Ressourcen basierend auf Kubernetes-Labels auszuwählen
Sie können eine Kombination der vorherigen vier Attribute verwenden, um eine Filterbedingung zu definieren. Wenn mehr als ein Attribut angegeben ist, werden die Beziehungen zwischen den Attributen als AND
betrachtet. Eine Ressource wird ausgewählt, wenn sie mit allen in der Filterbedingung definierten Attributen übereinstimmt. Sie können auch mehrere Filterbedingungen gleichzeitig angeben. Die Beziehungen zwischen verschiedenen Filterbedingungen sind OR
. Eine Ressource wird ausgewählt, wenn sie einer Filterbedingung aller bereitgestellten entspricht.
Hinweise
Planen Sie eine Reihe von Wiederherstellungen.
Wiederherstellung mit einem detaillierten Wiederherstellungsfilter erstellen
gcloud
YAML- oder JSON-Datei mit detaillierten Wiederherstellungsfiltern erstellen Sie können das folgende YAML-Beispiel verwenden.
exclusionFilters: - groupKind: resourceGroup: foo.io resourceKind: Bar name: name1 namespace: ns1 inclusionFilters: - labels: key1: value1 key2: value2
Erstellen Sie eine Wiederherstellung mit der detaillierten Wiederherstellungsfilterdatei.
gcloud beta container backup-restore restores create RESTORE \ --project=PROJECT_ID \ --location=LOCATION \ --restore-plan=RESTORE_PLAN \ --backup=BACKUP \ --filter-file=FILTER_FILE
Ersetzen Sie Folgendes:
RESTORE
ist der Name der Wiederherstellung, die Sie erstellen möchten.PROJECT_ID
ist die ID Ihres Google Cloud-Projekts.LOCATION
ist die Computing-Region des übergeordneten Wiederherstellungsplans.RESTORE_PLAN
ist der Name des übergeordneten Wiederherstellungsplans, von dem diese Wiederherstellung abgeleitet wird.BACKUP
: wiederherzustellende Sicherung. Diese muss sich in dem Sicherungsplan befinden, auf den der übergeordnete Wiederherstellungsplan alsprojects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN/backups/BACKUP
verweist.FILTER_FILE
ist der Pfad Ihrer detaillierten Wiederherstellungsfilter.
Eine vollständige Liste der Optionen finden Sie in der Dokumentation zu
gcloud beta container backup-restore restores create
.
Console
Verwenden Sie die folgende Anleitung, um eine detaillierte Wiederherstellung 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 den Tab Sicherungen.
Suchen Sie in der Liste der Sicherungen die Sicherung, die Sie wiederherstellen möchten, und klicken Sie auf Wiederherstellung einrichten.
Wählen Sie einen Wiederherstellungsplan aus der Liste der Tarife aus, die für diese Sicherung gelten.
Geben Sie einen Namen und optional eine Beschreibung für die Wiederherstellung ein.
Klicken Sie auf das Kästchen Detaillierte Wiederherstellung aktivieren.
Klicken Sie im Bereich Einschlussfilter oder Ausschlussfilter auf Filterbedingung hinzufügen.
Definieren Sie in der Option Filterbedingung wiederherstellen die Bedingung und klicken Sie auf Änderungen speichern.
Wenn Sie weitere Bedingungen hinzufügen möchten, klicken Sie noch einmal auf Filterbedingungen hinzufügen.
Klicken Sie auf Wiederherstellen.
Beispiele für detaillierte Wiederherstellungsfilterdateien
Die folgenden Beispiele werden im YAML-Format bereitgestellt, das von der Google Cloud CLI oder der Schritt-für-Schritt-Anleitung für die Google Cloud Console verwendet wird.
Einzelne Namespace-bezogene Ressource wiederherstellen
In diesem Beispiel wird eine Ressourcenart ConfigMap
mit dem Namen nginx-vars
im Namespace webserver
wiederhergestellt. Dabei wird die detaillierte Wiederherstellung InclusionFilters
verwendet, um die Ressource auszuwählen. Wenn Sie Ressourcen in der Gruppe core
auswählen möchten, verwenden Sie einen leeren String für resourceGroup
.
gcloud
inclusionFilters:
- groupKind:
resourceKind: ConfigMap
name: nginx-vars
namespace: webserver
Console
- Aktivieren Sie eine detaillierte Wiederherstellung, wie Sie es im Verfahren Wiederherstellung mit einem detaillierten Wiederherstellungsfilter erstellen getan haben.
- Klicken Sie im Bereich Einschlussfilter auf Filterbedingung hinzufügen.
- Geben Sie im Feld Ressourcenname den Wert
nginx-vars
ein. - Geben Sie im Feld Namespace den Wert
webserver
ein. - Geben Sie im Feld Objektart den Wert
ConfigMap
ein. - Klicken Sie auf Änderungen speichern.
Einzelne clusterbezogene Ressource ausschließen
In diesem Beispiel werden alle verfügbaren Ressourcen mit Ausnahme einer Ressource GroupKind storage.k8s.io/StorageClass
mit dem Namen sc1
wiederhergestellt. Dabei wird die detaillierte Wiederherstellung ExclusionFilters
verwendet, um die Ressource auszuschließen.
gcloud
exclusionFilters:
- groupKind:
resourceGroup: storage.k8s.io
resourceKind: StorageClass
name: sc1
Console
- Aktivieren Sie eine detaillierte Wiederherstellung, wie Sie es im Verfahren Wiederherstellung mit einem detaillierten Wiederherstellungsfilter erstellen getan haben.
- Klicken Sie im Bereich Ausschlussfilter auf Filterbedingung hinzufügen.
- Geben Sie im Feld Ressourcenname den Wert
sc1
ein. - Geben Sie im Feld API-Gruppe
storage.k8s.io
ein. - Geben Sie im Feld Objektart den Wert
StorageClass
ein. - Klicken Sie auf Änderungen speichern.
Ressourcen mit zwei Labels wiederherstellen
In diesem Beispiel werden Ressourcen mit den beiden Labels key1:value1
und key2:value2
mithilfe der detaillierten Wiederherstellung InclusionFilters
wiederhergestellt, um die Ressourcen auszuwählen.
gcloud
inclusionFilters:
- labels:
key1: value1
key2: value2
Console
- Aktivieren Sie eine detaillierte Wiederherstellung, wie Sie es im Verfahren Wiederherstellung mit einem detaillierten Wiederherstellungsfilter erstellen getan haben.
- Klicken Sie im Bereich Einschlussfilter auf Filterbedingung hinzufügen.
Im Abschnitt Labels:
- Klicken Sie auf Label hinzufügen.
- Geben Sie im Feld Schlüssel 1
key1
ein. - Geben Sie im Feld Wert 1 den Wert
value1
ein. - Klicken Sie auf Label hinzufügen.
- Geben Sie im Feld Schlüssel 2
key2
ein. - Geben Sie im Feld Wert 2 den Wert
value2
ein.
Klicken Sie auf Änderungen speichern.
Alle Ressourcen einiger GroupKinds ausschließen
In diesem Beispiel werden alle verfügbaren Ressourcen mit Ausnahme von GroupKind ConfigMap
und storage.k8s.io/StorageClass
wiederhergestellt. Dabei wird die detaillierte Wiederherstellung ExclusionFilters
verwendet, um diese beiden GroupKinds auszuschließen.
gcloud
exclusionFilters:
- groupKind:
resourceKind: ConfigMap
- groupKind:
resourceGroup: storage.k8s.io
resourceKind: StorageClass
Console
- Aktivieren Sie eine detaillierte Wiederherstellung, wie Sie es im Verfahren Wiederherstellung mit einem detaillierten Wiederherstellungsfilter erstellen getan haben.
- Klicken Sie im Bereich Ausschlussfilter auf Filterbedingung hinzufügen.
- Geben Sie im Feld Objektart den Wert
ConfigMap
ein. - Klicken Sie auf Änderungen speichern.
- Geben Sie im Feld Objektart den Wert
- Klicken Sie im Bereich Ausschlussfilter auf Filterbedingung hinzufügen.
- Geben Sie im Feld API-Gruppe
storage.k8s.io
ein. - Geben Sie im Feld Objektart den Wert
StorageClass
ein. - Klicken Sie auf Änderungen speichern.
- Geben Sie im Feld API-Gruppe