Migrazione delle applicazioni con Trident Protect
Puoi migrare le tue applicazioni tra cluster o classi di storage ripristinando i dati snapshot o di backup in un cluster o una classe di storage differenti.
Quando si esegue la migrazione di un'applicazione, tutti i collegamenti di esecuzione configurati per l'applicazione vengono migrati con l'applicazione. Se è presente un gancio di esecuzione post-ripristino, 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, crea una snapshot o un backup e ripristina i dati nello stesso cluster.
-
Effettuare una delle seguenti operazioni:
-
Nello stesso cluster, eseguire una delle seguenti operazioni, a seconda che sia stato creato uno snapshot o un backup:
Clona in un cluster diverso
Per clonare un'applicazione in un cluster diverso (eseguire un clone tra cluster), creare una snapshot o un backup e ripristinare i dati in un cluster diverso. Assicurarsi che Trident Protect sia installato sul cluster di destinazione.
-
Effettuare una delle seguenti operazioni:
-
Verificare che AppVault CR per il bucket di storage a oggetti che contiene il backup o lo snapshot sia stato configurato nel cluster di destinazione.
-
Nel cluster di destinazione, eseguire una delle seguenti operazioni, a seconda che sia stato creato uno snapshot o un backup:
Eseguire la migrazione delle applicazioni da una classe di storage a un'altra
È possibile migrare le applicazioni da una classe di archiviazione a una classe di archiviazione diversa ripristinando uno snapshot nella classe di archiviazione di destinazione differente.
Ad esempio (escludendo i segreti dalla CR di ripristino):
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
-
Creare il file di risorse personalizzate (CR) e assegnargli un nome
trident-protect-snapshot-restore-cr.yaml
. -
Nel file creato, configurare i seguenti attributi:
-
metadata.name: (required) il nome di questa risorsa personalizzata; scegliere un nome univoco e sensibile per il proprio ambiente.
-
Spec.appArchivePath: Il percorso all'interno di AppVault in cui sono memorizzati i contenuti dello snapshot. Per trovare il percorso, utilizzare il seguente comando:
kubectl get snapshots <my-snapshot-name> -n trident-protect -o jsonpath='{.status.appArchivePath}'
-
Spec.appVaultRef: (required) il nome dell'AppVault in cui sono memorizzati i contenuti dello snapshot.
-
spec.namespaceMapping: mappatura dello spazio dei nomi di origine dell'operazione di ripristino allo spazio dei nomi di destinazione. Sostituire
my-source-namespace
emy-destination-namespace
con le informazioni del proprio 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"}]
-
-
Se si desidera, è necessario selezionare solo determinate risorse dell'applicazione da ripristinare, aggiungere un filtro che includa o escluda le risorse contrassegnate con determinate etichette:
-
ResourceFilter.resourceSelectionCriteria: (Necessario per il filtraggio) utilizzare
include or exclude
per includere o escludere una risorsa definita in resourceMatcher. Aggiungere i seguenti parametri resourceMatcher per definire le risorse da includere o escludere: -
resourceMatchers.group: (Optional) Gruppo della risorsa da filtrare.
-
ResourceMatchers.Kind: (Optional) tipo della risorsa da filtrare.
-
ResourceMatchers.version: (Optional) versione della risorsa da filtrare.
-
resourceMatchers.names: (Optional) nomi nel campo Kubernetes metadata.name della risorsa da filtrare.
-
resourceMatchers.namespaces: (Optional) Namespaces nel campo Kubernetes metadata.name della risorsa da filtrare.
-
ResourceMatchers.labelSelectors: (Optional) stringa del selettore di etichette nel campo Kubernetes metadata.name della risorsa come definito nella "Documentazione Kubernetes" . Ad esempio:
"trident.netapp.io/os=linux"
.Ad esempio:
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"]
-
-
Dopo aver popolato il
trident-protect-snapshot-restore-cr.yaml
file con i valori corretti, applicare la CR:kubectl apply -f trident-protect-snapshot-restore-cr.yaml
-
Ripristinare lo snapshot in uno spazio dei nomi diverso, sostituendo i valori tra parentesi con le informazioni provenienti dall'ambiente.
-
L'
snapshot`argomento utilizza uno spazio dei nomi e un nome snapshot nel formato `<namespace>/<name>
. -
L'
namespace-mapping`argomento utilizza spazi dei nomi separati da due punti per mappare gli spazi dei nomi di origine agli spazi dei nomi di destinazione corretti nel formato `source1:dest1,source2:dest2
.Ad esempio:
tridentctl protect create snapshotrestore <my_restore_name> --snapshot <namespace/snapshot_to_restore> --namespace-mapping <source_to_destination_namespace_mapping>
-