Questa pagina descrive come selezionare le risorse per il ripristino con maggiore granularità.
Panoramica
La funzionalità di ripristino granulare ti consente di ripristinare un sottoinsieme di risorse da un backup. La funzionalità di ripristino granulare offre la flessibilità di perfezionare all'ambito di ripristino definito nel piano di ripristino padre. Se viene impostato il livello l'ambito di ripristino non si sovrappone all'ambito originale definito nell'ambito principale di ripristino, non verranno ripristinate le risorse.
La funzionalità di ripristino granulare può essere attivata 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 piani di ripristino utilizzano modalità di gestione dei conflitti a livello di spazio dei nomi o di applicazione protetta, come Errore in caso di conflitto o Rollback e vuoi attivare l'impostazione ripristinare, devi aggiornare il piano di ripristino per utilizzare le modalità supportate creare un nuovo piano di ripristino. Per ulteriori informazioni sulle modalità di ripristino, consulta Gestire i conflitti delle 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 per ripristinare o ripristinare tutte le risorse tranne un sottoinsieme. Puoi definire contemporaneamente filtri di inclusione ed esclusione. Se vengono utilizzati i filtri di inclusione, vengono ripristinate solo le risorse corrispondenti a questi filtri. Se l'esclusione e filtri, escludendo le risorse corrispondenti dal processo di ripristino. Quando vengono specificati sia i filtri di inclusione sia quelli di esclusione, i filtri di inclusione vengono applicati per primi, seguiti dai filtri di esclusione. Ciò significa che i filtri di esclusione hanno la priorità sui filtri di inclusione. Se non vengono specificati filtri, il ripristino viene eseguito sull'intero ambito definito nel piano di ripristino principale.
Esistono quattro attributi facoltativi per la costruzione di una condizione di filtro:
- GroupKind: il gruppo e il tipo di API Kubernetes per la risorsa
- Spazio dei nomi: lo spazio dei nomi per le risorse con ambito spazio dei nomi
- Nome della risorsa: il nome della risorsa
- Etichette: le coppie chiave-valore per selezionare la risorsa in base alle etichette Kubernetes
Puoi utilizzare una combinazione dei quattro attributi precedenti per definire un filtro
. Se vengono specificati più attributi, le relazioni tra
sono considerati AND
. Una risorsa è selezionata se corrisponde a tutti
attributi definiti nella condizione di filtro. Puoi anche fornire più filtri
contemporaneamente, le relazioni tra filtri diversi
sono OR
. Una risorsa è selezionata se corrisponde a una qualsiasi condizione di filtro
di tutti quelli forniti.
Prima di iniziare
Pianifica un insieme di ripristini.
Creare un ripristino con filtro di ripristino granulare
gcloud
Crea un file YAML o JSON con filtri di ripristino granulari. Puoi utilizzare il seguente esempio YAML.
exclusionFilters: - groupKind: resourceGroup: foo.io resourceKind: Bar name: name1 namespace: ns1 inclusionFilters: - labels: key1: value1 key2: value2
Crea un ripristino utilizzando il file del filtro di 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 progetto Google Cloud.LOCATION
: la regione di calcolo del piano di ripristino principale.RESTORE_PLAN
: il nome del piano di ripristino principale da cui è stato eseguito il 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 granulari.
Per l'elenco completo delle opzioni, consulta la documentazione di
gcloud beta container backup-restore restores create
.
Console
Segui le istruzioni riportate di seguito 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 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 filtro.
Fai clic su Ripristina.
Esempi di file di filtro di ripristino granulare
I seguenti esempi sono forniti nel formato YAML utilizzato da Google Cloud CLI o nelle istruzioni dettagliate per la console Google Cloud.
Ripristina una singola risorsa con ambito dello 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 le risorse nel gruppo core
, utilizza una stringa vuota per resourceGroup
.
gcloud
inclusionFilters:
- groupKind:
resourceKind: ConfigMap
name: nginx-vars
namespace: webserver
Console
- Attiva il ripristino granulare come indicato nella procedura Creare 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
- Attiva il ripristino granulare come hai fatto nella procedura Creare un ripristino con un filtro di ripristino granulare.
- Nella sezione Filtri di esclusione, fai clic su Aggiungi condizione 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 con le etichette key1:value1
e key2:value2
utilizzando il ripristino granulare InclusionFilters
per selezionarle.
gcloud
inclusionFilters:
- labels:
key1: value1
key2: value2
Console
- Attiva il ripristino granulare come indicato nella procedura Creare un ripristino con filtro di ripristino granulare.
- Nella sezione Filtri di inclusione, fai clic su Aggiungi condizione 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.
Escludere tutte le risorse di alcuni tipi di gruppo
In questo esempio vengono ripristinate tutte le risorse disponibili, tranne 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
- Attiva il ripristino granulare come indicato nella procedura Creare un ripristino con filtro di ripristino granulare.
- Nella sezione Filtri di esclusione, fai clic su Aggiungi condizione 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 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