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.

Migrez vos applications à l'aide de Trident Protect

Contributeurs netapp-mwallis netapp-shwetav

Vous pouvez migrer vos applications entre clusters ou vers différentes classes de stockage en restaurant les données de sauvegarde.

Remarque Lorsque vous migrez une application, tous les crochets d'exécution configurés pour l'application sont migré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.

Opérations de sauvegarde et de restauration

Pour effectuer des opérations de sauvegarde et de restauration dans les scénarios suivants, vous pouvez automatiser des tâches de sauvegarde et de restauration spécifiques.

Clone dans le même cluster

Pour cloner une application sur le même cluster, créez un Snapshot ou sauvegardez et restaurez les données sur le même cluster.

Étapes
  1. Effectuez l'une des opérations suivantes :

  2. Sur le même cluster, effectuez l'une des opérations suivantes, selon que vous avez créé un snapshot ou une sauvegarde :

Cloner vers un autre cluster

Pour cloner une application sur un autre cluster (effectuez un clone entre clusters), créez une sauvegarde sur le cluster source, puis restaurez la sauvegarde sur un autre cluster. Assurez-vous que Trident Protect est installé sur le cluster de destination.

Remarque Vous pouvez répliquer une application entre différents clusters à l'aide de "Réplication SnapMirror".
Étapes
  1. "Créer une sauvegarde".

  2. Assurez-vous que la CR AppVault du compartiment de stockage objet contenant la sauvegarde a été configurée sur le cluster de destination.

  3. Sur le cluster de destination, "restaurez vos données à partir de la sauvegarde".

Migration des applications d'une classe de stockage vers une autre

Vous pouvez migrer des applications d’une classe de stockage vers une autre classe de stockage en restaurant une sauvegarde vers la classe de stockage de destination.

Par exemple (à l'exclusion des secrets de la CR de restauration) :

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
Restaurez l'instantané à l'aide d'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.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 <my-snapshot-name> -n trident-protect -o jsonpath='{.status.appArchivePath}'
    • Spec.appVaultRef: (required) le nom du AppVault dans lequel le contenu de l'instantané est stocké.

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

      ---
      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. Si vous avez besoin de sélectionner uniquement certaines ressources de l'application à restaurer, ajoutez un filtrage qui inclut ou exclut les ressources marquées d'é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 : un tableau d'objets resourceMatcher. Si vous définissez plusieurs éléments dans ce tableau, ils correspondent en tant qu'opération OU et les champs de chaque élément (groupe, type, version) correspondent en tant qu'opération ET.

        • 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-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. 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
Restaurez le snapshot à l'aide de 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>