Skip to main content
Une version plus récente de ce produit est disponible.
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Restaurez les applications à l'aide de Trident Protect

Vous pouvez utiliser Trident Protect pour restaurer votre application à partir d'un instantané ou d'une sauvegarde. La restauration à partir d'un instantané existant sera plus rapide lors de la restauration de l'application sur le même cluster.

Remarque
  • Lors de la restauration d'une application, tous les points d'exécution configurés pour l'application sont restaurés avec l'application. Si un point d'exécution post-restauration est présent, il s'exécute automatiquement dans le cadre de l'opération de restauration.

  • La restauration à partir d'une sauvegarde vers un espace de noms différent ou vers l'espace de noms d'origine est prise en charge pour les volumes qtree. Cependant, la restauration à partir d'un instantané vers un espace de noms différent ou vers l'espace de noms d'origine n'est pas prise en charge pour les volumes qtree.

  • Vous pouvez utiliser les paramètres avancés pour personnaliser les opérations de restauration. Pour en savoir plus, consultez "Utilisez les paramètres de restauration avancés de Trident Protect".

Restaurer à partir d'une sauvegarde vers un espace de noms différent

Lorsque vous restaurez une sauvegarde dans un espace de noms différent à l'aide d'une BackupRestore CR, Trident Protect restaure l'application dans un nouvel espace de noms et crée un CR d'application pour l'application restaurée. Pour protéger l'application restaurée, créez des sauvegardes ou des instantanés à la demande, ou établissez une planification de protection.

Remarque
  • La restauration d'une sauvegarde dans un espace de noms différent contenant des ressources existantes ne modifiera pas les ressources portant le même nom que celles de la sauvegarde. Pour restaurer toutes les ressources de la sauvegarde, supprimez et recréez l'espace de noms cible ou restaurez la sauvegarde dans un nouvel espace de noms.

  • Lors de l'utilisation d'un CR pour restaurer dans un nouvel espace de noms, vous devez créer manuellement l'espace de noms de destination avant d'appliquer le CR. Trident Protect crée automatiquement les espaces de noms uniquement lors de l'utilisation de la CLI.

Avant de commencer

Assurez-vous que la durée de validité du jeton de session AWS est suffisante pour toute opération de restauration s3 de longue durée. Si le jeton expire pendant l'opération de restauration, l'opération peut échouer.

  • Consultez la "Documentation AWS API" pour plus d'informations sur la vérification de l'expiration du jeton de session actuel.

  • Consultez la "Documentation AWS IAM" pour plus d'informations sur les identifiants relatifs aux ressources AWS.

