Pianifica una serie di ripristini


In questa pagina viene descritto come creare un piano di ripristino di Backup per GKE, che viene utilizzato per ripristinare i backup in Google Kubernetes Engine (GKE).

I piani di ripristino sono scenari di ripristino preconfigurati per una serie di backup corrispondente. I piani di ripristino possono assegnare autorizzazioni agli amministratori per l'utilizzo di queste configurazioni. Questi utenti possono ripristinare in modo rapido e indipendente un backup quando che si verifica un incidente. Ad esempio, i dati persistenti potrebbero essere danneggiati da un aggiornamento software in un'applicazione di cui è stato eseguito il deployment, mettendo il nome dello spazio dei nomi dell'applicazione in uno stato non valido, che richiede un ripristino.

Backup per GKE non supporta il ripristino di un backup da un progetto all'altro. Puoi ripristinare i backup solo nei cluster dello stesso progetto da cui ha avuto origine il backup. I piani di ripristino non possono fare riferimento a piani di backup in un'altra progetto.

Durante il ripristino, puoi applicare facoltativamente le regole di trasformazione, che vengono utilizzate per associare un insieme di risorse e sostituire il valore corrente di un attributo su queste risorse con un nuovo valore.

Prima di iniziare

Pianifica una serie di backup.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare e gestire un piano di ripristino, chiedi all'amministratore di concederti il ruolo IAM Backup for GKE Restore Admin (roles/gkebackup.restoreAdmin), che è un sottoinsieme del ruolo IAM Backup for GKE Admin (roles/gkebackup.admin), nel tuo progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.

Crea un piano di ripristino

Puoi creare un piano di ripristino per i tuoi backup utilizzando Google Cloud CLI oppure la console Google Cloud.

gcloud

Per creare un piano di ripristino, esegui il comando seguente:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=NAMESPACED_RESOURCE_RESTORE_MODE \
    --all-namespaces \
    --cluster-resource-conflict-policy=CLUSTER_RESOURCE_CONFLICT_POLICY \
    --cluster-resource-scope-selected-group-kinds=CLUSTER_RESOURCE_SCOPE \
    --volume-data-restore-policy=VOLUME_DATA_RESTORE_POLICY

