Pianificare una serie di ripristini

Questo documento descrive come creare, modificare ed eliminare un piano di ripristino in Google Distributed Cloud (GDC) air-gapped.

I piani di ripristino sono scenari di ripristino preconfigurati per una linea di backup corrispondente. I piani di ripristino possono assegnare le autorizzazioni agli utenti con il ruolo di creatore di backup per utilizzare queste configurazioni.

I creatori di backup possono ripristinare rapidamente e in modo indipendente un backup quando si verifica un incidente. Ad esempio, i dati permanenti potrebbero essere danneggiati da un aggiornamento software in un'applicazione di cui è stato eseguito il deployment, mettendo lo spazio dei nomi dell'applicazione in uno stato non valido, che richiede un ripristino.

Durante il ripristino, puoi facoltativamente applicare un insieme di regole di sostituzione utilizzate per trovare un insieme di risorse e sostituire il valore attuale di un attributo su queste risorse con un nuovo valore. Ad esempio, una regola di sostituzione può modificare lo spazio dei nomi delle risorse di cui è stato eseguito il backup durante il ripristino per eseguire la migrazione di un carico di lavoro da uno spazio dei nomi a un altro.

Prima di iniziare

Richiedi ruoli IAM

Per creare un piano di ripristino, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Amministratore backup cluster utente (user-cluster-backup-admin). Questo ruolo crea, recupera, elenca, monitora, aggiorna, applica patch ed elimina le risorse di backup come i piani di backup e i piani di ripristino nei cluster utente.

Se sei un Application Operator, chiedi a un amministratore con privilegi di amministratore di backup del cluster utente di creare un piano di ripristino per te.

Crea un piano di ripristino

Crea un piano di ripristino utilizzando la console GDC o l'API.