Remarque Lorsque vous restaurez des sauvegardes en utilisant Kopia comme moteur de déplacement de données, vous pouvez éventuellement spécifier des annotations dans le CR ou en utilisant la CLI pour contrôler le comportement du stockage temporaire utilisé par Kopia. Reportez-vous à l' "Documentation Kopia" pour plus d'informations sur les options que vous pouvez configurer. Utilisez la commande tridentctl-protect create --help pour plus d'informations sur la spécification des annotations avec la CLI Trident Protect.
Utilisez un CR
Étapes
  1. Créez le fichier de ressource personnalisée (CR) et nommez-le trident-protect-backup-restore-cr.yaml.

  2. Dans le fichier que vous avez créé, configurez les attributs suivants :

    • metadata.name: (Obligatoire) Le nom de cette ressource personnalisée; choisissez un nom unique et pertinent pour votre environnement.

    • spec.appArchivePath : Le chemin à l'intérieur de AppVault où le contenu de la sauvegarde est stocké. Vous pouvez utiliser la commande suivante pour trouver ce chemin :

      kubectl get backups <BACKUP_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'
    • spec.appVaultRef : (Obligatoire) Le nom du AppVault où les contenus de sauvegarde sont stockés.

    • spec.namespaceMapping : La correspondance de l’espace de noms source de l’opération de restauration avec l’espace de noms de destination. Remplacez my-source-namespace et my-destination-namespace par les informations de votre environnement.

      ---
      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. (Facultatif) Si vous devez sélectionner uniquement certaines ressources de l'application à restaurer, ajoutez un filtrage qui inclut ou exclut les ressources marquées avec des étiquettes particulières :

    Remarque Trident Protect sélectionne automatiquement certaines ressources en fonction de leur relation avec les ressources que vous sélectionnez. Par exemple, si vous sélectionnez une ressource de type revendication de volume persistant et qu'elle possède un pod associé, Trident Protect restaurera également le pod associé.
    • resourceFilter.resourceSelectionCriteria : (Obligatoire pour le filtrage) Utilisez Include ou Exclude pour inclure ou exclure une ressource définie dans resourceMatchers. Ajoutez les paramètres resourceMatchers suivants pour définir les ressources à inclure ou à exclure :

      • resourceFilter.resourceMatchers : Un tableau d’objets resourceMatcher. Si vous définissez plusieurs éléments dans ce tableau, ils correspondent selon une opération OU, et les champs à l’intérieur de chaque élément (group, kind, version) correspondent selon une opération ET.

        • resourceMatchers[].group: (Optionnel) Groupe de la ressource à filtrer.

        • resourceMatchers[].kind: (Optionnel) Type de ressource à filtrer.

        • resourceMatchers[].version: (Optionnel) Version de la ressource à filtrer.

        • resourceMatchers[].names: (Optionnel) Noms dans le champ Kubernetes metadata.name de la ressource à filtrer.

        • resourceMatchers[].namespaces: (Optionnel) Espaces de noms dans le champ metadata.name de Kubernetes de la ressource à filtrer.

        • resourceMatchers[].labelSelectors : (Optionnel) Chaîne de sélection d'étiquette dans le champ metadata.name de la ressource Kubernetes tel que défini dans le "Documentation Kubernetes". Par exemple : "trident.netapp.io/os=linux".

          Par exemple :

    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. Après avoir rempli le fichier trident-protect-backup-restore-cr.yaml avec les valeurs correctes, appliquez le CR :

    kubectl apply -f trident-protect-backup-restore-cr.yaml
Utilisez la ligne de commandes (CLI)
Étapes
  1. Restaurez la sauvegarde dans un espace de noms différent, en remplaçant les valeurs entre crochets par les informations de votre environnement. L’ namespace-mapping`argument utilise des espaces de noms séparés par des deux-points pour faire correspondre les espaces de noms source aux espaces de noms de destination corrects au format `source1:dest1,source2:dest2. Par exemple :

    tridentctl-protect create backuprestore <my_restore_name> \
    --backup <backup_namespace>/<backup_to_restore> \
    --namespace-mapping <source_to_destination_namespace_mapping> \
    -n <application_namespace>

Restaurer à partir d'une sauvegarde vers l'espace de noms d'origine

Vous pouvez restaurer une sauvegarde dans l'espace de noms d'origine à tout moment.

Avant de commencer

Assurez-vous que la durée de validité du jeton de session AWS est suffisante pour toute opération de restauration s3 de longue durée. Si le jeton expire pendant l'opération de restauration, l'opération peut échouer.

  • Consultez la "Documentation AWS API" pour plus d'informations sur la vérification de l'expiration du jeton de session actuel.

  • Consultez la "Documentation AWS IAM" pour plus d'informations sur les identifiants relatifs aux ressources AWS.