Sostituisci quanto segue:

  • RESTORE_PLAN: il nome del piano di ripristino che vuoi creare.
  • PROJECT_ID: l'ID del tuo account Google Cloud progetto.
  • LOCATION: il regione di computing per la risorsa, ad esempio us-central1. Consulta Informazioni sulle località delle risorse. La località deve trovarsi nella stessa regione in cui si trova il cluster di destinazione.
  • BACKUP_PLAN: l'origine dei backup che possono essere ripristinato con questo piano di ripristino:
    • projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME Assicurati che il piano di backup sia nello stesso progetto del nuovo piano di ripristino.
  • CLUSTER: il nome del cluster di destinazione a cui vuoi recuperare il backup:

    • Cluster a livello di regione: projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
    • Cluster di zona: projects/PROJECT_ID/locations/ZONE/clusters/CLUSTER_NAME
  • NAMESPACED_RESOURCE_RESTORE_MODE: definisce le modalità gestire i conflitti in fase di ripristino per le risorse con spazio dei nomi. Ritmo dei nomi Le risorse vengono sempre ripristinate in gruppi, per spazio dei nomi o per ProtectedApplication. Utilizza una delle seguenti opzioni:

    • merge-skip-on-conflict: salta le singole risorse in conflitto.
    • merge-replace-volume-on-conflict: salta le singole risorse in conflitto, ma sostituisci i dati di volume permanenti sottostanti.
    • merge-replace-on-conflict: sostituisce le singole risorse in conflitto e i dati del volume permanente sottostanti.
    • delete-and-restore: quando il cluster di destinazione contiene lo stesso gruppo di risorse di destinazione del ripristino nel cluster, il gruppo di risorse esistente viene eliminato prima del ripristino delle nuove risorse.
    • fail-on-conflict: se eventuali gruppi di risorse oggetto del ripristino da un backup già esistente nel cluster di destinazione, il ripristino non riuscito.
  • --all-namespaces: ripristina tutte le risorse con spazio dei nomi nel backup. In alternativa, specifica:

    • --excluded-namespaces con un elenco di spazi dei nomi come NAMESPACE1,NAMESPACE2,... ripristinare tutti gli spazi dei nomi tranne quelli nell'elenco.
    • --selected-applications con un elenco di ProtectedApplications come NAMESPACE1/APP1,NAMESPACE2/APP2,... da ripristinare.
    • --selected-namespaces con un elenco di spazi dei nomi come NAMESPACE1,NAMESPACE2,... da ripristinare.
    • --no-namespaces non ripristina le risorse con spazio dei nomi nel backup. Questa opzione non può essere specificata insieme a --cluster-resource-scope-no-group-kinds.

    Quando crei un piano di ripristino, devi specificare una di queste opzioni.

  • CLUSTER_RESOURCE_CONFLICT_POLICY: definisce le modalità gestire i conflitti in fase di ripristino per le risorse del cluster selezionate. Utilizza una delle seguenti opzioni queste opzioni:

    • use-existing-version: se le risorse che vengono ripristinate esiste già nel cluster di destinazione, Backup per GKE conserva le risorse esistenti.

    • use-backup-version: se le risorse in fase di ripristino esistono già nel cluster di destinazione, Backup per GKE sostituisce le risorse esistenti con le nuove risorse del backup.

  • --cluster-resource-scope-selected-group-kinds: (facoltativo) ripristina le risorse del cluster con i tipi di gruppo selezionati nel formato Group/Kind. CLUSTER_RESOURCE_SCOPE definisce i tipi di gruppi delle risorse del cluster da ripristinare. Ad esempio, apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass.

    In alternativa, specifica:

    • cluster-resource-scope-all-group-kinds per selezionare tutti i tipi di gruppi di risorse del cluster da ripristinare.
    • cluster-resource-scope-excluded-group-kinds con un elenco di cluster tipi di gruppi di risorse per ripristinare tutti i tipi di gruppi di risorse del cluster escluse quelle presenti nell'elenco.
    • cluster-resource-scope-no-group-kinds. Questa opzione non può essere specificati insieme a --no-namespaces.

    Se non specifichi una di queste opzioni, le risorse del cluster non verranno ripristinate.

  • VOLUME_DATA_RESTORE_POLICY: definisce in che modo vengono compilati i dati per i volumi ripristinati. Utilizza una delle seguenti opzioni:

    • restore-volume-data-from-backup: i nuovi PV verranno ripristinati utilizzando i dati di backup del volume corrispondenti nel backup.

    • reuse-volume-handle-from-backup: verrà eseguito il pre-provisioning degli PV utilizzando l'handle di volume del volume permanente originale nel backup.

    • no-volume-data-restoration: i PV non verranno ripristinati. Il recupero ripristina solo i PVC selezionati e si aspetta che il driver di archiviazione corrispondente esegui il provisioning dinamico di PVC vuoti o li leghi a PVC pre-provisioned creati out-of-band.

Per l'elenco completo delle opzioni, consulta la documentazione di gcloud beta container backup-restore restore-plans create.

Crea un RecoveryPlan per tutti gli spazi dei nomi

Il comando seguente crea un RecoveryPlan per ripristinare tutti gli spazi dei nomi e le risorse del cluster:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=fail-on-conflict \
    --all-namespaces \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-all-group-kinds \
    --volume-data-restore-policy=restore-volume-data-from-backup

Creare un piano di ripristino per eseguire il rollback di uno spazio dei nomi

Il seguente comando crea un piano di ripristino per eseguire il rollback dello spazio dei nomi my-ns dal backup:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=delete-and-restore \
    --selected-namespaces=my-ns \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-selected-group-kinds=apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass \
    --volume-data-restore-policy=restore-volume-data-from-backup

Creare un piano di ripristino per eseguire il rollback di un ProtectedApplication e ricollegare i volumi originali

Il comando seguente crea un RecoveryPlan per eseguire il rollback Protected Application my-ns/my-app per riconnettere i volumi originali:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=delete-and-restore \
    --selected-applications=my-ns/my-app \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-no-group-kinds \
    --volume-data-restore-policy=reuse-volume-handle-from-backup

Crea un RecoveryPlan per ripristinare solo le risorse del cluster

Il seguente comando crea un piano di ripristino per ripristinare tutte le risorse del cluster:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=fail-on-conflict \
    --no-namespaces \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-all-group-kinds

Console

