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 wiederherstellen

Beitragende netapp-aruldeepa

Mit Trident Protect können Sie Ihre Anwendung aus einem Snapshot oder einer Sicherung wiederherstellen. Die Wiederherstellung aus einem vorhandenen Snapshot ist schneller, wenn die Anwendung im selben Cluster wiederhergestellt wird.

Hinweis
  • Wenn Sie eine Anwendung wiederherstellen, werden alle für die Anwendung konfigurierten Ausführungs-Hooks mit der Anwendung wiederhergestellt. Wenn ein Hook für die Nachbearbeitung der Wiederherstellung vorhanden ist, wird dieser automatisch im Rahmen des Wiederherstellungsvorgangs ausgeführt.

  • Die Wiederherstellung aus einer Sicherung in einen anderen Namespace oder in den ursprünglichen Namespace wird für Qtree-Volumes unterstützt. Die Wiederherstellung von einem Snapshot in einen anderen Namespace oder in den ursprünglichen Namespace wird für Qtree-Volumes jedoch nicht unterstützt.

  • Sie können erweiterte Einstellungen verwenden, um Wiederherstellungsvorgänge anzupassen. Weitere Informationen finden Sie unter "Verwenden Sie die erweiterten Wiederherstellungseinstellungen von Trident Protect".

Wiederherstellung aus einem Backup in einen anderen Namensraum

Wenn Sie eine Sicherung mithilfe eines BackupRestore CR in einen anderen Namespace wiederherstellen, stellt Trident protect die Anwendung in einem neuen Namespace wieder her und erstellt einen Anwendungs-CR für die wiederhergestellte Anwendung. Um die wiederhergestellte Anwendung zu schützen, erstellen Sie bei Bedarf Backups oder Snapshots oder legen Sie einen Schutzzeitplan fest.

Hinweis Das Wiederherstellen einer Sicherung in einem anderen Namensraum mit bereits vorhandenen Ressourcen ändert keine Ressourcen, die denselben Namen wie die Ressourcen in der Sicherung haben. Um alle Ressourcen im Backup wiederherzustellen, müssen Sie entweder den Ziel-Namespace löschen und neu erstellen oder das Backup in einem neuen Namespace wiederherstellen.
Bevor Sie beginnen

Stellen Sie sicher, dass die Gültigkeitsdauer des AWS-Sitzungstokens für alle länger andauernden S3-Wiederherstellungsvorgänge ausreichend ist. Wenn das Token während des Wiederherstellungsvorgangs abläuft, kann der Vorgang fehlschlagen.

  • Siehe die "AWS API-Dokumentation" Weitere Informationen zum Prüfen des Ablaufs des aktuellen Sitzungstokens finden Sie hier.

  • Siehe die "AWS IAM-Dokumentation" Weitere Informationen zu Anmeldeinformationen für AWS-Ressourcen finden Sie hier.

Hinweis Wenn Sie Sicherungen mit Kopia als Datenverschieber wiederherstellen, können Sie optional Anmerkungen im CR angeben oder die CLI verwenden, um das Verhalten des von Kopia verwendeten temporären Speichers zu steuern. Siehe die "Kopia-Dokumentation" Weitere Informationen zu den konfigurierbaren Optionen finden Sie hier. Verwenden Sie die tridentctl-protect create --help Befehl für weitere Informationen zum Festlegen von Annotationen mit der Trident protect CLI.
Verwenden Sie einen CR
Schritte
  1. Erstellen Sie die benutzerdefinierte Ressourcendatei (CR-Datei) und benennen Sie sie. trident-protect-backup-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 Sicherungsinhalte gespeichert sind. Sie können folgenden Befehl verwenden, um diesen Pfad zu finden:

      kubectl get backups <BACKUP_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'
    • spec.appVaultRef: (Erforderlich) Der Name des AppVaults, in dem die Sicherungsinhalte 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: BackupRestore
      metadata:
        name: my-cr-name
        namespace: my-destination-namespace
      spec:
        appArchivePath: my-backup-path
        appVaultRef: appvault-name
        namespaceMapping: [{"source": "my-source-namespace", "destination": "my-destination-namespace"}]
  3. (Optional) Falls Sie nur bestimmte Ressourcen der Anwendung für die Wiederherstellung auswählen möchten, fügen Sie Filter hinzu, die Ressourcen mit bestimmten Bezeichnungen ein- oder ausschließen:

    Hinweis Trident Protect wählt einige Ressourcen automatisch aufgrund ihrer Beziehung zu den von Ihnen ausgewählten Ressourcen aus. Wenn Sie beispielsweise eine persistente Volume-Claim-Ressource auswählen und diese einen zugehörigen Pod hat, stellt Trident Protect auch den zugehörigen Pod wieder her.
    • resourceFilter.resourceSelectionCriteria: (Für die Filterung erforderlich) Verwenden Sie Include oder 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-backup-restore-cr.yaml Datei mit den korrekten Werten, CR anwenden:

    kubectl apply -f trident-protect-backup-restore-cr.yaml