Remarque Lorsque vous restaurez des sauvegardes en utilisant Kopia comme moteur de déplacement de données, vous pouvez éventuellement spécifier des annotations dans le CR ou en utilisant la CLI pour contrôler le comportement du stockage temporaire utilisé par Kopia. Reportez-vous à l' "Documentation Kopia" pour plus d'informations sur les options que vous pouvez configurer. Utilisez la commande tridentctl-protect create --help pour plus d'informations sur la spécification des annotations avec la CLI Trident Protect.
Utilisez un CR
Étapes
  1. Créez le fichier de ressource personnalisée (CR) et nommez-le trident-protect-backup-ipr-cr.yaml.

  2. Dans le fichier que vous avez créé, configurez les attributs suivants :

    • metadata.name: (Obligatoire) Le nom de cette ressource personnalisée; choisissez un nom unique et pertinent pour votre environnement.

    • spec.appArchivePath : Le chemin à l'intérieur de AppVault où le contenu de la sauvegarde est stocké. Vous pouvez utiliser la commande suivante pour trouver ce chemin :

      kubectl get backups <BACKUP_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'
    • spec.appVaultRef : (Obligatoire) Le nom du AppVault où les contenus de sauvegarde sont stockés.

      Par exemple :

    ---
    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. (Facultatif) Si vous devez sélectionner uniquement certaines ressources de l'application à restaurer, ajoutez un filtrage qui inclut ou exclut les ressources marquées avec des étiquettes particulières :

    Remarque Trident Protect sélectionne automatiquement certaines ressources en fonction de leur relation avec les ressources que vous sélectionnez. Par exemple, si vous sélectionnez une ressource de type revendication de volume persistant et qu'elle possède un pod associé, Trident Protect restaurera également le pod associé.
    • resourceFilter.resourceSelectionCriteria : (Obligatoire pour le filtrage) Utilisez Include ou Exclude pour inclure ou exclure une ressource définie dans resourceMatchers. Ajoutez les paramètres resourceMatchers suivants pour définir les ressources à inclure ou à exclure :

      • resourceFilter.resourceMatchers : Un tableau d’objets resourceMatcher. Si vous définissez plusieurs éléments dans ce tableau, ils correspondent selon une opération OU, et les champs à l’intérieur de chaque élément (group, kind, version) correspondent selon une opération ET.

        • resourceMatchers[].group: (Optionnel) Groupe de la ressource à filtrer.

        • resourceMatchers[].kind: (Optionnel) Type de ressource à filtrer.

        • resourceMatchers[].version: (Optionnel) Version de la ressource à filtrer.

        • resourceMatchers[].names: (Optionnel) Noms dans le champ Kubernetes metadata.name de la ressource à filtrer.

        • resourceMatchers[].namespaces: (Optionnel) Espaces de noms dans le champ metadata.name de Kubernetes de la ressource à filtrer.

        • resourceMatchers[].labelSelectors : (Optionnel) Chaîne de sélection d'étiquette dans le champ metadata.name de la ressource Kubernetes tel que défini dans le "Documentation Kubernetes". Par exemple : "trident.netapp.io/os=linux".

          Par exemple :

    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. Après avoir rempli le fichier trident-protect-backup-ipr-cr.yaml avec les valeurs correctes, appliquez le CR :

    kubectl apply -f trident-protect-backup-ipr-cr.yaml
Utilisez la ligne de commandes (CLI)
Étapes
  1. Restaurez la sauvegarde dans l'espace de noms d'origine, en remplaçant les valeurs entre crochets par les informations de votre environnement. L' backup`argument utilise un espace de noms et un nom de sauvegarde au format `<namespace>/<name>. Par exemple :

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

Restaurer à partir d'une sauvegarde vers un cluster différent

Vous pouvez restaurer une sauvegarde sur un cluster différent en cas de problème avec le cluster d'origine.

Remarque
  • Lorsque vous restaurez des sauvegardes en utilisant Kopia comme moteur de déplacement de données, vous pouvez éventuellement spécifier des annotations dans le CR ou en utilisant la CLI pour contrôler le comportement du stockage temporaire utilisé par Kopia. Reportez-vous à l' "Documentation Kopia" pour plus d'informations sur les options que vous pouvez configurer. Utilisez la commande tridentctl-protect create --help pour plus d'informations sur la spécification des annotations avec la CLI Trident Protect.

  • Lors de l'utilisation d'un CR pour restaurer dans un nouvel espace de noms, vous devez créer manuellement l'espace de noms de destination avant d'appliquer le CR. Trident Protect crée automatiquement les espaces de noms uniquement lors de l'utilisation de la CLI.

Avant de commencer

Assurez-vous que les conditions préalables suivantes sont remplies :

  • Le cluster de destination a Trident Protect installé.

  • Le cluster de destination a accès au chemin du compartiment du même AppVault que le cluster source, où la sauvegarde est stockée.

  • Assurez-vous que votre environnement local peut se connecter au compartiment de stockage d'objets défini dans le CR AppVault lors de l'exécution de la commande tridentctl-protect get appvaultcontent. Si des restrictions réseau empêchent l'accès, exécutez la CLI Trident Protect depuis un pod sur le cluster de destination à la place.

  • Assurez-vous que la durée de validité du jeton de session AWS soit suffisante pour toute opération de restauration de longue durée. Si le jeton expire pendant l'opération de restauration, l'opération peut échouer.

    • Consultez la "Documentation AWS API" pour plus d'informations sur la vérification de l'expiration du jeton de session actuel.

    • Consultez la "Documentation AWS" pour plus d'informations sur les identifiants relatifs aux ressources AWS.

