Wiederherstellen einer App aus einem Backup
In diesem Abschnitt wird beschrieben, wie Sie Apps aus einer Sicherung wiederherstellen.
Voraussetzungen
Um eine Wiederherstellung aus einer Sicherung durchzuführen, gehen wir davon aus, dass der Namespace, in dem die App vorhanden war, versehentlich gelöscht wurde.
Wiederherstellen im selben Namespace
Um die Wiederherstellung aus der gerade erstellten Sicherung durchzuführen, müssen wir eine benutzerdefinierte Wiederherstellungsressource (CR) erstellen. Wir müssen ihm einen Namen geben, den Namen des Backups angeben, aus dem wir wiederherstellen möchten, und die RestorePVs auf „true“ setzen. Weitere Parameter können wie in der Abbildung gezeigt eingestellt werden."Dokumentation" . Klicken Sie auf die Schaltfläche „Erstellen“.
apiVersion: velero.io/v1 kind: Restore apiVersion: velero.io/v1 metadata: name: restore namespace: openshift-adp spec: backupName: backup-postgresql-ontaps3 restorePVs: true
Wenn die Phase als abgeschlossen angezeigt wird, können Sie sehen, dass die App in den Zustand zurückversetzt wurde, in dem sie sich zum Zeitpunkt der Erstellung des Snapshots befand. Die App wird im selben Namespace wiederhergestellt.
Wiederherstellen in einem anderen Namespace
Um die App in einem anderen Namespace wiederherzustellen, können Sie in der YAML-Definition des Restore CR ein NamespaceMapping angeben.
Die folgende YAML-Beispieldatei erstellt eine Wiederherstellungs-CR, um eine App und ihren persistenten Speicher aus dem PostgreSQL-Namespace in den neuen Namespace „postgresql-restored“ wiederherzustellen.
apiVersion: velero.io/v1 kind: Restore metadata: name: restore-to-different-ns namespace: openshift-adp spec: backupName: backup-postgresql-ontaps3 restorePVs: true includedNamespaces: - postgresql namespaceMapping: postgresql: postgresql-restored
Wenn die Phase als abgeschlossen angezeigt wird, können Sie sehen, dass die App in den Zustand zurückversetzt wurde, in dem sie sich zum Zeitpunkt der Erstellung des Snapshots befand. Die App wird in einem anderen Namespace wiederhergestellt, wie im YAML angegeben.
Wiederherstellen in einer anderen Speicherklasse
Velero bietet eine allgemeine Möglichkeit, die Ressourcen während der Wiederherstellung durch Angabe von JSON-Patches zu ändern. Die JSON-Patches werden auf die Ressourcen angewendet, bevor sie wiederhergestellt werden. Die JSON-Patches werden in einer Konfigurationszuordnung angegeben und auf die Konfigurationszuordnung wird im Wiederherstellungsbefehl verwiesen. Mit dieser Funktion können Sie die Wiederherstellung mithilfe einer anderen Speicherklasse durchführen.
Im folgenden Beispiel verwendet die App während der Bereitstellung ontap-nas als Speicherklasse für ihre persistenten Volumes. Es wird ein Backup der App mit dem Namen backup-postgresql-ontaps3 erstellt.
Simulieren Sie einen Verlust der App, indem Sie die App deinstallieren.
Um die VM mit einer anderen Speicherklasse wiederherzustellen, beispielsweise der Speicherklasse ontap-nas-eco, müssen Sie die folgenden zwei Schritte ausführen:
Schritt 1
Erstellen Sie wie folgt eine Konfigurationszuordnung (Konsole) im OpenShift-ADP-Namespace: Füllen Sie die Details wie im Screenshot gezeigt aus: Namespace auswählen: OpenShift-ADP Name: Change-Ontap-SC (kann ein beliebiger Name sein) Schlüssel: Change-Ontap-SC-Config.yaml: Wert:
version: v1 resourceModifierRules: - conditions: groupResource: persistentvolumeclaims resourceNameRegex: "data-postgresql*" namespaces: - postgresql patches: - operation: replace path: "/spec/storageClassName" value: "ontap-nas-eco"
Das resultierende Konfigurationszuordnungsobjekt sollte folgendermaßen aussehen (CLI):
Diese Konfigurationszuordnung wendet die Ressourcenmodifikatorregel an, wenn die Wiederherstellung erstellt wird. Es wird ein Patch angewendet, um den Speicherklassennamen für alle persistenten Volume-Ansprüche, die mit rhel beginnen, durch ontap-nas-eco zu ersetzen.
Schritt 2
Um die VM wiederherzustellen, verwenden Sie den folgenden Befehl aus der Velero-CLI:
#velero restore create restore1 --from-backup backup1 --resource-modifier-configmap change-storage-class-config -n openshift-adp
Die App wird im selben Namespace wiederhergestellt, in dem die persistenten Volume-Ansprüche mit der Speicherklasse ontap-nas-eco erstellt wurden.