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.

Migrer les applications à l'aide de Trident Protect

Contributeurs netapp-aruldeepa

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

Remarque Lors de la migration d'une application, tous les points d'exécution configurés pour celle-ci sont migrés avec elle. Si un point d'entrée 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 spécifiques de sauvegarde et de restauration.

Cloner sur le même cluster

Pour cloner une application sur le même cluster, créez un instantané ou une sauvegarde 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 ayez créé un instantané ou une sauvegarde :

Cloner sur un cluster différent

Pour cloner une application sur un cluster différent (effectuer un clonage inter-clusters), créez une sauvegarde sur le cluster source, puis restaurez la sauvegarde sur un cluster différent. Assurez-vous que Trident Protect est installé sur le cluster de destination.

Remarque Vous pouvez répliquer une application entre différents clusters en utilisant"Réplication SnapMirror" .
Étapes
  1. "Créer une sauvegarde".

  2. Assurez-vous que la ressource personnalisée AppVault pour le compartiment de stockage d'objets 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" .

Migrer des applications d'une classe de stockage à une autre classe de stockage

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 (en excluant les secrets de la restauration 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
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 : (Obligatoire) Le nom de cette ressource personnalisée ; choisissez un nom unique et pertinent pour votre environnement.

    • spec.appArchivePath : Le chemin d’accès dans AppVault où le contenu des instantanés est stocké. 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: (Obligatoire) Le nom de l'AppVault où le contenu de l'instantané est stocké.

    • spec.namespaceMapping : Le mappage de l’espace de noms source de l’opération de restauration vers l’espace de noms de destination. Remplacer my-source-namespace et my-destination-namespace avec 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 souhaitez sélectionner uniquement certaines ressources de l'application à restaurer, vous pouvez ajouter un filtrage qui inclut ou exclut les ressources marquées d'étiquettes particulières :

    • resourceFilter.resourceSelectionCriteria : (Requis pour le filtrage) Utiliser include or exclude 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 (groupe, type, 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 metadata.name de Kubernetes de la ressource à filtrer.

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

        • resourceMatchers[].labelSelectors : (Facultatif) Chaîne de sélection d'étiquette dans le champ metadata.name de la ressource Kubernetes, telle que définie 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 trident-protect-snapshot-restore-cr.yaml fichier contenant les valeurs correctes, appliquer le CR :

    kubectl apply -f trident-protect-snapshot-restore-cr.yaml
Restaurez l'instantané à l'aide de l'interface de ligne de commande (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.

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

    • Le namespace-mapping L'argument utilise des espaces de noms séparés par deux-points pour associer 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>