Étapes
  1. Vérifiez la disponibilité de la AppVault CR sur le cluster de destination à l'aide du plugin CLI Trident Protect :

    tridentctl-protect get appvault --context <destination_cluster_name>
    Remarque Assurez-vous que l'espace de noms destiné à la restauration de l'application existe sur le cluster de destination.
  2. Consultez le contenu de la sauvegarde disponible de AppVault depuis le cluster de destination :

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

    L'exécution de cette commande affiche les sauvegardes disponibles dans le AppVault, y compris leurs clusters d'origine, les noms des applications correspondantes, les horodatages et les chemins d'accès aux archives.

    Exemple de sortie :

    +-------------+-----------+--------+-----------------+--------------------------+-------------+
    |   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. Restaurez l'application sur le cluster de destination en utilisant le nom AppVault et le chemin d'accès à l'archive :

Utilisez un CR
  1. Créez le fichier de ressource personnalisée (CR) et nommez-le trident-protect-backup-restore-cr.yaml.

  2. Dans le fichier que vous avez créé, configurez les attributs suivants :

    • metadata.name: (Obligatoire) Le nom de cette ressource personnalisée; choisissez un nom unique et pertinent pour votre environnement.

    • spec.appVaultRef : (Obligatoire) Le nom du AppVault où les contenus de sauvegarde sont stockés.

    • spec.appArchivePath : Le chemin à l'intérieur de AppVault où le contenu de la sauvegarde est stocké. Vous pouvez utiliser la commande suivante pour trouver ce chemin :

      kubectl get backups <BACKUP_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'
      Remarque Si le BackupRestore CR n'est pas disponible, vous pouvez utiliser la commande mentionnée à l'étape 2 pour afficher le contenu de la sauvegarde.
    • spec.namespaceMapping : La correspondance de l’espace de noms source de l’opération de restauration avec l’espace de noms de destination. Remplacez my-source-namespace et my-destination-namespace par les informations de votre environnement.

      Par exemple :

    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. Après avoir rempli le fichier trident-protect-backup-restore-cr.yaml avec les valeurs correctes, appliquez le CR :

    kubectl apply -f trident-protect-backup-restore-cr.yaml
Utilisez la ligne de commandes (CLI)
  1. Utilisez la commande suivante pour restaurer l'application, en remplaçant les valeurs entre crochets par les informations de votre environnement. L'argument namespace-mapping utilise des espaces de noms séparés par des deux-points pour associer les espaces de noms source aux espaces de noms de destination correspondants, au format source1:dest1,source2:dest2. Par exemple :

    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>

Restaurer à partir d'un instantané vers un espace de noms différent

Vous pouvez restaurer des données à partir d'un instantané à l'aide d'un fichier de ressource personnalisé (CR), soit vers un autre espace de noms, soit vers l'espace de noms source d'origine. Lorsque vous restaurez un instantané vers un autre espace de noms à l'aide d'un SnapshotRestore CR, Trident Protect restaure l'application dans un nouvel espace de noms et crée un CR d'application pour l'application restaurée. Pour protéger l'application restaurée, créez des sauvegardes ou des instantanés à la demande, ou définissez une planification de protection.

Remarque
  • SnapshotRestore prend en charge l' spec.storageClassMapping`attribut, mais uniquement lorsque les classes de stockage source et de destination utilisent le même système de stockage. Si vous tentez de restaurer vers une classe de stockage `StorageClass qui utilise un système de stockage différent, l'opération de restauration échouera.

  • Lors de l'utilisation d'un CR pour restaurer dans un nouvel espace de noms, vous devez créer manuellement l'espace de noms de destination avant d'appliquer le CR. Trident Protect crée automatiquement les espaces de noms uniquement lors de l'utilisation de la CLI.

Avant de commencer

