Abilita il ripristino granulare


Questa pagina descrive come selezionare le risorse da ripristinare con una granularità più fine.

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 l'ambito del ripristino definito nel piano di ripristino principale. Se l'ambito di ripristino granulare non si sovrappone all'ambito originale definito nel piano di ripristino principale, non verrà ripristinata alcuna risorsa.

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 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 da utilizzare le modalità supportate o creare un nuovo piano di ripristino. Per ulteriori informazioni sulle modalità di ripristino, consulta 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 filtri di inclusione ed esclusione. Se vengono utilizzati i filtri di inclusione, vengono ripristinate solo le risorse corrispondenti a questi filtri. Se vengono utilizzati i filtri di esclusione, le risorse corrispondenti vengono escluse 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 a livello 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 viene specificato più di un attributo, le relazioni tra gli attributi vengono considerate AND. Una risorsa viene selezionata se corrisponde a tutti gli attributi definiti nella condizione del filtro. Puoi anche fornire più condizioni di filtro contemporaneamente. Le relazioni tra diverse condizioni di filtro sono OR. Una risorsa viene selezionata se corrisponde a una condizione di filtro tra tutte quelle fornite.

Prima di iniziare

Pianifica un insieme di ripristini.

Creare un ripristino con filtro di ripristino granulare

gcloud

  1. 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
    
  2. 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 Google Cloud progetto.
    • 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 come projects/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:

  1. Nella console Google Cloud, vai alla pagina Google Kubernetes Engine.

    Vai a Google Kubernetes Engine

  2. Nel menu di navigazione, fai clic su Backup per GKE.

  3. Fai clic sulla scheda Backup.

  4. Nell'elenco dei backup, seleziona quello che vuoi ripristinare e fai clic su Configura un ripristino.

  5. Scegli un piano di ripristino dall'elenco dei piani applicabili a questo backup.

  6. Inserisci un nome e una descrizione facoltativa per il ripristino.

  7. Fai clic sulla casella di controllo Abilita il ripristino granulare.

  8. Nella sezione Filtri di inclusione o Filtri di esclusione, fai clic su Aggiungi condizione di filtro.

  9. In Ripristina condizione filtro, definisci la condizione e fai clic su Salva modifiche.

  10. Se vuoi aggiungere altre condizioni, fai di nuovo clic su Aggiungi condizioni di filtro.

  11. 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.

Ripristinare una singola risorsa con ambito a livello 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 le risorse nel gruppo core, utilizza una stringa vuota per resourceGroup.

gcloud

  inclusionFilters:
  - groupKind:
      resourceKind: ConfigMap
    name: nginx-vars
    namespace: webserver

Console

  1. Attiva il ripristino granulare come indicato nella procedura Creare un ripristino con filtro di ripristino granulare.
  2. Nella sezione Filtri di inclusione, fai clic su Aggiungi condizione di filtro.
  3. Nel campo Nome risorsa, inserisci nginx-vars.
  4. Nel campo Spazio dei nomi, inserisci webserver.
  5. Nel campo Tipo di oggetto, inserisci ConfigMap.
  6. 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

  1. Attiva il ripristino granulare come indicato nella procedura Creare un ripristino con filtro di ripristino granulare.
  2. Nella sezione Filtri di esclusione, fai clic su Aggiungi condizione di filtro.
  3. Nel campo Nome risorsa, inserisci sc1.
  4. Nel campo Gruppo API, inserisci storage.k8s.io.
  5. Nel campo Tipo di oggetto, inserisci StorageClass.
  6. Fai clic su Salva modifiche.

Ripristinare le risorse con due etichette

Questo esempio ripristina le risorse con entrambe le etichette key1:value1 e key2:value2 utilizzando il ripristino granulare InclusionFilters per selezionarle.

gcloud

inclusionFilters:
- labels:
    key1: value1
    key2: value2

Console

  1. Attiva il ripristino granulare come indicato nella procedura Creare un ripristino con filtro di ripristino granulare.
  2. Nella sezione Filtri di inclusione, fai clic su Aggiungi condizione di filtro.
  3. Nella sezione Etichette:

    1. Fai clic su Aggiungi etichetta.
    2. Nel campo Chiave 1, inserisci key1.
    3. Nel campo Valore 1, inserisci value1.
    4. Fai clic su Aggiungi etichetta.
    5. Nel campo Chiave 2, inserisci key2.
    6. Nel campo Valore 2, inserisci value2.
  4. Fai clic su Salva modifiche.

Escludere tutte le risorse di alcuni tipi di gruppo

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 tipi di gruppo.

gcloud

exclusionFilters:
- groupKind:
    resourceKind: ConfigMap
- groupKind:
    resourceGroup: storage.k8s.io
    resourceKind: StorageClass

Console

  1. Attiva il ripristino granulare come indicato nella procedura Creare un ripristino con filtro di ripristino granulare.
  2. Nella sezione Filtri di esclusione, fai clic su Aggiungi condizione di filtro.
    1. Nel campo Tipo di oggetto, inserisci ConfigMap.
    2. Fai clic su Salva modifiche.
  3. Nella sezione Filtri di esclusione, fai clic su Aggiungi condizione di filtro.
    1. Nel campo Gruppo API, inserisci storage.k8s.io.
    2. Nel campo Tipo di oggetto, inserisci StorageClass.
    3. Fai clic su Salva modifiche.