Skip to main content
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Migrare le applicazioni utilizzando Trident Protect

Collaboratori netapp-aruldeepa

È possibile migrare le applicazioni tra cluster o in classi di archiviazione diverse ripristinando i dati di backup.

Nota Quando si esegue la migrazione di un'applicazione, tutti gli hook di esecuzione configurati per l'applicazione vengono migrati insieme all'applicazione. Se è presente un hook di esecuzione post-ripristino, questo viene eseguito automaticamente come parte dell'operazione di ripristino.

Operazioni di backup e ripristino

Per eseguire operazioni di backup e ripristino per i seguenti scenari, è possibile automatizzare attività di backup e ripristino specifiche.

Clona nello stesso cluster

Per clonare un'applicazione nello stesso cluster, creare uno snapshot o un backup e ripristinare i dati nello stesso cluster.

Passi
  1. Eseguire una delle seguenti operazioni:

  2. Sullo stesso cluster, esegui una delle seguenti operazioni, a seconda che tu abbia creato uno snapshot o un backup:

Clona in cluster diversi

Per clonare un'applicazione su un cluster diverso (eseguire un clone tra cluster), creare un backup sul cluster di origine, quindi ripristinare il backup su un cluster diverso. Assicurarsi che Trident Protect sia installato sul cluster di destinazione.

Nota È possibile replicare un'applicazione tra cluster diversi utilizzando"Replica SnapMirror" .
Passi
  1. "Crea un backup".

  2. Assicurarsi che il CR di AppVault per il bucket di archiviazione degli oggetti che contiene il backup sia stato configurato sul cluster di destinazione.

  3. Sul cluster di destinazione,"ripristina i tuoi dati dal backup" .

Migrare le applicazioni da una classe di archiviazione a un'altra classe di archiviazione

È possibile migrare le applicazioni da una classe di archiviazione a una diversa ripristinando un backup nella classe di archiviazione di destinazione.

Ad esempio (escludendo i segreti dal ripristino 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
Ripristinare lo snapshot utilizzando un CR
Passi
  1. Crea il file di risorse personalizzate (CR) e assegnagli un nome trident-protect-snapshot-restore-cr.yaml .

  2. Nel file creato, configura i seguenti attributi:

    • metadata.name: (Obbligatorio) Il nome di questa risorsa personalizzata; scegli un nome univoco e sensato per il tuo ambiente.

    • spec.appArchivePath: il percorso all'interno di AppVault in cui sono archiviati i contenuti dello snapshot. Per trovare questo percorso puoi usare il seguente comando:

      kubectl get snapshots <my-snapshot-name> -n trident-protect -o jsonpath='{.status.appArchivePath}'
    • spec.appVaultRef: (Obbligatorio) Nome dell'AppVault in cui sono archiviati i contenuti dello snapshot.

    • spec.namespaceMapping: la mappatura dello spazio dei nomi di origine dell'operazione di ripristino allo spazio dei nomi di destinazione. Sostituire my-source-namespace E my-destination-namespace con informazioni provenienti dal tuo ambiente.

      ---
      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. Facoltativamente, se è necessario selezionare solo determinate risorse dell'applicazione da ripristinare, aggiungere un filtro che includa o escluda le risorse contrassegnate con etichette particolari:

    • resourceFilter.resourceSelectionCriteria: (obbligatorio per il filtraggio) Usa include or exclude per includere o escludere una risorsa definita in resourceMatchers. Aggiungere i seguenti parametri resourceMatchers per definire le risorse da includere o escludere:

      • resourceFilter.resourceMatchers: un array di oggetti resourceMatcher. Se si definiscono più elementi in questo array, essi corrispondono come un'operazione OR e i campi all'interno di ciascun elemento (gruppo, tipo, versione) corrispondono come un'operazione AND.

        • resourceMatchers[].group: (Facoltativo) Gruppo della risorsa da filtrare.

        • resourceMatchers[].kind: (Facoltativo) Tipo di risorsa da filtrare.

        • resourceMatchers[].version: (Facoltativo) Versione della risorsa da filtrare.

        • resourceMatchers[].names: (Facoltativo) Nomi nel campo metadata.name di Kubernetes della risorsa da filtrare.

        • resourceMatchers[].namespaces: (Facoltativo) Spazi dei nomi nel campo metadata.name di Kubernetes della risorsa da filtrare.

        • resourceMatchers[].labelSelectors: (Facoltativo) Stringa del selettore di etichetta nel campo metadata.name di Kubernetes della risorsa come definito in "Documentazione di Kubernetes" . Per esempio: "trident.netapp.io/os=linux" .

          Per esempio:

    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. Dopo aver popolato il trident-protect-snapshot-restore-cr.yaml file con i valori corretti, applicare CR:

    kubectl apply -f trident-protect-snapshot-restore-cr.yaml
Ripristinare lo snapshot utilizzando la CLI
Passi
  1. Ripristina lo snapshot in uno spazio dei nomi diverso, sostituendo i valori tra parentesi con le informazioni del tuo ambiente.

    • IL snapshot l'argomento utilizza uno spazio dei nomi e un nome di snapshot nel formato <namespace>/<name> .

    • IL namespace-mapping l'argomento utilizza namespace separati da due punti per mappare i namespace di origine ai namespace di destinazione corretti nel formato source1:dest1,source2:dest2 .

      Per esempio:

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