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 un backup nel cluster di origine, quindi ripristinare il backup in un cluster diverso. Assicurarsi che Trident Protect sia installato sul cluster di destinazione.
|
È possibile replicare un'applicazione tra cluster diversi utilizzando "Replica SnapMirror". |
-
Verificare che AppVault CR per il bucket di storage a oggetti che contiene il backup sia stato configurato sul cluster di destinazione.
-
Sul cluster di destinazione, "ripristinare i dati dal 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:-
ResourceFilter.resourceMatchers: Una matrice di oggetti resourceMatcher. Se si definiscono più elementi in questa matrice, questi corrispondono come un'operazione OR e i campi all'interno di ogni elemento (gruppo, tipo, versione) corrispondono come un'operazione AND.
-
ResourceMatchers[].group: (Optional) Gruppo della risorsa da filtrare.
-
ResourceMatchers[].Kind: (Optional) tipo di 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-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"]
-
-
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>
-