Ripristina le applicazioni Kubernetes utilizzando una risorsa personalizzata
È possibile utilizzare risorse personalizzate per ripristinare le applicazioni da uno snapshot o da un backup. Il ripristino da uno snapshot esistente sarà più rapido quando si ripristina l'applicazione nello stesso cluster.
|
|
|
Ripristina un backup in un namespace diverso
Quando si ripristina un backup in un namespace diverso utilizzando una BackupRestore CR, NetApp Backup and Recovery ripristina l'applicazione in un nuovo namespace e crea una application CR per l'applicazione ripristinata. Per proteggere l'applicazione ripristinata, crea backup o snapshot on-demand oppure stabilisci una policy di protezione.
|
|
|
Assicurarsi che la scadenza del token di sessione AWS sia sufficiente per qualsiasi operazione di ripristino s3 di lunga durata. Se il token scade durante l'operazione di ripristino, l'operazione può non riuscire.
-
Fare riferimento a "Documentazione API AWS" per ulteriori informazioni sulla verifica della scadenza del token della sessione corrente.
-
Fare riferimento a "Documentazione AWS IAM" per ulteriori informazioni sulle credenziali con le risorse AWS.
|
|
Quando si ripristinano i backup utilizzando Kopia come data mover, è possibile specificare facoltativamente annotazioni nella CR per controllare il comportamento dello storage temporaneo utilizzato da Kopia. Consultare il "Documentazione Kopia" per ulteriori informazioni sulle opzioni che è possibile configurare. |
-
Crea il file custom resource (CR) e assegnagli il nome
trident-protect-backup-restore-cr.yaml. -
Nel file che hai 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 del backup. È possibile utilizzare il seguente comando per trovare questo percorso:
kubectl get backups <BACKUP_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}' -
spec.appVaultRef: (Obbligatorio) Il nome del AppVault in cui sono archiviati i contenuti del backup.
-
spec.namespaceMapping: Il mapping dello spazio dei nomi di origine dell'operazione di ripristino allo spazio dei nomi di destinazione. Sostituisci
my-source-namespaceemy-destination-namespacecon le informazioni del tuo ambiente.apiVersion: protect.trident.netapp.io/v1 kind: BackupRestore metadata: name: my-cr-name namespace: my-destination-namespace spec: appArchivePath: my-backup-path appVaultRef: appvault-name namespaceMapping: [{"source": "my-source-namespace", "destination": "my-destination-namespace"}]
-
-
(Facoltativo) Se è necessario selezionare solo determinate risorse dell'applicazione da ripristinare, aggiungere un filtro che includa o escluda le risorse contrassegnate con etichette particolari:
Trident Protect seleziona automaticamente alcune risorse in base alla loro relazione con le risorse che selezioni. Ad esempio, se selezioni una risorsa di richiesta di volume persistente e questa ha un pod associato, Trident Protect ripristinerà anche il pod associato. -
resourceFilter.resourceSelectionCriteria: (Obbligatorio per il filtraggio) Utilizzare
IncludeoExcludeper 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 resourceMatcher oggetti. Se si definiscono più elementi in questo array, la corrispondenza avviene tramite un'operazione OR, e i campi all'interno di ciascun elemento (group, kind, version) corrispondono tramite 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) Namespace nel campo metadata.name di Kubernetes della risorsa da filtrare.
-
resourceMatchers[].labelSelectors: (Facoltativo) Stringa del selettore di etichetta nel campo metadata.name dei metadati Kubernetes della risorsa come definito in "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-backup-restore-cr.yamlfile con i valori corretti, applica la CR:kubectl apply -f trident-protect-backup-restore-cr.yaml
Ripristina un backup nello spazio dei nomi originale
È possibile ripristinare un backup nello spazio dei nomi originale in qualsiasi momento.
Assicurarsi che la scadenza del token di sessione AWS sia sufficiente per qualsiasi operazione di ripristino s3 di lunga durata. Se il token scade durante l'operazione di ripristino, l'operazione può non riuscire.
-
Fare riferimento a "Documentazione API AWS" per ulteriori informazioni sulla verifica della scadenza del token della sessione corrente.
-
Fare riferimento a "Documentazione AWS IAM" per ulteriori informazioni sulle credenziali con le risorse AWS.
|
|
Quando si ripristinano i backup utilizzando Kopia come data mover, è possibile specificare facoltativamente annotazioni nella CR per controllare il comportamento dello storage temporaneo utilizzato da Kopia. Consultare il "Documentazione Kopia" per ulteriori informazioni sulle opzioni che è possibile configurare. |
-
Crea il file custom resource (CR) e assegnagli il nome
trident-protect-backup-ipr-cr.yaml. -
Nel file che hai 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 del backup. È possibile utilizzare il seguente comando per trovare questo percorso:
kubectl get backups <BACKUP_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}' -
spec.appVaultRef: (Obbligatorio) Il nome del AppVault in cui sono archiviati i contenuti del backup.
Ad esempio:
apiVersion: protect.trident.netapp.io/v1 kind: BackupInplaceRestore metadata: name: my-cr-name namespace: my-app-namespace spec: appArchivePath: my-backup-path appVaultRef: appvault-name -
-
(Facoltativo) Se è necessario selezionare solo determinate risorse dell'applicazione da ripristinare, aggiungere un filtro che includa o escluda le risorse contrassegnate con etichette particolari:
Trident Protect seleziona automaticamente alcune risorse in base alla loro relazione con le risorse che selezioni. Ad esempio, se selezioni una risorsa di richiesta di volume persistente e questa ha un pod associato, Trident Protect ripristinerà anche il pod associato. -
resourceFilter.resourceSelectionCriteria: (Obbligatorio per il filtraggio) Utilizzare
IncludeoExcludeper 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 resourceMatcher oggetti. Se si definiscono più elementi in questo array, la corrispondenza avviene tramite un'operazione OR, e i campi all'interno di ciascun elemento (group, kind, version) corrispondono tramite 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) Namespace nel campo metadata.name di Kubernetes della risorsa da filtrare.
-
resourceMatchers[].labelSelectors: (Facoltativo) Stringa del selettore di etichetta nel campo metadata.name dei metadati Kubernetes della risorsa come definito in "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-backup-ipr-cr.yamlfile con i valori corretti, applica la CR:kubectl apply -f trident-protect-backup-ipr-cr.yaml
Ripristinare un backup su un cluster diverso
È possibile ripristinare un backup su un cluster diverso se si verifica un problema con il cluster originale.
|
|
|
Assicurarsi che siano soddisfatti i seguenti prerequisiti:
-
Il cluster di destinazione ha Trident Protect installato.
-
Il cluster di destinazione ha accesso al percorso del bucket dello stesso AppVault del cluster di origine, dove è archiviato il backup.
-
Assicurarsi che la scadenza del token di sessione AWS sia sufficiente per qualsiasi operazione di ripristino di lunga durata. Se il token scade durante l'operazione di ripristino, l'operazione può fallire.
-
Fare riferimento a "Documentazione API AWS" per ulteriori informazioni sulla verifica della scadenza del token della sessione corrente.
-
Fare riferimento a "Documentazione AWS" per ulteriori informazioni sulle credenziali con le risorse AWS.
-
-
Verificare la disponibilità del AppVault CR sul cluster di destinazione utilizzando il plug-in Trident Protect CLI:
tridentctl-protect get appvault --context <destination_cluster_name>Assicurarsi che lo spazio dei nomi destinato al ripristino dell'applicazione esista nel cluster di destinazione. -
Visualizza il contenuto del backup disponibile di AppVault dal cluster di destinazione:
tridentctl-protect get appvaultcontent <appvault_name> \ --show-resources backup \ --show-paths \ --context <destination_cluster_name>L'esecuzione di questo comando visualizza i backup disponibili in AppVault, inclusi i cluster di origine, i nomi delle applicazioni corrispondenti, i timestamp e i percorsi di archivio.
Esempio di output:
+-------------+-----------+--------+-----------------+--------------------------+-------------+ | CLUSTER | APP | TYPE | NAME | TIMESTAMP | PATH | +-------------+-----------+--------+-----------------+--------------------------+-------------+ | production1 | wordpress | backup | wordpress-bkup-1| 2024-10-30 08:37:40 (UTC)| backuppath1 | | production1 | wordpress | backup | wordpress-bkup-2| 2024-10-30 08:37:40 (UTC)| backuppath2 | +-------------+-----------+--------+-----------------+--------------------------+-------------+
-
Ripristina l'applicazione nel cluster di destinazione utilizzando il nome AppVault e il percorso di archivio:
-
Crea il file custom resource (CR) e assegnagli il nome
trident-protect-backup-restore-cr.yaml. -
Nel file che hai 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.appVaultRef: (Obbligatorio) Il nome del AppVault in cui sono archiviati i contenuti del backup.
-
spec.appArchivePath: Il percorso all'interno di AppVault in cui sono archiviati i contenuti del backup. È possibile utilizzare il seguente comando per trovare questo percorso:
kubectl get backups <BACKUP_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'Se BackupRestore CR non è disponibile, è possibile utilizzare il comando menzionato nel passaggio 2 per visualizzare il contenuto del backup. -
spec.namespaceMapping: Il mapping dello spazio dei nomi di origine dell'operazione di ripristino allo spazio dei nomi di destinazione. Sostituisci
my-source-namespaceemy-destination-namespacecon le informazioni del tuo ambiente.Ad esempio:
apiVersion: protect.trident.netapp.io/v1 kind: BackupRestore metadata: name: my-cr-name namespace: my-destination-namespace spec: appVaultRef: appvault-name appArchivePath: my-backup-path namespaceMapping: [{"source": "my-source-namespace", "destination": "my-destination-namespace"}] -
-
Dopo aver popolato il
trident-protect-backup-restore-cr.yamlfile con i valori corretti, applica la CR:kubectl apply -f trident-protect-backup-restore-cr.yaml
Ripristina uno snapshot in un namespace diverso
È possibile ripristinare i dati da uno snapshot utilizzando un file di risorsa personalizzata (CR) sia in un namespace diverso che nel namespace di origine. Quando si ripristina uno snapshot in un namespace diverso utilizzando una SnapshotRestore CR, NetApp Backup and Recovery ripristina l'applicazione in un nuovo namespace e crea una CR dell'applicazione per l'applicazione ripristinata. Per proteggere l'applicazione ripristinata, crea backup o snapshot su richiesta oppure stabilisci una policy di protezione.
|
|
|
Assicurarsi che la scadenza del token di sessione AWS sia sufficiente per qualsiasi operazione di ripristino s3 di lunga durata. Se il token scade durante l'operazione di ripristino, l'operazione può non riuscire.
-
Fare riferimento a "Documentazione API AWS" per ulteriori informazioni sulla verifica della scadenza del token della sessione corrente.
-
Fare riferimento a "Documentazione AWS IAM" per ulteriori informazioni sulle credenziali con le risorse AWS.
-
Crea il file di risorsa personalizzata (CR) e assegnagli il nome
trident-protect-snapshot-restore-cr.yaml. -
Nel file che hai 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.appVaultRef: (Obbligatorio) Il nome del AppVault in cui sono archiviati i contenuti dello snapshot.
-
spec.appArchivePath: Il percorso all'interno di AppVault in cui sono archiviati i contenuti dello snapshot. È possibile utilizzare il seguente comando per trovare questo percorso:
kubectl get snapshots <SNAPHOT_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}' -
spec.namespaceMapping: Il mapping dello spazio dei nomi di origine dell'operazione di ripristino allo spazio dei nomi di destinazione. Sostituisci
my-source-namespaceemy-destination-namespacecon le informazioni del tuo ambiente.apiVersion: protect.trident.netapp.io/v1 kind: SnapshotRestore metadata: name: my-cr-name namespace: my-app-namespace spec: appVaultRef: appvault-name appArchivePath: my-snapshot-path namespaceMapping: [{"source": "my-source-namespace", "destination": "my-destination-namespace"}]
-
-
(Facoltativo) Se è necessario selezionare solo determinate risorse dell'applicazione da ripristinare, aggiungere un filtro che includa o escluda le risorse contrassegnate con etichette particolari:
Trident Protect seleziona automaticamente alcune risorse in base alla loro relazione con le risorse che selezioni. Ad esempio, se selezioni una risorsa di richiesta di volume persistente e questa ha un pod associato, Trident Protect ripristinerà anche il pod associato. -
resourceFilter.resourceSelectionCriteria: (Obbligatorio per il filtraggio) Utilizzare
IncludeoExcludeper 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 resourceMatcher oggetti. Se si definiscono più elementi in questo array, la corrispondenza avviene tramite un'operazione OR, e i campi all'interno di ciascun elemento (group, kind, version) corrispondono tramite 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) Namespace nel campo metadata.name di Kubernetes della risorsa da filtrare.
-
resourceMatchers[].labelSelectors: (Facoltativo) Stringa del selettore di etichetta nel campo metadata.name dei metadati Kubernetes della risorsa come definito in "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.yamlfile con i valori corretti, applica la CR:kubectl apply -f trident-protect-snapshot-restore-cr.yaml
Ripristina uno snapshot nello spazio dei nomi originale
È possibile ripristinare uno snapshot nel namespace originale in qualsiasi momento.
Assicurarsi che la scadenza del token di sessione AWS sia sufficiente per qualsiasi operazione di ripristino s3 di lunga durata. Se il token scade durante l'operazione di ripristino, l'operazione può non riuscire.
-
Fare riferimento a "Documentazione API AWS" per ulteriori informazioni sulla verifica della scadenza del token della sessione corrente.
-
Fare riferimento a "Documentazione AWS IAM" per ulteriori informazioni sulle credenziali con le risorse AWS.
-
Crea il file custom resource (CR) e assegnagli il nome
trident-protect-snapshot-ipr-cr.yaml. -
Nel file che hai 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.appVaultRef: (Obbligatorio) Il nome del AppVault in cui sono archiviati i contenuti dello snapshot.
-
spec.appArchivePath: Il percorso all'interno di AppVault in cui sono archiviati i contenuti dello snapshot. È possibile utilizzare il seguente comando per trovare questo percorso:
kubectl get snapshots <SNAPSHOT_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'apiVersion: protect.trident.netapp.io/v1 kind: SnapshotInplaceRestore metadata: name: my-cr-name namespace: my-app-namespace spec: appVaultRef: appvault-name appArchivePath: my-snapshot-path
-
-
(Facoltativo) Se è necessario selezionare solo determinate risorse dell'applicazione da ripristinare, aggiungere un filtro che includa o escluda le risorse contrassegnate con etichette particolari:
Trident Protect seleziona automaticamente alcune risorse in base alla loro relazione con le risorse che selezioni. Ad esempio, se selezioni una risorsa di richiesta di volume persistente e questa ha un pod associato, Trident Protect ripristinerà anche il pod associato. -
resourceFilter.resourceSelectionCriteria: (Obbligatorio per il filtraggio) Utilizzare
IncludeoExcludeper 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 resourceMatcher oggetti. Se si definiscono più elementi in questo array, la corrispondenza avviene tramite un'operazione OR, e i campi all'interno di ciascun elemento (group, kind, version) corrispondono tramite 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) Namespace nel campo metadata.name di Kubernetes della risorsa da filtrare.
-
resourceMatchers[].labelSelectors: (Facoltativo) Stringa del selettore di etichetta nel campo metadata.name dei metadati Kubernetes della risorsa come definito in "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-ipr-cr.yamlfile con i valori corretti, applica la CR:kubectl apply -f trident-protect-snapshot-ipr-cr.yaml