Segui le istruzioni riportate di seguito per creare un piano di ripristino nella console Google Cloud:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

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

  3. Fai clic su Crea un piano di ripristino.

  4. Nella sezione Assegna un nome al piano e scegli un cluster, completa la seguente e fai clic su Avanti:

    1. Inserisci il nome e, facoltativamente, la descrizione del piano di ripristino.
    2. Scegli un piano di backup per un cluster esistente che corrisponda ai backup che vuoi ripristinare.
    3. Scegli il cluster di destinazione in cui vuoi ripristinare il backup.
  5. Nella sezione Scegli risorse con spazio dei nomi, completa quanto segue e fai clic su Avanti:

    1. Scegli quali spazi dei nomi ripristinare:

      • Fai clic su Tutte le risorse con spazio dei nomi per ripristinare tutte le risorse con spazio dei nomi nel backup.
        1. Fai clic su Aggiungi spazi dei nomi nella sezione Eccezioni per escludere uno spazio dei nomi nel backup.
      • Fai clic su Risorse con spazio dei nomi selezionate per specificare gli spazi dei nomi nel backup da ripristinare.
      • Fai clic su Applicazioni protette selezionate per aggiungere risorse specificando lo spazio dei nomi e il nome dell'applicazione.
      • Fai clic su Nessuna risorsa con spazio dei nomi per non ripristinare le risorse con spazio dei nomi Google Cloud.
    2. Scegli come gestire i conflitti se sono selezionate risorse con spazio dei nomi:

      • Fai clic su Esegui unione ignorando (non distruttiva) se una risorsa specifica esiste già, salta il ripristino della risorsa dal backup.
      • Fai clic su Unisci e sostituisci volume (distruzione) se una risorsa specifica esiste già, salta il ripristino della risorsa, ma sostituisci il volume permanente sottostante utilizzando il criterio di ripristino dei dati del volume. Il volume di unione e sostituzione raggiunge il ripristino dei soli dati.
      • Fai clic su Unione e sostituzione (distruzione) se una risorsa specifica esiste già. Sostituisci la risorsa con quella del backup e con i dati di volume associati seguendo il criterio di ripristino dei dati del volume.
      • Fai clic su Errore in caso di conflitto (non distruttivo) per non andare a buon fine il ripristino, se esistono spazi dei nomi destinati al ripristino da un backup esistono già nel cluster di destinazione.
      • Fai clic su Rollback (distruttivo) per eliminare il tipo esistente prima di ripristinare quelli nuovi, se presenti scelto come target per il ripristino da un backup esiste già nella destinazione in un cluster Kubernetes.
    3. Scegli come ripristinare i dati del volume e fai clic su Avanti:

      • 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.
      • 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 modello non associato volume permanente che soddisfa le PersistentVolumeClaim di sicurezza, il cluster è associato al volume.
      • Fai clic su Riutilizza i volumi esistenti contenenti i tuoi dati per non ripristinare i dati di backup del volume. Eventuali PersistentVolumeClaims sono associati a volumi che fanno riferimento a dischi permanenti esistenti.
  6. (Facoltativo) Nella sezione Scegli risorse con ambito cluster, completa quanto segue e fai clic su Avanti:

    1. Scegli i tipi di gruppi da ripristinare:

      • Fai clic su Tutte le risorse con ambito cluster per ripristinare tutte le risorse con ambito cluster nel backup.
        1. Fai clic su Aggiungi tipi di gruppo nella sezione Eccezioni per escludere qualsiasi risorsa basata su cluster nel backup.
      • Fai clic su Risorse con ambito cluster selezionate per specificare le risorse con ambito cluster nel backup da ripristinare. apiextensions.k8s.io/CustomResourceDefinition e storage.k8s.io/StorageClass sono selezionati per impostazione predefinita. Fai clic su Aggiungi tipo di gruppo per aggiungere altre risorse a livello di cluster.
      • Fai clic su Nessuna risorsa con ambito cluster per scegliere di non eseguire il ripristino a qualsiasi risorsa del cluster.
    2. Scegli come gestire i conflitti se sono presenti risorse con ambito cluster selezionato:

      • Fai clic su Mantieni le risorse nel cluster di destinazione per saltare una risorsa se esiste già nel cluster di destinazione.
      • Fai clic su Sostituisci 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 trasformazione, completa seguente e fai clic su Avanti:

    1. Fai clic su Aggiungi regola e inserisci una descrizione facoltativa.
    2. Se vuoi limitare le regole di trasformazione alle risorse che soddisfano condizioni specifiche, segui questi passaggi nella sezione Specificare condizioni e azioni delle risorse:
      1. Fai clic su Condizione spazi dei nomi e digita un elenco di spazi dei nomi per trovare corrispondenze delle risorse all'interno di quegli spazi dei nomi.
      2. Fai clic su Condizione di Groupkind e digita il tipo di gruppo API, quindi digita il tipo di oggetto. In questo modo, un gruppo di API viene associato alle risorse all'interno di questi tipi.
      3. Fai clic su Condizione percorso JSON e digita il percorso JSON che identifica i campi all'interno delle risorse corrispondenti a cui si applica la trasformazione.
      4. Digita il nuovo valore che sostituisce il valore corrente degli attributi corrispondenti oppure seleziona la casella di controllo Sostituisci valori specifici (utilizzando un'espressione regolare). Quindi digita il pattern da confrontare con il valore corrente di queste risorse.
    3. Fai clic su Salva modifiche.
  8. Esamina i dettagli del piano di ripristino e fai clic su Crea piano.

Visualizzare un piano di ripristino

Puoi visualizzare un piano di ripristino e i relativi dettagli utilizzando gcloud CLI o nella console Google Cloud.

gcloud

Per elencare tutti i piani di ripristino all'interno del progetto e della località, esegui il seguente comando:

gcloud beta container backup-restore restore-plans list \
    --project=PROJECT_ID \
    --location=LOCATION

Solo per i comandi list, puoi fornire - come valore per qualsiasi parametri, tranne PROJECT_ID. Il valore - agisce come un carattere jolly. Il valore - è il valore predefinito per qualsiasi parametro, se non lo specifichi per specificare un'opzione a riga di comando o impostare una proprietà.

Per l'elenco completo delle opzioni, consulta gcloud beta container backup-restore restore-plans list documentazione.

Per visualizzare i dettagli di un piano di ripristino, esegui il seguente comando:

gcloud beta container backup-restore restore-plans describe RESTORE_PLAN \
     --project=PROJECT_ID \
     --location=LOCATION

Console

Segui queste istruzioni per visualizzare un piano di ripristino e i relativi dettagli nella console Google Cloud:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

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

  3. Fai clic sulla scheda Ripristina piani.

  4. Espandi il piano di backup e fai clic sul nome del piano di ripristino.

  5. Fai clic sulla scheda Dettagli per visualizzare i relativi dettagli.

Aggiorna un piano di ripristino

Aggiorna un piano di ripristino e i relativi dettagli utilizzando gcloud CLI.

gcloud

Per aggiornare un piano di ripristino, ad esempio aggiungendo una nuova descrizione, esegui il seguente comando:

gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --description=DESCRIPTION

Per l'elenco completo delle opzioni, consulta la documentazione di gcloud beta container backup-restore restore-plans update.

Console

Segui le istruzioni riportate di seguito per aggiornare un piano di ripristino nella console Google Cloud:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

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

  3. Fai clic sulla scheda Piani di ripristino.

  4. Fai clic sul nome del piano di ripristino.

  5. Fai clic sulla scheda Dettagli.

  6. Fai clic su Modifica per modificare una sezione del piano e poi su Salva modifiche.

Eliminare un piano di ripristino

Puoi eliminare un piano di ripristino utilizzando gcloud CLI o nella console Google Cloud. L'eliminazione di un piano di ripristino comporta anche l'eliminazione di eventuali piani di ripristino secondari.

gcloud

Per eliminare un piano di ripristino, esegui il seguente comando:

gcloud beta container backup-restore restore-plans delete RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION

Per l'elenco completo delle opzioni, consulta gcloud beta container backup-restore restore-plans delete documentazione.

Console

Segui queste istruzioni per eliminare un piano di ripristino nella console Google Cloud:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

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

  3. Fai clic sulla scheda Piani di ripristino.

  4. Espandi il cluster e fai clic sul nome del piano.

  5. Fai clic su Elimina piano.

  6. Digita il nome del piano di ripristino e fai clic su Elimina piano di ripristino nella finestra di dialogo di conferma.

Passaggi successivi