Console

  1. Accedi alla console GDC.
  2. Nel menu di navigazione, fai clic su Backup per cluster.
  3. Fai clic su Crea piano di ripristino.
  4. Nella sezione Informazioni di base del piano di ripristino, completa i seguenti passaggi e fai clic Avanti:
    1. In Nome del piano di ripristino, inserisci il nome del piano di ripristino.
    2. (Facoltativo) In Descrizione del piano di ripristino , inserisci una descrizione del piano di ripristino.
    3. Nell'elenco Cluster di origine, scegli il cluster di origine per il piano di ripristino.
    4. Nell'elenco Progetto, scegli il progetto per il piano di ripristino.
    5. Seleziona il progetto collegato al cluster di origine.
    6. Nel campo Piano di backup, scegli un piano di backup per un cluster esistente che corrisponda ai backup che vuoi ripristinare.
    7. Nel campo Cluster di destinazione, scegli il cluster di destinazione in cui vuoi ripristinare il backup.
  5. Nella sezione Scegli risorse con spazio dei nomi, completa i seguenti passaggi e fai clic su Avanti:
    1. Scegli gli spazi dei nomi da ripristinare:
      1. Fai clic su Risorse con spazio dei nomi selezionate per specificare gli spazi dei nomi nel backup da ripristinare.
        1. Fai clic su Modifica spazi dei nomi del cluster e poi su Aggiungi spazio dei nomi del cluster per inserire uno spazio dei nomi.
      2. Fai clic su Applicazioni protette selezionate per aggiungere risorse specificando il nome dello spazio dei nomi e dell'applicazione.
    2. Scegli come gestire i conflitti:
      1. Fai clic su Errore in caso di conflitto (non distruttivo) per non riuscire a ripristinare se nel cluster di destinazione esistono già spazi dei nomi di cui è stato eseguito il backup.
      2. Fai clic su Rollback (distruttivo) per eliminare gli spazi dei nomi esistenti prima di ripristinare i nuovi spazi dei nomi se nel cluster di destinazione esistono già spazi dei nomi di cui è stato eseguito il backup.
    3. Scegli come ripristinare i dati di volume:
      1. Fai clic su Esegui il provisioning di nuovi volumi e ripristina i dati di volume dal backup per ripristinare i dati di volume dal backup su un nuovo disco permanente.
      2. Fai clic su Non ripristinare i dati di volume per eseguire il provisioning di un nuovo volume permanente. Se il cluster di destinazione contiene un volume permanente non associato che soddisfa i requisiti di PersistentVolumeClaim, il cluster è associato al volume.
      3. Fai clic su Riutilizza i volumi esistenti contenenti i tuoi dati per non ripristinare i dati di backup dei volumi. Tutte le PersistentVolumeClaims sono associate ai volumi che fanno riferimento ai dischi permanenti esistenti.
  6. (Facoltativo) Nella sezione Scegli risorse con ambito cluster, completa i seguenti passaggi e fai clic su Avanti:
    1. Fai clic su Non ripristinare le risorse con ambito cluster per lasciare invariata la versione esistente della risorsa.
    2. Fai clic su Ripristina le risorse con ambito cluster per GroupKind per ripristinare queste risorse.
      1. Fai clic su Modifica GroupKind per aggiungere altre risorse con ambito cluster. Inserisci il gruppo API e il tipo di oggetto per trovare le risorse all'interno di questi tipi.
    3. Fai clic su Conserva le risorse esistenti per creare le risorse se non esistono nel cluster di destinazione.
    4. Fai clic su Sovrascrivi le risorse nel cluster di destinazione per eliminare una risorsa se esiste già nel cluster di destinazione e ripristinare la copia dal backup.
  7. (Facoltativo) Nella sezione Aggiungi regole di sostituzione, completa i seguenti passaggi e fai clic su Avanti:
    1. Fai clic su Aggiungi nuova regola.
    2. Nella casella Spazi dei nomi del cluster, digita un elenco di spazi dei nomi per trovare le risorse all'interno di questi spazi dei nomi.
    3. Per aggiungere GroupKind, fai clic su Aggiungi GroupKind e inserisci il gruppo API e il tipo di oggetto per trovare le risorse all'interno di questi tipi.
    4. Nel campo Percorso JSON, digita il percorso JSON che identifica i campi all'interno delle risorse corrispondenti a cui si applica la sostituzione.
    5. Nel campo Pattern del valore originale, digita il pattern originale da confrontare con il nuovo valore.
    6. Nel campo Nuovo valore, digita il nuovo valore che sostituisce il valore attuale degli attributi corrispondenti.
    7. Fai clic su Salva.
  8. Fai clic su Crea.

API

Crea una risorsa personalizzata ClusterRestorePlan per pianificare i ripristini da un ClusterBackupPlan esistente. ClusterRestorePlan assegna l'insieme esatto di risorse e spazi dei nomi che un creatore di backup è autorizzato a ripristinare. Ecco un esempio di ClusterRestorePlan:

apiVersion: backup.gdc.goog/v1
kind: ClusterRestorePlan
metadata:
  name: RESTORE_PLAN_NAME
  namespace:  PROJECT_NAME
spec:
  targetCluster:
    targetClusterType: UserCluster
    targetClusterName:
      kind: "Cluster"
      name: CLUSTER_NAME
  description: RESTORE_PLAN_DESCRIPTION
  clusterBackupPlanName: CLUSTER_BACKUP_PLAN_NAME
  clusterRestoreConfig:
    volumeDataRestorePolicy: RestoreVolumeDataFromBackup
    clusterResourceConflictPolicy: UseBackupVersion
    namespacedResourceRestoreMode: DeleteAndRestore
    namespacedResourceRestoreScope:
      selectedNamespaces:
        namespaces: [NAME_SPACE]
    clusterBackupRepositoryRef: CLUSTER_BACKUP_REPOSITORY
    substitutionRules:
      - newValue: NEW_CONFIG_VALUE
        originValuePattern: VALUE_PATTERN
        target:
          groupKinds:
          jsonPath: '{.metadata.name}'
          namespaces:
          - NAME_SPACE
      - newValue: NEW_CONFIG_VALUE
        originValuePattern: VALUE_PATTERN
        target:
          groupKinds:
          jsonPath: '{.metadata.name}'
          namespaces:
          - NAME_SPACE

