Skip to main content
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

Contributeurs

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

Remarque Lorsque vous restaurez une application, tous les crochets d'exécution configurés pour l'application sont restaurés avec l'application. Si un hook d'exécution post-restauration est présent, il s'exécute automatiquement dans le cadre de l'opération de restauration.

Restauration d'une sauvegarde vers un autre espace de noms

Lorsque vous restaurez une sauvegarde dans un espace de noms différent à l'aide d'une sauvegarde CR BackupRestore, Trident Protect restaure l'application dans un nouvel espace de noms, mais l'application restaurée n'est pas automatiquement protégée par Trident Protect. Pour protéger l'application restaurée, vous devez créer une application CR pour l'application restaurée afin qu'elle soit protégée par Trident Protect.

Remarque La restauration d'une sauvegarde dans un espace de noms différent avec des ressources existantes ne modifie aucune ressource qui partage des noms avec ceux 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.
Utiliser une 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: (required) le nom de cette ressource personnalisée; choisissez un nom unique et sensible pour votre environnement.

    • Spec.appArchivePath : chemin d'accès dans AppVault où sont stockés le contenu de la sauvegarde. 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: (required) Nom de l'AppVault où sont stockés le contenu de la sauvegarde.

    • spec.namespaceMapping: mappage de l'espace de noms source de l'opération de restauration sur l'espace de noms de destination. Remplacez my-source-namespace et my-destination-namespace par des informations provenant de votre environnement.

    • Spec.storageClassMapping : mappage de la classe de stockage source de l'opération de restauration à la classe de stockage de destination. Remplacez destinationStorageClass et sourceStorageClass par des informations provenant de votre environnement.

      apiVersion: protect.trident.netapp.io/v1o
      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"}]
        storageClassMapping:
          destination: "${destinationStorageClass}"
          source: "${sourceStorageClass}"
  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 :

    • ResourceFilter.resourceSelectionCriteria: (Requis pour le filtrage) utilisez include or 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 : tableau des objets resourceMatcher.

        • ResourceMatchers[].group: (Optional) Groupe de la ressource à filtrer.

        • ResourceMatchers[].kind: (Optional) Type de la ressource à filtrer.

        • ResourceMatchers[].version: (Optional) version de la ressource à filtrer.

        • ResourceMatchers[].names: (Optional) noms dans le champ Kubernetes metadata.name de la ressource à filtrer.

        • ResourceMatchers[].namespaces: (Optional) Namespaces dans le champ Kubernetes metadata.name de la ressource à filtrer.

        • ResourceMatchers[].labelSelectors: (Optional) chaîne de sélecteur de libellé dans le champ Kubernetes metadata.name de la ressource, comme défini dans le "Documentation Kubernetes". Par exemple : "trident.netapp.io/os=linux".

          Par exemple :

    spec:
      resourceFilter:
        resourceSelectionCriteria: "include"
        resourceMatchers:
          group: my-resource-group
          kind: my-resource-kind
          version: my-resource-version
          names: ["my-resource-names"]
          namespaces: ["my-resource-namespaces"]
          labelSelectors: ["trident.netapp.io/os=linux"]
  4. Une fois que vous avez rempli le trident-protect-backup-restore-cr.yaml fichier avec les valeurs correctes, appliquez la CR :

    kubectl apply -f trident-protect-backup-restore-cr.yaml
Utiliser l'interface de ligne de commande
Étapes
  1. Restaurez la sauvegarde dans un espace de noms différent, en remplaçant les valeurs entre parenthèses par les informations de votre environnement. L' namespace-mapping`argument utilise des espaces de noms séparés par deux-points pour mapper les espaces de noms source aux espaces de noms de destination corrects dans le 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>

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

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

Utiliser une 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: (required) le nom de cette ressource personnalisée; choisissez un nom unique et sensible pour votre environnement.

    • Spec.appArchivePath : chemin d'accès dans AppVault où sont stockés le contenu de la sauvegarde. 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: (required) Nom de l'AppVault où sont stockés le contenu de la sauvegarde.

      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 :

    • ResourceFilter.resourceSelectionCriteria: (Requis pour le filtrage) utilisez include or 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 : tableau des objets resourceMatcher.

        • ResourceMatchers[].group: (Optional) Groupe de la ressource à filtrer.

        • ResourceMatchers[].kind: (Optional) Type de la ressource à filtrer.

        • ResourceMatchers[].version: (Optional) version de la ressource à filtrer.

        • ResourceMatchers[].names: (Optional) noms dans le champ Kubernetes metadata.name de la ressource à filtrer.

        • ResourceMatchers[].namespaces: (Optional) Namespaces dans le champ Kubernetes metadata.name de la ressource à filtrer.

        • ResourceMatchers[].labelSelectors: (Optional) chaîne de sélecteur de libellé dans le champ Kubernetes metadata.name de la ressource, comme défini dans le "Documentation Kubernetes". Par exemple : "trident.netapp.io/os=linux".

          Par exemple :

    spec:
      resourceFilter:
        resourceSelectionCriteria: "include"
        resourceMatchers:
          group: my-resource-group
          kind: my-resource-kind
          version: my-resource-version
          names: ["my-resource-names"]
          namespaces: ["my-resource-namespaces"]
          labelSelectors: ["trident.netapp.io/os=linux"]
  4. Une fois que vous avez rempli le trident-protect-backup-ipr-cr.yaml fichier avec les valeurs correctes, appliquez la CR :

    kubectl apply -f trident-protect-backup-ipr-cr.yaml