Verwenden der CLI
Schritte
  1. Stellen Sie die Sicherung in einem anderen Namespace wieder her und ersetzen Sie die Werte in Klammern durch Informationen aus Ihrer Umgebung. 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 backuprestore <my_restore_name> \
    --backup <backup_namespace>/<backup_to_restore> \
    --namespace-mapping <source_to_destination_namespace_mapping> \
    -n <application_namespace>

Wiederherstellung aus einer Sicherung in den ursprünglichen Namensraum

Sie können eine Sicherung jederzeit im ursprünglichen Namensraum wiederherstellen.

Bevor Sie beginnen

Stellen Sie sicher, dass die Gültigkeitsdauer des AWS-Sitzungstokens für alle länger andauernden S3-Wiederherstellungsvorgänge ausreichend ist. Wenn das Token während des Wiederherstellungsvorgangs abläuft, kann der Vorgang fehlschlagen.

  • Siehe die "AWS API-Dokumentation" Weitere Informationen zum Prüfen des Ablaufs des aktuellen Sitzungstokens finden Sie hier.

  • Siehe die "AWS IAM-Dokumentation" Weitere Informationen zu Anmeldeinformationen für AWS-Ressourcen finden Sie hier.

Hinweis Wenn Sie Sicherungen mit Kopia als Datenverschieber wiederherstellen, können Sie optional Anmerkungen im CR angeben oder die CLI verwenden, um das Verhalten des von Kopia verwendeten temporären Speichers zu steuern. Siehe die "Kopia-Dokumentation" Weitere Informationen zu den konfigurierbaren Optionen finden Sie hier. Verwenden Sie die tridentctl-protect create --help Befehl für weitere Informationen zum Festlegen von Annotationen mit der Trident protect CLI.
Verwenden Sie einen CR
Schritte
  1. Erstellen Sie die benutzerdefinierte Ressourcendatei (CR-Datei) und benennen Sie sie. trident-protect-backup-ipr-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 Sicherungsinhalte gespeichert sind. Sie können folgenden Befehl verwenden, um diesen Pfad zu finden:

      kubectl get backups <BACKUP_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'
    • spec.appVaultRef: (Erforderlich) Der Name des AppVaults, in dem die Sicherungsinhalte gespeichert sind.

      Beispiel:

    ---
    apiVersion: protect.trident.netapp.io/v1
    kind: BackupInplaceRestore
    metadata:
      name: my-cr-name
      namespace: my-app-namespace
    spec:
      appArchivePath: my-backup-path
      appVaultRef: appvault-name
  3. (Optional) Falls Sie nur bestimmte Ressourcen der Anwendung für die Wiederherstellung auswählen möchten, fügen Sie Filter hinzu, die Ressourcen mit bestimmten Bezeichnungen ein- oder ausschließen:

    Hinweis Trident Protect wählt einige Ressourcen automatisch aufgrund ihrer Beziehung zu den von Ihnen ausgewählten Ressourcen aus. Wenn Sie beispielsweise eine persistente Volume-Claim-Ressource auswählen und diese einen zugehörigen Pod hat, stellt Trident Protect auch den zugehörigen Pod wieder her.
    • resourceFilter.resourceSelectionCriteria: (Für die Filterung erforderlich) Verwenden Sie Include oder 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-backup-ipr-cr.yaml Datei mit den korrekten Werten, CR anwenden:

    kubectl apply -f trident-protect-backup-ipr-cr.yaml