Assurez-vous que la durée de validité du jeton de session AWS est suffisante pour toute opération de restauration s3 de longue durée. Si le jeton expire pendant l'opération de restauration, l'opération peut échouer.

  • Consultez la "Documentation AWS API" pour plus d'informations sur la vérification de l'expiration du jeton de session actuel.

  • Consultez la "Documentation AWS IAM" pour plus d'informations sur les identifiants relatifs aux ressources AWS.

Utilisez un CR
Étapes
  1. Créez le fichier de ressource personnalisée (CR) et nommez-le trident-protect-snapshot-restore-cr.yaml.

  2. Dans le fichier que vous avez créé, configurez les attributs suivants :

    • metadata.name: (Obligatoire) Le nom de cette ressource personnalisée; choisissez un nom unique et pertinent pour votre environnement.

    • spec.appVaultRef : (Obligatoire) Le nom du AppVault où le contenu de l’instantané est stocké.

    • spec.appArchivePath : Le chemin à l'intérieur de AppVault où les contenus de l’instantané sont stockés. Vous pouvez utiliser la commande suivante pour trouver ce chemin :

      kubectl get snapshots <SNAPHOT_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'
    • spec.namespaceMapping : La correspondance de l’espace de noms source de l’opération de restauration avec l’espace de noms de destination. Remplacez my-source-namespace et my-destination-namespace par les informations de votre environnement.

      ---
      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. (Facultatif) Si vous devez sélectionner uniquement certaines ressources de l'application à restaurer, ajoutez un filtrage qui inclut ou exclut les ressources marquées avec des étiquettes particulières :

    Remarque Trident Protect sélectionne automatiquement certaines ressources en fonction de leur relation avec les ressources que vous sélectionnez. Par exemple, si vous sélectionnez une ressource de type revendication de volume persistant et qu'elle possède un pod associé, Trident Protect restaurera également le pod associé.
    • resourceFilter.resourceSelectionCriteria : (Obligatoire pour le filtrage) Utilisez Include ou Exclude pour inclure ou exclure une ressource définie dans resourceMatchers. Ajoutez les paramètres resourceMatchers suivants pour définir les ressources à inclure ou à exclure :

      • resourceFilter.resourceMatchers : Un tableau d’objets resourceMatcher. Si vous définissez plusieurs éléments dans ce tableau, ils correspondent selon une opération OU, et les champs à l’intérieur de chaque élément (group, kind, version) correspondent selon une opération ET.

        • resourceMatchers[].group: (Optionnel) Groupe de la ressource à filtrer.

        • resourceMatchers[].kind: (Optionnel) Type de ressource à filtrer.

        • resourceMatchers[].version: (Optionnel) Version de la ressource à filtrer.

        • resourceMatchers[].names: (Optionnel) Noms dans le champ Kubernetes metadata.name de la ressource à filtrer.

        • resourceMatchers[].namespaces: (Optionnel) Espaces de noms dans le champ metadata.name de Kubernetes de la ressource à filtrer.

        • resourceMatchers[].labelSelectors : (Optionnel) Chaîne de sélection d'étiquette dans le champ metadata.name de la ressource Kubernetes tel que défini dans le "Documentation Kubernetes". Par exemple : "trident.netapp.io/os=linux".

          Par exemple :

    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. Après avoir rempli le fichier trident-protect-snapshot-restore-cr.yaml avec les valeurs correctes, appliquez le CR :

    kubectl apply -f trident-protect-snapshot-restore-cr.yaml
Utilisez la ligne de commandes (CLI)
Étapes
  1. Restaurez l’instantané dans un espace de noms différent, en remplaçant les valeurs entre crochets par les informations de votre environnement.

    • L’ snapshot`argument utilise un espace de noms et un nom d’instantané au format `<namespace>/<name>.

    • L' namespace-mapping`argument utilise des espaces de noms séparés par des deux-points pour mapper les espaces de noms source aux espaces de noms de destination corrects au format `source1:dest1,source2:dest2.

      Par exemple :

    tridentctl-protect create snapshotrestore <my_restore_name> \
    --snapshot <namespace/snapshot_to_restore> \
    --namespace-mapping <source_to_destination_namespace_mapping> \
    -n <application_namespace>

Restaurer à partir d'un instantané vers l'espace de noms d'origine

Vous pouvez restaurer un instantané dans l'espace de noms d'origine à tout moment.

