Abilita il ripristino granulare


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

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

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

  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 hai fatto nella procedura Creare un ripristino con un filtro di ripristino granulare.
  2. Nella sezione Filtri di esclusione, fai clic su Aggiungi condizione 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 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 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

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

  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 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 filtro.
    1. Nel campo Gruppo API, inserisci storage.k8s.io.
    2. Nel campo Tipo di oggetto, inserisci StorageClass.
    3. Fai clic su Salva modifiche.