Sostituisci quanto segue:

  • Sostituisci RESTORE_PLAN_NAME con il nome del piano di ripristino.
  • Sostituisci PROJECT_NAME con il nome del progetto GDC.
  • Sostituisci CLUSTER_NAME con il nome del cluster.

Questo esempio utilizza i seguenti valori:


Valore

Attributo

Descrizione
targetClusterName Nome del cluster di origine in un progetto a cui è associato questo piano.
description Descrizione fornita dall'utente per lo scopo di ClusterRestorePlan.
clusterBackupPlanName Il nome di ClusterBackupPlan da ripristinare. The ClusterBackupPlan deve esistere nello stesso spazio dei nomi di the ClusterRestorePlan.
clusterRestoreConfig Configurazione per il processo di ripristino.
volumeDataRestorePolicy Specifica uno dei seguenti valori:
  • NoVolumeDataRestoration: gli oggetti PV/PVC non vengono ripristinati.
  • RestoreVolumeDataFromBackup: i nuovi oggetti PV e PVC vengono creati dal backup.
  • ReuseVolumeHandleFromBackup: crea nuovi oggetti PV, ma tenta di ripristinare gli oggetti PVC utilizzando i relativi oggetti PV originali. Destinato al ripristino nello stesso cluster da cui è stato eseguito il backup.
clusterResourceConflictPolicy Specifica il comportamento per la gestione dei conflitti delle risorse del cluster, ad esempio se la risorsa esiste già nel cluster. Specifica uno dei seguenti valori:
  • UseExistingVersion: non sovrascrive le risorse esistenti risorse durante il conflitto
  • UseBackupVersion: elimina e ricrea le risorse del cluster esistenti durante il conflitto. Le risorse con ambito cluster esistenti nel cluster di destinazione verranno sovrascritte dalle versioni del backup. Questa è un'opzione pericolosa che può causare una perdita di dati involontaria se utilizzata in modo inappropriato. Ad esempio, l'eliminazione di una definizione di risorsa personalizzata fa sì che Kubernetes elimini tutte le risorse personalizzate di quel tipo.
namespacedResourceRestoreMode Gestisce la situazione in cui gli insiemi di risorse con spazio dei nomi di cui è stato eseguito il ripristino esistono già nel cluster di destinazione. Specifica uno dei seguenti valori:
  • DeleteAndRestore: quando vengono rilevate risorse di primo livello in conflitto, come Namespaces o ProtectedApplications, viene prima attivata l'eliminazione della risorsa in conflitto e di tutte le risorse a cui fa riferimento prima di ripristinare le risorse da Backup. Utilizza questa modalità solo quando intendi ripristinare una parte di un cluster a uno stato precedente.
  • FailOnConflict: se vengono rilevate risorse di primo livello in conflitto come la risorsa Namespace o ProtectedApplication all'inizio del processo di ripristino o durante il processo di ripristino, Restore non riesce.
  • MergeSkipOnConflict: se vengono rilevate risorse in conflitto durante il processo di ripristino, questa modalità salta il ripristino delle risorse in conflitto dal backup e continua a ripristinare altre risorse che non si trovano nel cluster.
  • MergeReplaceOnConflict: se vengono rilevate risorse in conflitto durante il processo di ripristino, questa modalità sostituisce le risorse in conflitto dal backup e continua a ripristinare altre risorse che non si trovano nel cluster.
namespacedResourceRestoreScope Specifica quali Namespaces o ProtectedApplications sono consentite per il ripristino.
  • selectedApplications associa le applicazioni protette a questo ripristino.
  • selectedNamespaces contiene NAME_SPACE che specifica lo spazio dei nomi da ripristinare dal backup.
