Skip to main content
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Anwendungen mit Trident Protect migrieren

Beitragende netapp-aruldeepa

Sie können Ihre Anwendungen zwischen Clustern oder in verschiedene Speicherklassen migrieren, indem Sie Sicherungsdaten wiederherstellen.

Hinweis 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.

Schritte
  1. Führen Sie einen der folgenden Schritte aus:

  2. 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.

Hinweis Sie können eine Anwendung zwischen verschiedenen Clustern replizieren, indem Sie"SnapMirror -Replikation" .
Schritte
  1. "Erstellen Sie ein Backup".

  2. Stellen Sie sicher, dass der AppVault CR für den Objektspeicher-Bucket, der das Backup enthält, auf dem Zielcluster konfiguriert wurde.

  3. 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
Stellen Sie den Snapshot mithilfe einer CR wieder her.
Schritte
  1. Erstellen Sie die benutzerdefinierte Ressourcendatei (CR-Datei) und benennen Sie sie. trident-protect-snapshot-restore-cr.yaml .

  2. 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-namespace Und my-destination-namespace mit 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"}]
  3. 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 exclude Eine 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"]
  4. Nachdem Sie die trident-protect-snapshot-restore-cr.yaml Datei mit den korrekten Werten, CR anwenden:

    kubectl apply -f trident-protect-snapshot-restore-cr.yaml
Stellen Sie den Snapshot mithilfe der Befehlszeile wieder her.
Schritte
  1. Stellen Sie den Snapshot in einem anderen Namespace wieder her und ersetzen Sie die Werte in Klammern durch Informationen aus Ihrer Umgebung.

    • Der snapshot Das Argument verwendet einen Namespace und einen Snapshot-Namen im folgenden Format: <namespace>/<name> .

    • Der namespace-mapping Das 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>