Utiliser l'interface de ligne de commande
Étapes
  1. Restaurez la sauvegarde dans l'espace de noms d'origine en remplaçant les valeurs entre parenthèses par les informations de votre environnement. L' backup`argument utilise un nom d'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>

Restauration d'un snapshot vers un autre espace de noms

Vous pouvez restaurer les données d'un instantané à l'aide d'un fichier de ressource personnalisée (CR) dans un espace de noms différent ou dans l'espace de noms source d'origine. Lorsque vous restaurez un snapshot sur un autre espace de noms à l'aide d'un CR SnapshotRestore, Trident Protect restaure l'application dans un nouvel espace de noms, mais l'application restaurée n'est pas automatiquement protégée par Trident Protect. Pour protéger l'application restaurée, vous devez créer une application CR pour l'application restaurée afin qu'elle soit protégée par Trident Protect.

Utiliser une 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: (required) le nom de cette ressource personnalisée; choisissez un nom unique et sensible pour votre environnement.

    • Spec.appVaultRef: (required) le nom du AppVault dans lequel le contenu de l'instantané est stocké.

    • Spec.appArchivePath : chemin d'accès dans AppVault où sont stockés le contenu de l'instantané. 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: mappage de l'espace de noms source de l'opération de restauration sur l'espace de noms de destination. Remplacez my-source-namespace et my-destination-namespace par des informations provenant de votre environnement.

    • Spec.storageClassMapping : mappage de la classe de stockage source de l'opération de restauration à la classe de stockage de destination. Remplacez destinationStorageClass et sourceStorageClass par des informations provenant 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"}]
        storageClassMapping:
          destination: "${destinationStorageClass}"
          source: "${sourceStorageClass}"
  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 :

    • ResourceFilter.resourceSelectionCriteria: (Requis pour le filtrage) utilisez include or 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 : tableau des objets resourceMatcher.

        • ResourceMatchers[].group: (Optional) Groupe de la ressource à filtrer.

        • ResourceMatchers[].kind: (Optional) Type de la ressource à filtrer.

        • ResourceMatchers[].version: (Optional) version de la ressource à filtrer.

        • ResourceMatchers[].names: (Optional) noms dans le champ Kubernetes metadata.name de la ressource à filtrer.

        • ResourceMatchers[].namespaces: (Optional) Namespaces dans le champ Kubernetes metadata.name de la ressource à filtrer.

        • ResourceMatchers[].labelSelectors: (Optional) chaîne de sélecteur de libellé dans le champ Kubernetes metadata.name de la ressource, comme défini dans le "Documentation Kubernetes". Par exemple : "trident.netapp.io/os=linux".

          Par exemple :

    spec:
      resourceFilter:
        resourceSelectionCriteria: "include"
        resourceMatchers:
          group: my-resource-group
          kind: my-resource-kind
          version: my-resource-version
          names: ["my-resource-names"]
          namespaces: ["my-resource-namespaces"]
          labelSelectors: ["trident.netapp.io/os=linux"]
  4. Une fois que vous avez rempli le trident-protect-snapshot-restore-cr.yaml fichier avec les valeurs correctes, appliquez la CR :

    kubectl apply -f trident-protect-snapshot-restore-cr.yaml
Utiliser l'interface de ligne de commande
Étapes
  1. Restaurez l'instantané dans un autre espace de noms, en remplaçant les valeurs entre parenthèses par les informations de votre environnement.

    • L' snapshot`argument utilise un nom d'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 deux-points pour mapper les espaces de noms source aux espaces de noms de destination corrects dans le 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>

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

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

Utiliser une 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: (required) le nom de cette ressource personnalisée; choisissez un nom unique et sensible pour votre environnement.

    • Spec.appVaultRef: (required) le nom du AppVault dans lequel le contenu de l'instantané est stocké.

    • Spec.appArchivePath : chemin d'accès dans AppVault où sont stockés le contenu de l'instantané. 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 :

    • ResourceFilter.resourceSelectionCriteria: (Requis pour le filtrage) utilisez include or 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 : tableau des objets resourceMatcher.

        • ResourceMatchers[].group: (Optional) Groupe de la ressource à filtrer.

        • ResourceMatchers[].kind: (Optional) Type de la ressource à filtrer.

        • ResourceMatchers[].version: (Optional) version de la ressource à filtrer.

        • ResourceMatchers[].names: (Optional) noms dans le champ Kubernetes metadata.name de la ressource à filtrer.

        • ResourceMatchers[].namespaces: (Optional) Namespaces dans le champ Kubernetes metadata.name de la ressource à filtrer.

        • ResourceMatchers[].labelSelectors: (Optional) chaîne de sélecteur de libellé dans le champ Kubernetes metadata.name de la ressource, comme défini dans le "Documentation Kubernetes". Par exemple : "trident.netapp.io/os=linux".

          Par exemple :

    spec:
      resourceFilter:
        resourceSelectionCriteria: "include"
        resourceMatchers:
          group: my-resource-group
          kind: my-resource-kind
          version: my-resource-version
          names: ["my-resource-names"]
          namespaces: ["my-resource-namespaces"]
          labelSelectors: ["trident.netapp.io/os=linux"]
  4. Une fois que vous avez rempli le trident-protect-snapshot-ipr-cr.yaml fichier avec les valeurs correctes, appliquez la CR :

    kubectl apply -f trident-protect-snapshot-ipr-cr.yaml
Utiliser l'interface de ligne de commande
Étapes
  1. Restaurez l'instantané dans l'espace de noms d'origine en remplaçant les valeurs entre parenthèses par les informations de votre environnement. Par exemple :

    tridentctl protect create snapshotinplacerestore <my_restore_name> --snapshot <snapshot_to_restore>

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

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

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

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