clusterBackupRepositoryRef Specifica il repository in cui archiviare le Restore risorse. Questo repository può essere diverso dal repository da cui il backup proviene. Il repository deve essere un ReadWrite repository nel cluster.
substitutionRules Regole per sostituire i valori nelle risorse Kubernetes di cui è stato eseguito il backup durante il ripristino. Un elenco vuoto indica che non viene eseguita alcuna sostituzione. Le regole di sostituzione vengono applicate in sequenza nell'ordine definito. Questo ordine è importante, in quanto le modifiche apportate da una regola potrebbero influire sulla logica di corrispondenza della regola successiva. Ogni regola specifica un target, un originValuePattern da trovare (VALUE_PATTERN) e un newValue (NEW_CONFIG_VALUE) da sostituire. target può includere namespaces per definire l'ambito della regola (NAME_SPACE).

Dopo aver creato un ClusterRestorePlan, gli utenti con il ruolo di creatore di backup possono ripristinare manualmente i backup.

Visualizza un piano di ripristino

Visualizza un piano di ripristino utilizzando la console GDC:

  1. Accedi alla console GDC.
  2. Nel menu di navigazione, fai clic su Backup per cluster.
  3. Fai clic su Seleziona progetto per selezionare un'organizzazione o un progetto a seconda del tuo ruolo:
    1. Amministratore backup cluster utente: seleziona un'organizzazione per visualizzare tutti i piani di ripristino in un'organizzazione o seleziona un progetto per visualizzare tutti i piani di ripristino in un progetto.
    2. Creatore di backup: seleziona un progetto per visualizzare tutti i piani di ripristino in un progetto.
  4. Fai clic sulla scheda Piani di ripristino.
  5. Fai clic su un piano di ripristino nell'elenco per visualizzarne i dettagli.

Modifica un piano di ripristino

Se il repository di backup associato al piano di ripristino che vuoi modificare ha un valore nel campo Cluster collegato(sola lettura) quando viene creato il piano di ripristino, viene creato due volte. Il piano di ripristino viene propagato sia ai cluster di lettura/scrittura sia a quelli di sola lettura.

Quando modifichi il piano di ripristino di proprietà di un repository di backup con cluster di lettura/scrittura e di sola lettura impostati, devi modificare il piano di ripristino con TARGET CLUSTER impostato sul cluster di lettura/scrittura.

