Gestire i conflitti di risorse durante il ripristino


Questa pagina descrive come configurare le strategie di gestione dei conflitti per le risorse con ambito cluster e spazio dei nomi 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 in cui sono già state eseguite operazioni di provisioning delle 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.

Gestione dei conflitti di ripristino 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 esiste una risorsa con lo stesso nome nel cluster di destinazione, lasciala così com'è.
  • Sostituisci le risorse nel cluster di destinazione (distruttivo): se una risorsa esiste già nel cluster di destinazione, eliminala e ripristina la copia dal backup.

gcloud

Aggiorna un piano di ripristino esistente per gestire i conflitti per una risorsa con ambito 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 che vuoi aggiornare.
  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • LOCATION: la regione di computing per la risorsa, ad esempio us-central1.
  • CLUSTER_RESOURCE_CONFLICT_POLICY: definisce come gestire i conflitti al momento del ripristino per le risorse del cluster selezionate. Utilizza una delle seguenti opzioni:

    • use-existing-version: se le risorse che vengono ripristinate esistono già nel cluster di destinazione, Backup per GKE le mantiene.
    • use-backup-version: se le risorse che vengono ripristinate esistono già nel cluster di destinazione, Backup per GKE sostituisce le risorse esistenti con le nuove risorse del backup.

Console

Segui queste istruzioni per aggiornare la policy di conflitto delle risorse con ambito 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 Restore configurations (Ripristina configurazioni), vai alla sezione Cluster-scoped resources (Risorse con ambito cluster) e fai clic su Edit (Modifica).

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

  8. Fai clic su Salva modifiche.

Gestione dei conflitti di ripristino 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 spazio dei nomi ai seguenti livelli:

  • Risorsa singola
  • Spazio dei nomi e applicazione protetta

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

  • Unione con salto (non distruttiva): 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 sostituisce il volume persistente sottostante utilizzando la policy di ripristino dei dati del volume. Il volume Unisci e sostituisci consente il ripristino solo dei dati.
  • Unione sostitutiva (distruttiva): se una risorsa specifica esiste già, sostituiscila con quella del backup e con i dati di volume associati seguendo la policy di ripristino dei dati del volume.

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

  • Errore in caso di conflitto (non distruttivo): se lo spazio dei nomi o ProtectedApplication di destinazione per il ripristino da un backup che esiste già nel cluster di destinazione, il ripristino non riesce.
  • Rollback (distruttivo): quando il cluster di destinazione contiene lo spazio dei nomi o l'ProtectedApplication di cui è previsto 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 i conflitti 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 che vuoi aggiornare.
  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • LOCATION: la regione di computing della risorsa, ad esempio us-central1.
  • NAMESPACED_RESOURCE_RESTORE_MODE: definisce come gestire i conflitti al momento del ripristino per le risorse con spazio dei nomi. Utilizza una delle seguenti opzioni:

    • merge-skip-on-conflict: ignora le singole risorse in conflitto.
    • merge-replace-volume-on-conflict: salta le singole risorse in conflitto, ma sostituisce i dati del volume permanente sottostante.
    • merge-replace-on-conflict: sostituisci le singole risorse in conflitto e i dati del volume permanente sottostanti.
    • fail-on-conflict: per non riuscire a risolvere il conflitto con lo spazio dei nomi o ProtectedApplication.
    • delete-and-restore: esegui il rollback dello spazio dei nomi in conflitto o di ProtectedApplication.

Console

Per aggiornare il criterio di conflitto delle risorse con spazio dei nomi nella console Google Cloud , segui queste istruzioni:

  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 Restore configurations (Ripristina configurazioni), vai alla sezione Namespaced resources (Risorse con spazio dei nomi) e fai clic su Edit (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 con ambito cluster
Ripristinare in un cluster nuovo di zecca Errore in caso di conflitto Mantieni le risorse nel cluster di destinazione
Esegui il rollback dell'intero spazio dei nomi o dell'ProtectedApplication Elimina e ripristina Non applicabile
Ripristinare 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 del volume e del carico di lavoro selezionati Unisci e sostituisci Sostituisci le risorse nel cluster di destinazione

Passaggi successivi