Verwenden der CLI
Schritte
  1. Stellen Sie die Sicherung im ursprünglichen Namensraum wieder her und ersetzen Sie die Werte in Klammern durch Informationen aus Ihrer Umgebung. Der backup Das Argument verwendet einen Namespace und einen Backup-Namen im folgenden Format: <namespace>/<name> . Beispiel:

    tridentctl-protect create backupinplacerestore <my_restore_name> \
    --backup <namespace/backup_to_restore> \
    -n <application_namespace>

Wiederherstellung aus einem Backup auf einem anderen Cluster

Sie können eine Sicherung auf einem anderen Cluster wiederherstellen, falls es ein Problem mit dem ursprünglichen Cluster gibt.

Hinweis Wenn Sie Sicherungen mit Kopia als Datenverschieber wiederherstellen, können Sie optional Anmerkungen im CR angeben oder die CLI verwenden, um das Verhalten des von Kopia verwendeten temporären Speichers zu steuern. Siehe die "Kopia-Dokumentation" Weitere Informationen zu den konfigurierbaren Optionen finden Sie hier. Verwenden Sie die tridentctl-protect create --help Befehl für weitere Informationen zum Festlegen von Annotationen mit der Trident protect CLI.
Bevor Sie beginnen

Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:

  • Auf dem Zielcluster ist Trident Protect installiert.

  • Der Zielcluster hat Zugriff auf den Bucket-Pfad desselben AppVault wie der Quellcluster, in dem das Backup gespeichert ist.

  • Stellen Sie sicher, dass Ihre lokale Umgebung beim Ausführen des AppVault CR eine Verbindung zum im AppVault CR definierten Objektspeicher-Bucket herstellen kann. tridentctl-protect get appvaultcontent Befehl. Wenn Netzwerkeinschränkungen den Zugriff verhindern, führen Sie stattdessen die Trident Protect-CLI innerhalb eines Pods auf dem Zielcluster aus.

  • Stellen Sie sicher, dass die Gültigkeitsdauer des AWS-Sitzungstokens für alle länger andauernden Wiederherstellungsvorgänge ausreichend ist. Wenn das Token während des Wiederherstellungsvorgangs abläuft, kann der Vorgang fehlschlagen.

    • Siehe die "AWS API-Dokumentation" Weitere Informationen zum Prüfen des Ablaufs des aktuellen Sitzungstokens finden Sie hier.

    • Siehe die "AWS-Dokumentation" Weitere Informationen zu Anmeldeinformationen für AWS-Ressourcen finden Sie hier.

Schritte
  1. Überprüfen Sie die Verfügbarkeit des AppVault CR auf dem Zielcluster mithilfe des Trident Protect CLI-Plugins:

    tridentctl-protect get appvault --context <destination_cluster_name>
    Hinweis Stellen Sie sicher, dass der für die Anwendungswiederherstellung vorgesehene Namespace auf dem Zielcluster vorhanden ist.
  2. Zeigen Sie die Sicherungsinhalte des verfügbaren AppVaults vom Zielcluster an:

    tridentctl-protect get appvaultcontent <appvault_name> \
    --show-resources backup \
    --show-paths \
    --context <destination_cluster_name>

    Durch Ausführen dieses Befehls werden die verfügbaren Backups im AppVault angezeigt, einschließlich ihrer Ursprungscluster, zugehörigen Anwendungsnamen, Zeitstempel und Archivpfade.

    Beispielausgabe:

    +-------------+-----------+--------+-----------------+--------------------------+-------------+
    |   CLUSTER   |    APP    |  TYPE  |      NAME       |        TIMESTAMP         |    PATH     |
    +-------------+-----------+--------+-----------------+--------------------------+-------------+
    | production1 | wordpress | backup | wordpress-bkup-1| 2024-10-30 08:37:40 (UTC)| backuppath1 |
    | production1 | wordpress | backup | wordpress-bkup-2| 2024-10-30 08:37:40 (UTC)| backuppath2 |
    +-------------+-----------+--------+-----------------+--------------------------+-------------+
  3. Die Anwendung mithilfe des AppVault-Namens und des Archivpfads im Zielcluster wiederherstellen:

Verwenden Sie einen CR
  1. Erstellen Sie die benutzerdefinierte Ressourcendatei (CR-Datei) und benennen Sie sie. trident-protect-backup-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.appVaultRef: (Erforderlich) Der Name des AppVaults, in dem die Sicherungsinhalte gespeichert sind.

    • spec.appArchivePath: Der Pfad innerhalb von AppVault, in dem die Sicherungsinhalte gespeichert sind. Sie können folgenden Befehl verwenden, um diesen Pfad zu finden:

      kubectl get backups <BACKUP_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'
      Hinweis Falls BackupRestore CR nicht verfügbar ist, können Sie den in Schritt 2 genannten Befehl verwenden, um den Sicherungsinhalt anzuzeigen.
    • 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.

      Beispiel:

    apiVersion: protect.trident.netapp.io/v1
    kind: BackupRestore
    metadata:
      name: my-cr-name
      namespace: my-destination-namespace
    spec:
      appVaultRef: appvault-name
      appArchivePath: my-backup-path
      namespaceMapping: [{"source": "my-source-namespace", "destination": "my-destination-namespace"}]
  3. Nachdem Sie die trident-protect-backup-restore-cr.yaml Datei mit den korrekten Werten, CR anwenden:

    kubectl apply -f trident-protect-backup-restore-cr.yaml
Verwenden der CLI
  1. Verwenden Sie den folgenden Befehl, um die Anwendung wiederherzustellen, und ersetzen Sie dabei die Werte in Klammern durch Informationen aus Ihrer Umgebung. Das Argument namespace-mapping verwendet durch Doppelpunkte getrennte Namensräume, um Quell-Namensräume den richtigen Ziel-Namensräumen im Format source1:dest1,source2:dest2 zuzuordnen. Beispiel:

    tridentctl-protect create backuprestore <restore_name> \
    --namespace-mapping <source_to_destination_namespace_mapping> \
    --appvault <appvault_name> \
    --path <backup_path> \
    --context <destination_cluster_name> \
    -n <application_namespace>

Wiederherstellung aus einem Snapshot in einen anderen Namespace

Sie können Daten aus einem Snapshot mithilfe einer benutzerdefinierten Ressourcendatei (CR-Datei) entweder in einem anderen Namensraum oder im ursprünglichen Quellnamensraum wiederherstellen. Wenn Sie einen Snapshot mithilfe eines SnapshotRestore CR in einem anderen Namespace wiederherstellen, stellt Trident protect die Anwendung in einem neuen Namespace wieder her und erstellt einen Anwendungs-CR für die wiederhergestellte Anwendung. Um die wiederhergestellte Anwendung zu schützen, erstellen Sie bei Bedarf Backups oder Snapshots oder legen Sie einen Schutzzeitplan fest.

Hinweis SnapshotRestore unterstützt die spec.storageClassMapping Attribut, jedoch nur dann, wenn die Quell- und Zielspeicherklassen das gleiche Speicher-Backend verwenden. Wenn Sie versuchen, einen Wiederherstellungszustand wiederherzustellen StorageClass Wenn ein anderes Speichersystem verwendet wird, schlägt die Wiederherstellung fehl.
Bevor Sie beginnen

Stellen Sie sicher, dass die Gültigkeitsdauer des AWS-Sitzungstokens für alle länger andauernden S3-Wiederherstellungsvorgänge ausreichend ist. Wenn das Token während des Wiederherstellungsvorgangs abläuft, kann der Vorgang fehlschlagen.

  • Siehe die "AWS API-Dokumentation" Weitere Informationen zum Prüfen des Ablaufs des aktuellen Sitzungstokens finden Sie hier.

  • Siehe die "AWS IAM-Dokumentation" Weitere Informationen zu Anmeldeinformationen für AWS-Ressourcen finden Sie hier.