Remarque Si votre application utilise plusieurs espaces de noms et que ces espaces de noms contiennent des PVC portant le même nom, les opérations de restauration d'instantané (sur place et vers un nouvel espace de noms) ne fonctionneront pas correctement. Tous les volumes restaurés auront les mêmes données au lieu des données correctes pour chaque espace de noms. Utilisez la restauration de sauvegarde plutôt que la restauration d'instantané, ou effectuez une mise à niveau vers la version 26.02 ou ultérieure qui corrige ce problème.
Avant de commencer

Assurez-vous que la durée de validité du jeton de session AWS est suffisante pour toute opération de restauration s3 de longue durée. Si le jeton expire pendant l'opération de restauration, l'opération peut échouer.

  • Consultez la "Documentation AWS API" pour plus d'informations sur la vérification de l'expiration du jeton de session actuel.

  • Consultez la "Documentation AWS IAM" pour plus d'informations sur les identifiants relatifs aux ressources AWS.

Utilisez un CR
Étapes
  1. Créez le fichier de ressource personnalisée (CR) et nommez-le trident-protect-snapshot-ipr-cr.yaml.

  2. Dans le fichier que vous avez créé, configurez les attributs suivants :

    • metadata.name: (Obligatoire) Le nom de cette ressource personnalisée; choisissez un nom unique et pertinent pour votre environnement.

    • spec.appVaultRef : (Obligatoire) Le nom du AppVault où le contenu de l’instantané est stocké.

    • spec.appArchivePath : Le chemin à l'intérieur de AppVault où les contenus de l’instantané sont stockés. Vous pouvez utiliser la commande suivante pour trouver ce chemin :

      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. (Facultatif) Si vous devez sélectionner uniquement certaines ressources de l'application à restaurer, ajoutez un filtrage qui inclut ou exclut les ressources marquées avec des étiquettes particulières :

    Remarque Trident Protect sélectionne automatiquement certaines ressources en fonction de leur relation avec les ressources que vous sélectionnez. Par exemple, si vous sélectionnez une ressource de type revendication de volume persistant et qu'elle possède un pod associé, Trident Protect restaurera également le pod associé.
    • resourceFilter.resourceSelectionCriteria : (Obligatoire pour le filtrage) Utilisez Include ou Exclude pour inclure ou exclure une ressource définie dans resourceMatchers. Ajoutez les paramètres resourceMatchers suivants pour définir les ressources à inclure ou à exclure :

      • resourceFilter.resourceMatchers : Un tableau d’objets resourceMatcher. Si vous définissez plusieurs éléments dans ce tableau, ils correspondent selon une opération OU, et les champs à l’intérieur de chaque élément (group, kind, version) correspondent selon une opération ET.

        • resourceMatchers[].group: (Optionnel) Groupe de la ressource à filtrer.

        • resourceMatchers[].kind: (Optionnel) Type de ressource à filtrer.

        • resourceMatchers[].version: (Optionnel) Version de la ressource à filtrer.

        • resourceMatchers[].names: (Optionnel) Noms dans le champ Kubernetes metadata.name de la ressource à filtrer.

        • resourceMatchers[].namespaces: (Optionnel) Espaces de noms dans le champ metadata.name de Kubernetes de la ressource à filtrer.

        • resourceMatchers[].labelSelectors : (Optionnel) Chaîne de sélection d'étiquette dans le champ metadata.name de la ressource Kubernetes tel que défini dans le "Documentation Kubernetes". Par exemple : "trident.netapp.io/os=linux".

          Par exemple :

    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. Après avoir rempli le fichier trident-protect-snapshot-ipr-cr.yaml avec les valeurs correctes, appliquez le CR :

    kubectl apply -f trident-protect-snapshot-ipr-cr.yaml
Utilisez la ligne de commandes (CLI)
Étapes
  1. Restaurez l'instantané dans l'espace de noms d'origine, en remplaçant les valeurs entre crochets par les informations de votre environnement. Par exemple :

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

Vérifiez l'état d'une opération de restauration

Vous pouvez utiliser la ligne de commandes pour vérifier l'état d'une opération de restauration qui est en cours, terminée ou ayant échoué.

Étapes
  1. Utilisez la commande suivante pour récupérer l'état de l'opération de restauration, en remplaçant les valeurs entre crochets par les informations de votre environnement :

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