Questa pagina descrive come creare un piano di ripristino di Backup per GKE, che viene utilizzato per ripristinare i backup in Google Kubernetes Engine (GKE).
I piani di ripristino sono scenari di ripristino preconfigurati per una linea corrispondente di backup. I piani di ripristino possono assegnare autorizzazioni agli amministratori per utilizzare queste configurazioni. Questi utenti possono ripristinare rapidamente e in modo indipendente un backup quando si verifica un incidente. Ad esempio, i dati permanenti potrebbero essere danneggiati da un aggiornamento software in un'applicazione di cui è stato eseguito il deployment, il che rende lo spazio dei nomi dell'applicazione in uno stato non valido, che richiede un ripristino.
Backup per GKE non supporta il ripristino di un backup da un progetto a un altro. Puoi ripristinare i backup solo nei cluster all'interno dello stesso progetto da cui ha avuto origine il backup. I piani di ripristino non possono fare riferimento a piani di backup in un progetto diverso.
Durante il ripristino, puoi applicare facoltativamente regole di trasformazione, che vengono utilizzate per trovare un insieme di risorse e sostituire il valore corrente di un attributo di queste risorse con un nuovo valore.
Spazi dei nomi gestiti
Backup per GKE non esegue il ripristino negli spazi dei nomi gestiti. Questi spazi dei nomi vengono ignorati automaticamente durante il ripristino. L'elenco degli spazi dei nomi gestiti include quanto segue:
cnrm-system
configconnector-operator-system
gatekeeper-system
gke-connect
gke-gmp-system
gmp-public
kube-node-lease
kube-public
kube-system
- Spazi dei nomi con la seguente etichetta:
- Chiave:
addonmanager.kubernetes.io/mode
- Valore:
Reconcile
oEnsureExists
- Chiave:
Prima di iniziare
Pianifica una serie di backup.
Ruoli obbligatori
Per ottenere le autorizzazioni
necessarie per creare e gestire un piano di ripristino,
chiedi all'amministratore di concederti il
ruoloBackup per GKEr GKE Restore Admin (roles/gkebackup.restoreAdmin
), che è un sottoinsiemBackup per GKEr GKE Admin (roles/gkebackup.admin
), nel tuo progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Crea un piano di ripristino
Puoi creare un piano di ripristino per i tuoi backup utilizzando Google Cloud CLI o la console Google Cloud .
di Backup per GKE nel cluster specificato.gcloud
Per creare un piano di ripristino, esegui questo comando:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--project=PROJECT_ID \
--location=RESTORE_LOCATION \
--backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=NAMESPACED_RESOURCE_RESTORE_MODE \
--all-namespaces \
--cluster-resource-conflict-policy=CLUSTER_RESOURCE_CONFLICT_POLICY \
--cluster-resource-scope-selected-group-kinds=CLUSTER_RESOURCE_SCOPE \
--volume-data-restore-policy=VOLUME_DATA_RESTORE_POLICY
Sostituisci quanto segue:
RESTORE_PLAN
: il nome del piano di ripristino che vuoi creare.PROJECT_ID
: l'ID del tuo Google Cloud progetto.RESTORE_LOCATION
: la regione di computing per la risorsa, ad esempious-central1
. Consulta la sezione Informazioni sulle località delle risorse. La località deve corrispondere alla regione in cui si trova il cluster di destinazione.BACKUP_PLAN
: l'origine dei backup che possono essere ripristinati con questo piano di ripristino:projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME
Assicurati che il piano di backup si trovi nello stesso progetto del nuovo piano di ripristino.
CLUSTER
: il nome del cluster di destinazione in cui vuoi ripristinare il backup:- Cluster regionali:
projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
- Cluster zonali:
projects/PROJECT_ID/locations/ZONE/clusters/CLUSTER_NAME
- Cluster regionali:
NAMESPACED_RESOURCE_RESTORE_MODE
: definisce come gestire i conflitti al momento del ripristino per le risorse con spazio dei nomi. Le risorse con spazio dei nomi vengono sempre ripristinate in gruppi, per spazio dei nomi o per ProtectedApplication. Utilizza una di queste opzioni:merge-skip-on-conflict
: ignora le singole risorse in conflitto.merge-replace-volume-on-conflict
: salta le singole risorse in conflitto, ma sostituisce i dati del volume permanente sottostante.merge-replace-on-conflict
: sostituisce le singole risorse in conflitto e i dati del volume permanente sottostanti.delete-and-restore
: quando il cluster di destinazione contiene lo stesso gruppo di risorse di cui è stato eseguito il targeting per il ripristino nel cluster, il gruppo di risorse esistente viene eliminato prima del ripristino delle nuove risorse.fail-on-conflict
: se nel cluster di destinazione esistono già gruppi di risorse di cui è previsto il ripristino da un backup, il ripristino non riuscirà.
--all-namespaces
: ripristina tutte le risorse con spazio dei nomi nel backup. In alternativa, specifica:--excluded-namespaces
con un elenco di spazi dei nomi comeNAMESPACE1,NAMESPACE2,...
per ripristinare tutti gli spazi dei nomi tranne quelli nell'elenco.--selected-applications
con un elenco di ProtectedApplications comeNAMESPACE1/APP1,NAMESPACE2/APP2,...
da ripristinare.--selected-namespaces
con un elenco di spazi dei nomi comeNAMESPACE1,NAMESPACE2,...
da ripristinare.--no-namespaces
non ripristina le risorse con spazio dei nomi nel backup. Questa opzione non può essere specificata insieme a--cluster-resource-scope-no-group-kinds
.
Devi specificare una di queste opzioni quando crei un piano di ripristino.
CLUSTER_RESOURCE_CONFLICT_POLICY
: definisce come gestire i conflitti al momento del ripristino per le risorse del cluster selezionate. Utilizza una di queste opzioni:use-existing-version
: se le risorse che vengono ripristinate esistono già nel cluster di destinazione, Backup per GKE mantiene le risorse esistenti.use-backup-version
: se le risorse che vengono ripristinate esistono già nel cluster di destinazione, Backup per GKE sostituisce le risorse esistenti con le nuove risorse del backup.
--cluster-resource-scope-selected-group-kinds
: (Facoltativo) ripristina le risorse del cluster con i tipi di gruppo selezionati nel formatoGroup/Kind
.CLUSTER_RESOURCE_SCOPE
definisce GroupKinds delle risorse del cluster da ripristinare. Ad esempio,apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass
.In alternativa, specifica:
cluster-resource-scope-all-group-kinds
per selezionare tutti i tipi di gruppi di risorse del cluster da ripristinare.cluster-resource-scope-excluded-group-kinds
con un elenco di tipi di gruppi di risorse cluster per ripristinare tutti i tipi di gruppi di risorse cluster, ad eccezione di quelli nell'elenco.cluster-resource-scope-no-group-kinds
. Questa opzione non può essere specificata insieme a--no-namespaces
.
Se non specifichi nessuna di queste opzioni, non verranno ripristinate le risorse del cluster.
VOLUME_DATA_RESTORE_POLICY
: definisce il modo in cui i dati vengono inseriti per i volumi ripristinati. Utilizza una di queste opzioni:restore-volume-data-from-backup
: I nuovi PV verranno ripristinati utilizzando i dati di backup del volume corrispondenti nel backup.reuse-volume-handle-from-backup
: i PV verranno pre-provisionati utilizzando l'handle del volume del PV originale nel backup.no-volume-data-restoration
: i PV non verranno ripristinati. Il ripristino ripristina solo i PVC selezionati e prevede che il driver di archiviazione corrispondente esegua il provisioning dinamico di PV vuoti o li associ a PV di cui è stato eseguito il provisioning preliminare creato out-of-band.
Per l'elenco completo delle opzioni, consulta la
gcloud beta container backup-restore restore-plans create
documentazione.
Crea un piano di ripristino per tutti gli spazi dei nomi
Il seguente comando crea un piano di ripristino per ripristinare tutti gli spazi dei nomi e le risorse del cluster:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--location=LOCATION \
--backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=fail-on-conflict \
--all-namespaces \
--cluster-resource-conflict-policy=use-existing-version \
--cluster-resource-scope-all-group-kinds \
--volume-data-restore-policy=restore-volume-data-from-backup
Crea un piano di ripristino per eseguire il rollback di uno spazio dei nomi
Il seguente comando crea un piano di ripristino per eseguire il rollback dello spazio dei nomi my-ns
dal backup:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--location=LOCATION \
--backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=delete-and-restore \
--selected-namespaces=my-ns \
--cluster-resource-conflict-policy=use-existing-version \
--cluster-resource-scope-selected-group-kinds=apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass \
--volume-data-restore-policy=restore-volume-data-from-backup
Crea un piano di ripristino per eseguire il rollback di un ProtectedApplication
e ricollegare i volumi originali
Il comando seguente crea un piano di ripristino per eseguire il rollback dell'applicazione protetta my-ns/my-app
per ricollegare i volumi originali:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--location=LOCATION \
--backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=delete-and-restore \
--selected-applications=my-ns/my-app \
--cluster-resource-conflict-policy=use-existing-version \
--cluster-resource-scope-no-group-kinds \
--volume-data-restore-policy=reuse-volume-handle-from-backup
Crea un piano di ripristino per ripristinare solo le risorse del cluster
Il seguente comando crea un piano di ripristino per ripristinare tutte le risorse del cluster:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--location=LOCATION \
--backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=fail-on-conflict \
--no-namespaces \
--cluster-resource-conflict-policy=use-existing-version \
--cluster-resource-scope-all-group-kinds
Console
Utilizza le seguenti istruzioni per creare un piano di ripristino nella console Google Cloud :
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Nel menu di navigazione, fai clic su Backup per GKE.
Fai clic su Crea un piano di ripristino.
Nella sezione Assegna un nome al piano e scegli un cluster, completa quanto segue e fai clic su Avanti:
- Inserisci il nome del piano di ripristino e una descrizione facoltativa.
- Scegli un piano di backup per un cluster esistente che corrisponda ai backup che vuoi ripristinare.
- Scegli il cluster di destinazione in cui vuoi ripristinare il backup.
Nella sezione Scegli risorse con spazio dei nomi, completa quanto segue e fai clic su Avanti:
Scegli gli spazi dei nomi da ripristinare:
- Fai clic su Tutte le risorse con spazio dei nomi per ripristinare tutte le risorse con spazio dei nomi nel backup.
- Fai clic su Aggiungi spazi dei nomi nella sezione Eccezioni per escludere qualsiasi spazio dei nomi dal backup.
- Fai clic su Risorse con spazio dei nomi selezionate per specificare gli spazi dei nomi nel backup da ripristinare.
- Fai clic su Applicazioni protette selezionate per aggiungere risorse specificando lo spazio dei nomi e il nome dell'applicazione.
- Fai clic su Nessuna risorsa con spazio dei nomi per non ripristinare le risorse con spazio dei nomi.
- Fai clic su Tutte le risorse con spazio dei nomi per ripristinare tutte le risorse con spazio dei nomi nel backup.
Scegli come gestire i conflitti se sono selezionate risorse con spazio dei nomi:
- Fai clic su Unione salto (non distruttiva) se una risorsa specifica esiste già, salta il ripristino della risorsa dal backup.
- Fai clic su Unisci sostituisci volume (distruttivo) se una risorsa specifica esiste già, salta il ripristino della risorsa, ma sostituisce il volume permanente sottostante utilizzando la policy di ripristino dei dati del volume. Il volume Unisci e sostituisci esegue il ripristino solo dei dati.
- Fai clic su Unione sostituzione (distruttiva) se una risorsa specifica esiste già, sostituiscila con quella del backup e con i dati di volume associati seguendo la policy di ripristino dei dati del volume.
- Fai clic su Errore in caso di conflitto (non distruttivo) per interrompere il ripristino se esistono già spazi dei nomi di destinazione per il ripristino da un backup nel cluster di destinazione.
- Fai clic su Rollback (distruttivo) per eliminare gli spazi dei nomi esistenti prima di ripristinare i nuovi spazi dei nomi se alcuni spazi dei nomi di destinazione per il ripristino da un backup esistono già nel cluster di destinazione.
Scegli come ripristinare i dati di volume e fai clic su Avanti:
- Fai clic su Esegui il provisioning di nuovi volumi e ripristina i dati di volume dal backup per ripristinare i dati di volume dal backup su un nuovo disco permanente.
- Fai clic su Non ripristinare i dati di volume per eseguire il provisioning di un nuovo volume permanente. Se il cluster di destinazione contiene un volume permanente non associato che soddisfa i requisiti di
PersistentVolumeClaim
, il cluster viene associato al volume. - Fai clic su Riutilizza i volumi esistenti contenenti i tuoi dati per
non ripristinare i dati di backup del volume. Tutti i
PersistentVolumeClaims
sono associati a volumi che fanno riferimento a dischi permanenti esistenti.
(Facoltativo) Nella sezione Scegli risorse con ambito cluster, completa quanto segue e fai clic su Avanti:
Scegli i tipi di gruppi da ripristinare:
- Fai clic su Tutte le risorse con ambito cluster per ripristinare tutte le risorse con ambito cluster nel backup.
- Fai clic su Aggiungi groupkinds nella sezione Eccezioni per escludere qualsiasi risorsa con ambito cluster dal backup.
- Fai clic su Risorse con ambito cluster selezionate per specificare le risorse con ambito cluster nel backup da ripristinare.
apiextensions.k8s.io/CustomResourceDefinition
estorage.k8s.io/StorageClass
sono selezionati per impostazione predefinita. Fai clic su Aggiungi groupkind per aggiungere altre risorse con ambito cluster. - Fai clic su Nessuna risorsa con ambito cluster per scegliere di non ripristinare alcuna risorsa del cluster.
- Fai clic su Tutte le risorse con ambito cluster per ripristinare tutte le risorse con ambito cluster nel backup.
Scegli come gestire i conflitti se sono selezionate risorse con ambito cluster:
- Fai clic su Mantieni le risorse nel cluster di destinazione per ignorare una risorsa se esiste già nel cluster di destinazione.
Fai clic su Sostituisci le risorse nel cluster di destinazione per eliminare una risorsa se esiste già nel cluster di destinazione e ripristinare la copia dal backup.
(Facoltativo) Nella sezione Aggiungi regole di trasformazione, completa quanto segue e fai clic su Avanti:
- Fai clic su Aggiungi regola e inserisci una descrizione facoltativa.
- Se vuoi limitare le regole di trasformazione alle risorse che corrispondono a condizioni specifiche, procedi nel seguente modo nella sezione Specifica condizioni e azioni delle risorse:
- Fai clic su Condizione spazi dei nomi e digita un elenco di spazi dei nomi per trovare le risorse all'interno di questi spazi dei nomi.
- Fai clic su Condizione Groupkind, digita il tipo di gruppo API e poi il tipo di oggetto. Questa corrispondenza associa un gruppo di API alle risorse all'interno di questi tipi.
- Fai clic su Condizione percorso JSON e digita il percorso JSON che identifica i campi all'interno delle risorse corrispondenti a cui si applica la trasformazione.
- Digita il nuovo valore che sostituisce il valore attuale degli attributi corrispondenti o seleziona la casella di controllo Sostituisci valori specifici (utilizzando un'espressione regolare). Quindi digita il pattern da confrontare con il valore attuale di queste risorse.
- Fai clic su Salva modifiche.
Controlla i dettagli del piano di ripristino e fai clic su Crea piano.
Visualizzare un piano di ripristino
Puoi visualizzare un piano di ripristino e i relativi dettagli utilizzando gcloud CLI o la consoleGoogle Cloud .
gcloud
Per elencare tutti i piani di ripristino all'interno del progetto e della località, esegui questo comando:
gcloud beta container backup-restore restore-plans list \
--project=PROJECT_ID \
--location=LOCATION
Solo per i comandi list
, puoi fornire -
come valore per qualsiasi
parametro, ad eccezione di PROJECT_ID
. Il valore -
funge da
carattere jolly. Il valore -
è il valore predefinito per qualsiasi parametro se non
specifici un'opzione della riga di comando o imposti una proprietà.
Per l'elenco completo delle opzioni, consulta la
gcloud beta container backup-restore restore-plans list
documentazione.
Per visualizzare i dettagli di un piano di ripristino, esegui questo comando:
gcloud beta container backup-restore restore-plans describe RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION
Console
Segui queste istruzioni per visualizzare un piano di ripristino e i relativi dettagli nella console Google Cloud :
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Nel menu di navigazione, fai clic su Backup per GKE.
Fai clic sulla scheda Ripristina piani.
Espandi il piano di backup e fai clic sul nome del piano di ripristino.
Fai clic sulla scheda Dettagli per visualizzarne i dettagli.
Aggiornare un piano di ripristino
Aggiorna un piano di ripristino e i relativi dettagli utilizzando gcloud CLI.
gcloud
Per aggiornare un piano di ripristino, ad esempio aggiungendo una nuova descrizione, esegui il seguente comando:
gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION \
--description=DESCRIPTION
Per l'elenco completo delle opzioni, consulta la
gcloud beta container backup-restore restore-plans update
documentazione.
Console
Segui queste istruzioni per aggiornare un piano di ripristino nella console Google Cloud :
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Nel menu di navigazione, fai clic su Backup per GKE.
Fai clic sulla scheda Ripristina piani.
Fai clic sul nome del piano di ripristino.
Fai clic sulla scheda Dettagli.
Fai clic su edit Modifica per modificare una sezione del piano e fai clic su Salva modifiche.
Eliminare un piano di ripristino
Puoi eliminare un piano di ripristino utilizzando gcloud CLI o la console Google Cloud . L'eliminazione di un piano di ripristino comporta anche l'eliminazione di tutti i piani di ripristino secondari.
gcloud
Per eliminare un piano di ripristino, esegui questo comando:
gcloud beta container backup-restore restore-plans delete RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION
Per l'elenco completo delle opzioni, consulta la
gcloud beta container backup-restore restore-plans delete
documentazione.
Console
Segui queste istruzioni per eliminare un piano di ripristino nella console Google Cloud :
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Nel menu di navigazione, fai clic su Backup per GKE.
Fai clic sulla scheda Ripristina piani.
Espandi il cluster e fai clic sul nome del piano.
Fai clic su delete Elimina piano.
Digita il nome del piano di ripristino e poi fai clic su Elimina piano di ripristino nella finestra di dialogo di conferma.
Passaggi successivi
- Scopri di più sul ripristino di un backup.