Verwenden Sie einen CR
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.appVaultRef: (Erforderlich) Der Name des AppVaults, in dem die Snapshot-Inhalte gespeichert sind.

    • 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 <SNAPHOT_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'
    • 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: my-app-namespace
      spec:
        appVaultRef: appvault-name
        appArchivePath: my-snapshot-path
        namespaceMapping: [{"source": "my-source-namespace", "destination": "my-destination-namespace"}]
  3. (Optional) Falls Sie nur bestimmte Ressourcen der Anwendung für die Wiederherstellung auswählen möchten, fügen Sie Filter hinzu, die Ressourcen mit bestimmten Bezeichnungen ein- oder ausschließen:

    Hinweis Trident Protect wählt einige Ressourcen automatisch aufgrund ihrer Beziehung zu den von Ihnen ausgewählten Ressourcen aus. Wenn Sie beispielsweise eine persistente Volume-Claim-Ressource auswählen und diese einen zugehörigen Pod hat, stellt Trident Protect auch den zugehörigen Pod wieder her.
    • resourceFilter.resourceSelectionCriteria: (Für die Filterung erforderlich) Verwenden Sie Include oder 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
Verwenden der CLI
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> \
    -n <application_namespace>

Wiederherstellung aus einem Snapshot in den ursprünglichen Namensraum

Sie können jederzeit einen Snapshot im ursprünglichen Namensraum wiederherstellen.

Bevor Sie beginnen

Stellen Sie sicher, dass die Gültigkeitsdauer des AWS-Sitzungstokens für alle länger andauernden S3-Wiederherstellungsvorgänge ausreichend ist. Wenn das Token während des Wiederherstellungsvorgangs abläuft, kann der Vorgang fehlschlagen.

  • Siehe die "AWS API-Dokumentation" Weitere Informationen zum Prüfen des Ablaufs des aktuellen Sitzungstokens finden Sie hier.

  • Siehe die "AWS IAM-Dokumentation" Weitere Informationen zu Anmeldeinformationen für AWS-Ressourcen finden Sie hier.

Verwenden Sie einen CR
Schritte
  1. Erstellen Sie die benutzerdefinierte Ressourcendatei (CR-Datei) und benennen Sie sie. trident-protect-snapshot-ipr-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.appVaultRef: (Erforderlich) Der Name des AppVaults, in dem die Snapshot-Inhalte gespeichert sind.

    • 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 <SNAPSHOT_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'
      ---
      apiVersion: protect.trident.netapp.io/v1
      kind: SnapshotInplaceRestore
      metadata:
        name: my-cr-name
        namespace: my-app-namespace
      spec:
        appVaultRef: appvault-name
          appArchivePath: my-snapshot-path
  3. (Optional) Falls Sie nur bestimmte Ressourcen der Anwendung für die Wiederherstellung auswählen möchten, fügen Sie Filter hinzu, die Ressourcen mit bestimmten Bezeichnungen ein- oder ausschließen:

    Hinweis Trident Protect wählt einige Ressourcen automatisch aufgrund ihrer Beziehung zu den von Ihnen ausgewählten Ressourcen aus. Wenn Sie beispielsweise eine persistente Volume-Claim-Ressource auswählen und diese einen zugehörigen Pod hat, stellt Trident Protect auch den zugehörigen Pod wieder her.
    • resourceFilter.resourceSelectionCriteria: (Für die Filterung erforderlich) Verwenden Sie Include oder 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-ipr-cr.yaml Datei mit den korrekten Werten, CR anwenden:

    kubectl apply -f trident-protect-snapshot-ipr-cr.yaml
Verwenden der CLI
Schritte
  1. Stellen Sie den Snapshot im ursprünglichen Namespace wieder her und ersetzen Sie die Werte in Klammern durch Informationen aus Ihrer Umgebung. Beispiel:

    tridentctl-protect create snapshotinplacerestore <my_restore_name> \
    --snapshot <snapshot_to_restore> \
    -n <application_namespace>

Überprüfen Sie den Status eines Wiederherstellungsvorgangs

Sie können die Befehlszeile verwenden, um den Status eines Wiederherstellungsvorgangs zu überprüfen, der gerade läuft, abgeschlossen ist oder fehlgeschlagen ist.

Schritte
  1. Verwenden Sie den folgenden Befehl, um den Status des Wiederherstellungsvorgangs abzurufen. Ersetzen Sie dabei die Werte in Klammern durch Informationen aus Ihrer Umgebung:

    kubectl get backuprestore -n <namespace_name> <my_restore_cr_name> -o jsonpath='{.status}'