Gestire i conflitti di risorse durante il ripristino


Questa pagina descrive come configurare le strategie di gestione dei conflitti per le risorse con spazio dei nomi e a livello di cluster in un piano di ripristino.

Quando esegui il ripristino in un cluster, potresti riscontrare conflitti di risorse nei seguenti scenari:

  • Ripristino in un cluster esistente per cui sono già state provisionate le risorse.
  • Quando una risorsa Kubernetes è gestita da strumenti come GitOps o un operatore.

Backup per GKE offre varie opzioni per definire la gestione dei conflitti per le risorse con ambito cluster e con spazio dei nomi che puoi specificare in un piano di ripristino.

Ripristinare la gestione dei conflitti per le risorse con ambito cluster

Puoi configurare le seguenti opzioni nel piano di ripristino per gestire i conflitti per le risorse con ambito cluster:

  • Mantieni le risorse nel cluster di destinazione (non distruttivo): se nel cluster di destinazione esiste già una risorsa con lo stesso nome, lasciala invariata.
  • Sostituisci le risorse nel cluster di destinazione (operazione distruttiva): se nel cluster di destinazione esiste già una risorsa, eliminala e ripristina la copia dal backup.

gcloud

Aggiorna un piano di ripristino esistente per gestire il conflitto per una risorsa basata su cluster:

gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --cluster-resource-conflict-policy=CLUSTER_RESOURCE_CONFLICT_POLICY

Sostituisci quanto segue:

  • RESTORE_PLAN: il nome del piano di ripristino da aggiornare.
  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • LOCATION: la regione di calcolo per la risorsa, ad esempio us-central1.
  • CLUSTER_RESOURCE_CONFLICT_POLICY: definisce come gestire i conflitti relativi al momento del ripristino per le risorse del cluster selezionate. Utilizza una delle seguenti opzioni:

    • use-existing-version: se le risorse in fase di ripristino esistono già nel cluster di destinazione, Backup per GKE mantiene 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.

Console

Segui le istruzioni riportate di seguito per aggiornare il criterio di conflitto delle risorse a livello di cluster 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 Ripristina piani.

  4. Fai clic sul nome del piano di ripristino.

  5. Fai clic sulla scheda Dettagli.

  6. Nella sezione Ripristina configurazioni, vai alla sezione Risorse basate su cluster e fai clic su Modifica.

  7. Nella sezione Definisci gestione dei conflitti, seleziona un'opzione di gestione dei conflitti.

  8. Fai clic su Salva modifiche.

Ripristina la gestione dei conflitti per le risorse con spazio dei nomi

Nel piano di ripristino, puoi configurare le seguenti opzioni per gestire i conflitti per una risorsa con spazio dei nomi. Puoi specificare la gestione dei conflitti per le risorse con nome a livello di:

  • Risorsa singola
  • Namespace e ProtectedApplication

Di seguito sono riportate le opzioni disponibili per gestire i conflitti per le singole risorse:

  • Salto dell'unione (non distruttivo): se una risorsa specifica esiste già, salta il ripristino della risorsa dal backup.
  • Unisci e sostituisci volume (distruttivo): 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 Unisci e sostituisci consente di eseguire il ripristino solo dei dati.
  • Sostituzione tramite unione (distruzione): se una risorsa specifica esiste già, la sostituisce con quella del backup e con i dati di volume associati seguendo il criterio di ripristino dei dati del volume.

Di seguito sono riportate le opzioni disponibili per gestire i conflitti di tutte le risorse appartenente a uno spazio dei nomi e a un'applicazione protetta:

  • Non riesce in caso di conflitto (non distruttivo): se lo spazio dei nomi o l'ProtectedApplication di destinazione del ripristino da un backup già esistente nel cluster di destinazione, il ripristino non riesce.
  • Rollback (distruzione): quando il cluster di destinazione contiene lo spazio dei nomi o l'applicazione protetta di destinazione per il ripristino nel cluster, il gruppo di risorse esistente viene eliminato prima del ripristino delle nuove risorse.

gcloud

Aggiorna un piano di ripristino esistente per gestire il conflitto per una risorsa con spazio dei nomi:

gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --namespaced-resource-restore-mode=NAMESPACED_RESOURCE_RESTORE_MODE

Sostituisci quanto segue:

  • RESTORE_PLAN: il nome del piano di ripristino da aggiornare.
  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • LOCATION: la regione di calcolo per la risorsa, ad esempio us-central1.
  • NAMESPACED_RESOURCE_RESTORE_MODE: definisce come gestire i conflitti relativi al momento del ripristino per le risorse con spazio dei nomi. 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 del volume persistente sottostante.
    • merge-replace-on-conflict: sostituisci le singole risorse in conflitto e i dati dei volumi permanenti sottostanti.
    • fail-on-conflict: per non riuscire a eseguire l'operazione in caso di conflitto di spazio dei nomi o ProtectedApplication.
    • delete-and-restore: esegui il rollback del namespace o di ProtectedApplication in conflitto.

Console

Segui le istruzioni riportate di seguito per aggiornare il criterio di conflitto delle risorse con nome nello spazio dei nomi 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 Piani di ripristino.

  4. Fai clic sul nome del piano di ripristino.

  5. Fai clic sulla scheda Dettagli.

  6. Nella sezione Ripristina configurazioni, vai alla sezione Risorse con nome nello spazio dei nomi e fai clic su Modifica.

  7. Nella sezione Definisci gestione dei conflitti, seleziona un'opzione di gestione dei conflitti.

  8. Fai clic su Salva modifiche.

La tabella seguente elenca le strategie di gestione dei conflitti consigliate per alcuni scenari comuni:

Scenari Utilizzare la gestione dei conflitti consigliata per una risorsa con spazio dei nomi Utilizzare la gestione dei conflitti consigliata per una risorsa basata su cluster
Ripristino in un nuovo cluster Errore in caso di conflitto Mantieni le risorse nel cluster di destinazione
Ripristinare l'intero spazio dei nomi o l'applicazione protetta Elimina e ripristina Non applicabile
Ripristino in un cluster gestito da GitOps senza volumi Unisci e salta Mantieni le risorse nel cluster di destinazione
Ripristino solo dei dati per un cluster gestito da GitOps Unisci e sostituisci volume Mantieni le risorse nel cluster di destinazione
Esegui il rollback dei dati di volume e del carico di lavoro selezionati Unisci e sostituisci Sostituisci le risorse nel cluster di destinazione

Passaggi successivi