Questa pagina descrive come selezionare le risorse da ripristinare con una granularità più precisa.
Panoramica
La funzionalità di ripristino granulare consente di ripristinare un sottoinsieme di risorse da un backup. La funzionalità di ripristino granulare offre la flessibilità di perfezionare l'ambito di ripristino definito nel piano di ripristino principale. Se l'ambito di ripristino dettagliato non si sovrappone all'ambito originale definito nel piano di ripristino principale, non verrà ripristinata alcuna risorsa.
La funzionalità di ripristino granulare può essere abilitata per i piani di ripristino con modalità di gestione dei conflitti a livello di singola risorsa:
- Unisci e salta
- Unisci e sostituisci
- Unisci e sostituisci volume
Se i tuoi piani di ripristino utilizzano modalità di gestione dei conflitti a livello di spazio dei nomi o ProtectedApplication, come Fail on conflict o Rollback e vuoi attivare il ripristino granulare, devi aggiornare il piano di ripristino in modo che utilizzi le modalità supportate o creare un nuovo piano di ripristino. Per ulteriori informazioni sulle modalità di ripristino, vedi Gestire i conflitti di risorse durante il ripristino.
Per utilizzare il ripristino granulare, puoi definire una o più condizioni di filtro nei filtri di inclusione ed esclusione. Puoi selezionare un sottoinsieme specifico di risorse dal backup per il ripristino o ripristinare tutte le risorse tranne un sottoinsieme. Puoi definire contemporaneamente i filtri di inclusione ed esclusione. Se vengono utilizzati filtri di inclusione, vengono ripristinate solo le risorse che corrispondono a questi filtri. Se vengono utilizzati filtri di esclusione, le risorse corrispondenti vengono escluse dal processo di ripristino. Quando vengono specificati sia i filtri di inclusione che quelli di esclusione, i filtri di inclusione vengono applicati per primi, seguiti da quelli di esclusione. Ciò significa che i filtri di esclusione hanno la priorità rispetto ai filtri di inclusione. Se non vengono specificati filtri, il ripristino viene eseguito sull'intero ambito definito nel piano di ripristino principale.
Quando crei una condizione di filtro, sono disponibili quattro attributi facoltativi:
- GroupKind: il gruppo e il tipo di API Kubernetes per la risorsa
- Spazio dei nomi: lo spazio dei nomi per le risorse con ambito di spazio dei nomi
- Nome della risorsa: il nome della risorsa
- Etichette: le coppie chiave-valore per selezionare la risorsa in base alle etichette di Kubernetes
Puoi utilizzare una combinazione dei quattro attributi precedenti per definire una condizione di filtro. Se vengono specificati più attributi, le relazioni tra gli attributi vengono considerate come AND
. Una risorsa viene selezionata se corrisponde a tutti
gli attributi definiti nella condizione filtro. Puoi anche fornire più condizioni di filtro contemporaneamente. Le relazioni tra le diverse condizioni di filtro sono OR
. Una risorsa viene selezionata se corrisponde a una qualsiasi condizione filtro
di tutte quelle fornite.
Prima di iniziare
Pianifica una serie di ripristini.
Crea un ripristino con filtro di ripristino granulare
gcloud
Crea un file YAML o JSON con filtri di ripristino granulari. Puoi utilizzare il seguente esempio di YAML.
exclusionFilters: - groupKind: resourceGroup: foo.io resourceKind: Bar name: name1 namespace: ns1 inclusionFilters: - labels: key1: value1 key2: value2
Crea un ripristino utilizzando il file di filtro per il ripristino granulare che hai creato.
gcloud beta container backup-restore restores create RESTORE \ --project=PROJECT_ID \ --location=LOCATION \ --restore-plan=RESTORE_PLAN \ --backup=BACKUP \ --filter-file=FILTER_FILE
Sostituisci quanto segue:
RESTORE
: il nome del ripristino che vuoi creare.PROJECT_ID
: l'ID del tuo Google Cloud progetto.LOCATION
: la regione di computing del piano di ripristino principale.RESTORE_PLAN
: il nome del piano di ripristino principale da cui deriva questo ripristino.BACKUP
: il backup da ripristinare. Deve trovarsi nel piano di backup a cui fa riferimento il piano di ripristino principale comeprojects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN/backups/BACKUP
FILTER_FILE
: il percorso dei filtri di ripristino granulare.
Per l'elenco completo delle opzioni, consulta la documentazione di
gcloud beta container backup-restore restores create
.
Console
Utilizza le seguenti istruzioni per creare un ripristino granulare nella console Google Cloud :
Nella console Google Cloud , vai alla pagina Google Kubernetes Engine.
Nel menu di navigazione, fai clic su Backup per GKE.
Fai clic sulla scheda Backup.
Nell'elenco dei backup, seleziona quello che vuoi ripristinare e fai clic su Configura un ripristino.
Scegli un piano di ripristino dall'elenco dei piani applicabili a questo backup.
Inserisci un nome e una descrizione facoltativa per il ripristino.
Fai clic sulla casella di controllo Abilita il ripristino granulare.
Nella sezione Filtri di inclusione o Filtri di esclusione, fai clic su Aggiungi condizione di filtro.
In Ripristina condizione filtro, definisci la condizione e fai clic su Salva modifiche.
Se vuoi aggiungere altre condizioni, fai di nuovo clic su Aggiungi condizioni di filtro.
Fai clic su Ripristina.
Esempi di file di filtri per il ripristino granulare
Gli esempi seguenti sono forniti nel formato YAML utilizzato da Google Cloud CLI o nelle istruzioni passo passo per la console Google Cloud .
Ripristina una singola risorsa con ambito di spazio dei nomi
Questo esempio ripristina un tipo di risorsa ConfigMap
con nome nginx-vars
nello spazio dei nomi webserver
, utilizzando il ripristino granulare InclusionFilters
per selezionare la risorsa. Se vuoi scegliere risorse nel gruppo core
, utilizza
la stringa vuota per resourceGroup
.
gcloud
inclusionFilters:
- groupKind:
resourceKind: ConfigMap
name: nginx-vars
namespace: webserver
Console
- Abilita il ripristino granulare come hai fatto nella procedura Crea un ripristino con filtro di ripristino granulare.
- Nella sezione Filtri di inclusione, fai clic su Aggiungi condizione di filtro.
- Nel campo Nome risorsa, inserisci
nginx-vars
. - Nel campo Spazio dei nomi, inserisci
webserver
. - Nel campo Tipo di oggetto, inserisci
ConfigMap
. - Fai clic su Salva modifiche.
Escludere una singola risorsa con ambito cluster
Questo esempio ripristina tutte le risorse disponibili, ad eccezione di una risorsa GroupKind storage.k8s.io/StorageClass
con nome sc1
, utilizzando il ripristino granulare ExclusionFilters
per escludere la risorsa.
gcloud
exclusionFilters:
- groupKind:
resourceGroup: storage.k8s.io
resourceKind: StorageClass
name: sc1
Console
- Abilita il ripristino granulare come hai fatto nella procedura Crea un ripristino con filtro di ripristino granulare.
- Nella sezione Filtri di esclusione, fai clic su Aggiungi condizione di filtro.
- Nel campo Nome risorsa, inserisci
sc1
. - Nel campo Gruppo API, inserisci
storage.k8s.io
. - Nel campo Tipo di oggetto, inserisci
StorageClass
. - Fai clic su Salva modifiche.
Ripristinare le risorse con due etichette
Questo esempio ripristina le risorse che hanno entrambe le etichette key1:value1
e key2:value2
, utilizzando il ripristino granulare InclusionFilters
per selezionare le risorse.
gcloud
inclusionFilters:
- labels:
key1: value1
key2: value2
Console
- Abilita il ripristino granulare come hai fatto nella procedura Crea un ripristino con filtro di ripristino granulare.
- Nella sezione Filtri di inclusione, fai clic su Aggiungi condizione di filtro.
Nella sezione Etichette:
- Fai clic su Aggiungi etichetta.
- Nel campo Chiave 1, inserisci
key1
. - Nel campo Valore 1, inserisci
value1
. - Fai clic su Aggiungi etichetta.
- Nel campo Chiave 2, inserisci
key2
. - Nel campo Valore 2, inserisci
value2
.
Fai clic su Salva modifiche.
Escludi tutte le risorse di alcuni GroupKind
Questo esempio ripristina tutte le risorse disponibili, ad eccezione di GroupKind ConfigMap
e storage.k8s.io/StorageClass
, utilizzando il ripristino granulare ExclusionFilters
per escludere questi due GroupKind.
gcloud
exclusionFilters:
- groupKind:
resourceKind: ConfigMap
- groupKind:
resourceGroup: storage.k8s.io
resourceKind: StorageClass
Console
- Abilita il ripristino granulare come hai fatto nella procedura Crea un ripristino con filtro di ripristino granulare.
- Nella sezione Filtri di esclusione, fai clic su Aggiungi condizione di filtro.
- Nel campo Tipo di oggetto, inserisci
ConfigMap
. - Fai clic su Salva modifiche.
- Nel campo Tipo di oggetto, inserisci
- Nella sezione Filtri di esclusione, fai clic su Aggiungi condizione di filtro.
- Nel campo Gruppo API, inserisci
storage.k8s.io
. - Nel campo Tipo di oggetto, inserisci
StorageClass
. - Fai clic su Salva modifiche.
- Nel campo Gruppo API, inserisci