Modifica un piano di ripristino utilizzando la console GDC:

  1. Accedi alla console GDC.
  2. Nel menu di navigazione, fai clic su Backup per cluster.
  3. Fai clic su Seleziona progetto per selezionare un'organizzazione o un progetto a seconda del tuo ruolo:
    1. Amministratore backup cluster utente: seleziona un'organizzazione per visualizzare tutti i piani di ripristino in un'organizzazione o seleziona un progetto per visualizzare tutti i piani di ripristino in un progetto.
    2. Creatore di backup: seleziona un progetto per visualizzare tutti i piani di ripristino in un progetto.
  4. Fai clic sulla scheda Piani di ripristino.
  5. Fai clic sul nome del piano di ripristino che vuoi modificare.
  6. Fai clic sulla scheda Configurazione piano per visualizzare i campi che possono essere modificati.
  7. Fai clic sull'icona Modifica accanto a Risorse con spazio dei nomi per modificare la risorsa:

    1. Nella sezione Scegli risorse con spazio dei nomi, seleziona le risorse con spazio dei nomi nel backup che vuoi ripristinare:

      1. Seleziona Risorse con spazio dei nomi selezionate per ripristinare le risorse dagli spazi dei nomi selezionati nel backup:

        1. Seleziona Modifica spazi dei nomi del cluster per selezionare lo spazio dei nomi del cluster.
        2. Nel campo Spazio dei nomi del cluster 1, inserisci il nome dello spazio dei nomi.
        3. Fai clic sul pulsante Salva.
      2. Seleziona Applicazioni protette selezionate per ripristinare le risorse dalle applicazioni protette selezionate nel backup:

        1. Seleziona Modifica applicazioni protette per selezionare lo spazio dei nomi e l'applicazione protetta.
        2. Nel campo Spazio dei nomi 1, inserisci il nome dello spazio dei nomi.
        3. Nel campo Applicazione protetta 1, inserisci il nome dell'applicazione protetta.
        4. Fai clic sul pulsante Salva.
  8. Fai clic sull'icona Modifica accanto a Risorse con ambito cluster per modificare la risorsa:

    1. (Facoltativo) Nella sezione Scegli risorse con ambito cluster , seleziona le risorse con ambito cluster da ripristinare specificando i gruppi API e GroupKinds e decidi come risolvere i conflitti:

      1. Seleziona Non ripristinare le risorse con ambito cluster per rimuovere le risorse con ambito cluster dal processo di ripristino.
      2. Seleziona Ripristina le risorse con ambito cluster per GroupKind per ripristinare le risorse in base a GroupKind specificato:

      3. Per specificare un GroupKind, fai clic sul pulsante Modifica GroupKind.

      4. Fai clic sul pulsante Aggiungi GroupKind.

      5. Inserisci il nome di GroupKind.

      6. Fai clic sul pulsante Salva.

    2. Nella sezione Gestione dei conflitti, determina l'azione da intraprendere se la risorsa esiste già nel cluster di destinazione:

      1. Seleziona Conserva le risorse esistenti per creare le risorse se non esistono già nel cluster.
      2. Seleziona Sovrascrivi le risorse esistenti per eliminare le risorse esistenti trovate e sostituirle con la risorsa ripristinata.
    3. Fai clic sul pulsante Salva per confermare le modifiche.

  9. Nella sezione Regole di sostituzione, fai clic sul pulsante Aggiungi nuova regola per aggiungere una nuova regola di sostituzione:

    1. Nel campo Spazi dei nomi del cluster, inserisci il nome dello spazio dei nomi del cluster a cui applicare questa regola di sostituzione.
    2. Fai clic sul pulsante Aggiungi GroupKind per applicare questa regola a un determinato oggetto GroupKind.
    3. Nel campo Percorso JSON, inserisci il percorso dell'attributo della risorsa che vuoi sostituire, in formato JSON.
    4. Nel campo Pattern del valore originale, inserisci un'espressione regolare che corrisponde al valore originale dell'attributo.
    5. Nel campo Nuovo valore, inserisci il valore che viene sostituito per il campo di destinazione. Se questo campo è vuoto, il campo di destinazione viene rimosso dalla risorsa.
    6. Fai clic sul pulsante Salva per completare la creazione della nuova regola di sostituzione.
  10. Nella sezione Regole di sostituzione, fai clic sull'icona Modifica per modificare una regola di sostituzione esistente.

  11. Nella sezione Regole di sostituzione, fai clic sull'icona Elimina per eliminare una regola di sostituzione esistente.

Elimina un piano di ripristino

I RestorePlans possono essere eliminati tramite la console GDC o eliminando la risorsa direttamente dal server API Kubernetes. In questo modo vengono eliminati tutti gli artefatti RestorePlan associati dall'archiviazione degli oggetti.

Console

  1. Accedi alla console GDC.
  2. Nel menu di navigazione, fai clic su Backup per cluster.
  3. Fai clic su Seleziona progetto per selezionare un'organizzazione o un progetto a seconda del tuo ruolo:
    1. Amministratore backup cluster utente: seleziona un'organizzazione per visualizzare tutti i piani di ripristino in un'organizzazione o seleziona un progetto per visualizzare tutti i piani di ripristino in un progetto.
    2. Creatore di backup: seleziona un progetto per visualizzare tutti i piani di ripristino in un progetto.
  4. Fai clic sulla scheda Piani di ripristino.
  5. Fai clic sul nome del piano di ripristino che vuoi eliminare.
  6. Fai clic sul pulsante Elimina.
  7. Inserisci il nome del piano di ripristino nel campo.
  8. Fai clic sul pulsante Elimina per confermare l'eliminazione di questo piano di ripristino.

API

Elimina la risorsa del piano di ripristino:

kubectl delete clusterRestoreplan RESTORE_PLAN_NAME -n NAMESPACE

Sostituisci quanto segue:

  • RESTORE_PLAN_NAME: il nome del piano di ripristino.
  • NAMESPACE: lo spazio dei nomi che contiene il piano di ripristino.

Passaggi successivi