Abilita il ripristino granulare


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

  1. 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
    
  2. 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 come projects/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 :

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

  1. Abilita il ripristino granulare come hai fatto nella procedura Crea 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. Abilita il ripristino granulare come hai fatto nella procedura Crea 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 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

  1. Abilita il ripristino granulare come hai fatto nella procedura Crea 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.

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

  1. Abilita il ripristino granulare come hai fatto nella procedura Crea 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.