Anwendungen mit Trident Protect migrieren
Sie können Ihre Anwendungen zwischen Clustern oder in verschiedene Speicherklassen migrieren, indem Sie Sicherungsdaten wiederherstellen.
|
|
Bei der Migration einer Anwendung werden alle für die Anwendung konfigurierten Ausführungs-Hooks mit der Anwendung migriert. Wenn ein Hook für die Nachbearbeitung der Wiederherstellung vorhanden ist, wird dieser automatisch im Rahmen des Wiederherstellungsvorgangs ausgeführt. |
Sicherungs- und Wiederherstellungsvorgänge
Um Sicherungs- und Wiederherstellungsvorgänge für die folgenden Szenarien durchzuführen, können Sie bestimmte Sicherungs- und Wiederherstellungsaufgaben automatisieren.
Klonen auf denselben Cluster
Um eine Anwendung auf denselben Cluster zu klonen, erstellen Sie einen Snapshot oder eine Sicherung und stellen Sie die Daten auf demselben Cluster wieder her.
-
Führen Sie einen der folgenden Schritte aus:
-
Führen Sie auf demselben Cluster einen der folgenden Schritte aus, je nachdem, ob Sie einen Snapshot oder eine Sicherung erstellt haben:
Klonen auf anderen Cluster
Um eine Anwendung auf einen anderen Cluster zu klonen (clusterübergreifendes Klonen), erstellen Sie eine Sicherung auf dem Quellcluster und stellen Sie diese Sicherung anschließend auf dem anderen Cluster wieder her. Stellen Sie sicher, dass Trident Protect auf dem Zielcluster installiert ist.
|
|
Sie können eine Anwendung zwischen verschiedenen Clustern replizieren, indem Sie"SnapMirror -Replikation" . |
-
Stellen Sie sicher, dass der AppVault CR für den Objektspeicher-Bucket, der das Backup enthält, auf dem Zielcluster konfiguriert wurde.
-
Auf dem Zielcluster,"Stellen Sie Ihre Daten aus der Sicherung wieder her." .
Anwendungen von einer Speicherklasse in eine andere Speicherklasse migrieren
Sie können Anwendungen von einer Speicherklasse in eine andere Speicherklasse migrieren, indem Sie eine Sicherung in der Zielspeicherklasse wiederherstellen.
Zum Beispiel (ohne die Geheimnisse aus dem Wiederherstellungs-CR):
apiVersion: protect.trident.netapp.io/v1
kind: SnapshotRestore
metadata:
name: "${snapshotRestoreCRName}"
spec:
appArchivePath: "${snapshotArchivePath}"
appVaultRef: "${appVaultCRName}"
namespaceMapping:
- destination: "${destinationNamespace}"
source: "${sourceNamespace}"
storageClassMapping:
- destination: "${destinationStorageClass}"
source: "${sourceStorageClass}"
resourceFilter:
resourceMatchers:
kind: Secret
version: v1
resourceSelectionCriteria: exclude
-
Erstellen Sie die benutzerdefinierte Ressourcendatei (CR-Datei) und benennen Sie sie.
trident-protect-snapshot-restore-cr.yaml. -
Konfigurieren Sie in der von Ihnen erstellten Datei die folgenden Attribute:
-
metadata.name: (Erforderlich) Der Name dieser benutzerdefinierten Ressource; wählen Sie einen eindeutigen und aussagekräftigen Namen für Ihre Umgebung.
-
spec.appArchivePath: Der Pfad innerhalb von AppVault, in dem die Snapshot-Inhalte gespeichert sind. Sie können folgenden Befehl verwenden, um diesen Pfad zu finden:
kubectl get snapshots <my-snapshot-name> -n trident-protect -o jsonpath='{.status.appArchivePath}' -
spec.appVaultRef: (Erforderlich) Der Name des AppVaults, in dem die Snapshot-Inhalte gespeichert sind.
-
spec.namespaceMapping: Die Zuordnung des Quell-Namespace der Wiederherstellungsoperation zum Ziel-Namespace. Ersetzen
my-source-namespaceUndmy-destination-namespacemit Informationen aus Ihrer Umgebung.--- apiVersion: protect.trident.netapp.io/v1 kind: SnapshotRestore metadata: name: my-cr-name namespace: trident-protect spec: appArchivePath: my-snapshot-path appVaultRef: appvault-name namespaceMapping: [{"source": "my-source-namespace", "destination": "my-destination-namespace"}]
-
-
Optional können Sie, falls Sie nur bestimmte Ressourcen der Anwendung für die Wiederherstellung auswählen möchten, Filter hinzufügen, die Ressourcen mit bestimmten Bezeichnungen ein- oder ausschließen:
-
resourceFilter.resourceSelectionCriteria: (Für die Filterung erforderlich) Verwenden Sie
include or excludeEine in resourceMatchers definierte Ressource ein- oder ausschließen. Fügen Sie die folgenden resourceMatchers-Parameter hinzu, um die ein- oder auszuschließenden Ressourcen zu definieren:-
resourceFilter.resourceMatchers: Ein Array von resourceMatcher-Objekten. Wenn Sie mehrere Elemente in diesem Array definieren, werden diese per OR-Verknüpfung abgeglichen, und die Felder innerhalb jedes Elements (Gruppe, Art, Version) werden per AND-Verknüpfung abgeglichen.
-
resourceMatchers[].group: (Optional) Gruppe der zu filternden Ressourcen.
-
resourceMatchers[].kind: (Optional) Art der zu filternden Ressource.
-
resourceMatchers[].version: (Optional) Version der zu filternden Ressource.
-
resourceMatchers[].names: (Optional) Namen im Kubernetes metadata.name Feld der zu filternden Ressource.
-
resourceMatchers[].namespaces: (Optional) Namespaces im Kubernetes metadata.name-Feld der zu filternden Ressource.
-
resourceMatchers[].labelSelectors: (Optional) Label-Selektorzeichenfolge im Kubernetes-Metadatenfeld „name“ der Ressource, wie in der Dokumentation definiert. "Kubernetes-Dokumentation" . Zum Beispiel:
"trident.netapp.io/os=linux".Beispiel:
-
-
spec: resourceFilter: resourceSelectionCriteria: "include" resourceMatchers: - group: my-resource-group-1 kind: my-resource-kind-1 version: my-resource-version-1 names: ["my-resource-names"] namespaces: ["my-resource-namespaces"] labelSelectors: ["trident.netapp.io/os=linux"] - group: my-resource-group-2 kind: my-resource-kind-2 version: my-resource-version-2 names: ["my-resource-names"] namespaces: ["my-resource-namespaces"] labelSelectors: ["trident.netapp.io/os=linux"] -
-
Nachdem Sie die
trident-protect-snapshot-restore-cr.yamlDatei mit den korrekten Werten, CR anwenden:kubectl apply -f trident-protect-snapshot-restore-cr.yaml
-
Stellen Sie den Snapshot in einem anderen Namespace wieder her und ersetzen Sie die Werte in Klammern durch Informationen aus Ihrer Umgebung.
-
Der
snapshotDas Argument verwendet einen Namespace und einen Snapshot-Namen im folgenden Format:<namespace>/<name>. -
Der
namespace-mappingDas Argument verwendet durch Doppelpunkte getrennte Namensräume, um Quell-Namensräume den korrekten Ziel-Namensräumen im folgenden Format zuzuordnen:source1:dest1,source2:dest2.Beispiel:
tridentctl-protect create snapshotrestore <my_restore_name> --snapshot <namespace/snapshot_to_restore> --namespace-mapping <source_to_destination_namespace_mapping> -