Gestire i conflitti di risorse durante il ripristino
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Autopilot
Standard
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:
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 :
Nella console Google Cloud , vai alla pagina Google Kubernetes Engine.
Nel menu di navigazione, fai clic su Backup per GKE.
Fai clic sulla scheda Ripristina piani.
Fai clic sul nome del piano di ripristino.
Fai clic sulla scheda Dettagli.
Nella sezione Restore configurations (Ripristina configurazioni), vai alla sezione Cluster-scoped resources (Risorse con ambito cluster) e fai clic su Edit (Modifica).
Nella sezione Definisci gestione dei conflitti, seleziona un'opzione di gestione dei conflitti.
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:
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:
Nella console Google Cloud , vai alla pagina Google Kubernetes Engine.
Nel menu di navigazione, fai clic su Backup per GKE.
Fai clic sulla scheda Ripristina piani.
Fai clic sul nome del piano di ripristino.
Fai clic sulla scheda Dettagli.
Nella sezione Restore configurations (Ripristina configurazioni), vai alla sezione Namespaced resources (Risorse con spazio dei nomi) e fai clic su Edit (Modifica).
Nella sezione Definisci gestione dei conflitti, seleziona un'opzione di gestione dei conflitti.
Fai clic su Salva modifiche.
Gestione dei conflitti consigliata per gli scenari comuni
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
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-01 UTC."],[],[],null,["# Handle resource conflicts during restore\n\nAutopilot Standard\n\n*** ** * ** ***\n\nThis page describes how to configure conflict handling strategies for\nnamespaced and cluster-scoped resources in a restore plan.\n\nWhen restoring to a cluster, you might encounter resource conflicts in the following scenarios:\n\n- Restoring to an existing cluster that already has resources provisioned.\n- When a Kubernetes resource is managed by tools, such as GitOps or an [operator](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/).\n\nBackup for GKE provides various options to define conflict handling for\ncluster-scoped and namespaced resources that you can specify in a [restore plan](/kubernetes-engine/docs/add-on/backup-for-gke/how-to/restore-plan#create_a_restore_plan).\n\nRestore conflict handling for cluster-scoped resources\n------------------------------------------------------\n\nYou can configure the following options in the restore plan to handle conflicts\nfor a cluster-scoped resources:\n\n- **Keep resources in target cluster (non-destructive)**: if a resource with the same name exists in the target cluster, leave it as it is.\n- **Replace resources in target cluster (destructive)**: if a resource already\n exists in the target cluster, delete it and restore the copy from the backup.\n\n | **Warning:** This option could cause unintentional data loss if used inappropriately. For example, deleting a `CustomResourceDefinition` will cause Kubernetes to delete all custom `CustomResource` of that type.\n\n### gcloud\n\nUpdate an existing restore plan to handle conflict for a cluster-scoped resource: \n\n gcloud beta container backup-restore restore-plans update \u003cvar translate=\"no\"\u003eRESTORE_PLAN\u003c/var\u003e \\\n --project=\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e \\\n --location=\u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e \\\n --cluster-resource-conflict-policy=\u003cvar translate=\"no\"\u003eCLUSTER_RESOURCE_CONFLICT_POLICY\u003c/var\u003e\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eRESTORE_PLAN\u003c/var\u003e: the name of the restore plan that you want to update.\n- \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the ID of your Google Cloud project.\n- \u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e: the [compute region](/compute/docs/regions-zones#available) for the resource, for example `us-central1`.\n- \u003cvar translate=\"no\"\u003eCLUSTER_RESOURCE_CONFLICT_POLICY\u003c/var\u003e: defines how to handle restore-time conflicts for selected cluster resources. Use one of the following options:\n\n - \u003cvar translate=\"no\"\u003euse-existing-version\u003c/var\u003e: if the resources that are being restored already exist in the target cluster, Backup for GKE keeps the existing resources.\n - \u003cvar translate=\"no\"\u003euse-backup-version\u003c/var\u003e: if the resources that are being restored already exist in the target cluster, Backup for GKE replaces the existing resources with the new resources from the backup.\n\n### Console\n\nUse the following instructions to update cluster-scoped resources conflict policy in the Google Cloud console:\n\n1. In the Google Cloud console, go to the **Google Kubernetes Engine** page.\n\n [Go to Google Kubernetes Engine](https://console.cloud.google.com/kubernetes/list)\n2. In the navigation menu, click **Backup for GKE**.\n\n3. Click the **Restore plans** tab.\n\n4. Click the restore plan name.\n\n5. Click the **Details** tab.\n\n6. In the **Restore configurations** section, go to the **Cluster-scoped resources** section and click **Edit**.\n\n7. In the **Define conflict handling** section, select a conflict handling option.\n\n8. Click **Save changes**.\n\nRestore conflict handling for namespaced resources\n--------------------------------------------------\n\nIn the restore plan, you can configure the following options to manage conflict\nfor a namespaced resource. You can specify conflict handling for namespaced\nresources at the following levels:\n\n- Individual resource\n- Namespace and ProtectedApplication\n\n| **Note:** If the restore plan includes destructive policies, such as merge replace volume, merge replace, and rollback, the PV and volume continue to exist but become orphaned and unused if the reclaim policy is [Retain](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#retain). If the reclaim policy is [Delete](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#delete), the PV and volume are deleted.\n\nThe following are the available options to handle conflicts for the individual resources:\n\n- **Merge skip (non-destructive)**: if a specific resource already exists, skip restoring the resource from the backup.\n- **Merge replace volume (destructive)**: if a specific resource already exists, skip restoring that resource but replace the underlying persistent volume using the volume data restore policy. The merge replace volume achieves the data-only restore.\n- **Merge replace (destructive)**: if a specific resource already exists, replace that resource with the one from backup and the associated volume data by following the volume data restore policy.\n\nThe following are the available options to handle conflicts of all resources\nbelonging to a **Namespace** and **ProtectedApplication**:\n\n- **Fail on conflict (non-destructive)** : if namespace or [ProtectedApplication](/kubernetes-engine/docs/add-on/backup-for-gke/how-to/protected-application) targeted for restore from a backup that already exists in the target cluster, the restore fails.\n- **Rollback (destructive)** : when the target cluster contains the namespace\n or [ProtectedApplication](/kubernetes-engine/docs/add-on/backup-for-gke/how-to/protected-application) that are targeted for restore to the cluster,\n the existing group of resources is deleted before the new resources are restored.\n\n### gcloud\n\nUpdate an existing restore plan to handle conflict for a namespaced resource: \n\n gcloud beta container backup-restore restore-plans update \u003cvar translate=\"no\"\u003eRESTORE_PLAN\u003c/var\u003e \\\n --project=\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e \\\n --location=\u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e \\\n --namespaced-resource-restore-mode=\u003cvar translate=\"no\"\u003eNAMESPACED_RESOURCE_RESTORE_MODE\u003c/var\u003e\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eRESTORE_PLAN\u003c/var\u003e: the name of the restore plan that you want to update.\n- \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the ID of your Google Cloud project.\n- \u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e: the [compute region](/compute/docs/regions-zones#available) for the resource, for example `us-central1`.\n- \u003cvar translate=\"no\"\u003eNAMESPACED_RESOURCE_RESTORE_MODE\u003c/var\u003e: defines how to\n handle restore-time conflicts for namespaced resources. Use one of the following options:\n\n - \u003cvar translate=\"no\"\u003emerge-skip-on-conflict\u003c/var\u003e: skip the individual conflicting resources.\n - \u003cvar translate=\"no\"\u003emerge-replace-volume-on-conflict\u003c/var\u003e: skip the individual conflicting resources but replace the underlying persistent volume data.\n - \u003cvar translate=\"no\"\u003emerge-replace-on-conflict\u003c/var\u003e: replace the individual conflicting resources and underlying persistent volume data.\n - \u003cvar translate=\"no\"\u003efail-on-conflict\u003c/var\u003e: to fail on conflicting namespace or [ProtectedApplication](/kubernetes-engine/docs/add-on/backup-for-gke/how-to/protected-application).\n - \u003cvar translate=\"no\"\u003edelete-and-restore\u003c/var\u003e: roll back conflicting namespace or [ProtectedApplication](/kubernetes-engine/docs/add-on/backup-for-gke/how-to/protected-application).\n\n### Console\n\nUse the following instructions to update namespaced resources conflict policy in the Google Cloud console:\n\n1. In the Google Cloud console, go to the **Google Kubernetes Engine** page.\n\n [Go to Google Kubernetes Engine](https://console.cloud.google.com/kubernetes/list)\n2. In the navigation menu, click **Backup for GKE**.\n\n3. Click the **Restore Plans** tab.\n\n4. Click the restore plan name.\n\n5. Click the **Details** tab.\n\n6. In the **Restore configurations** section, go to the **Namespaced resources** section and click **Edit**.\n\n7. In the **Define conflict handling** section, select a conflict handling option.\n\n8. Click **Save changes**.\n\nRecommended conflict handlings for common scenarios\n---------------------------------------------------\n\nThe following table lists the recommended conflict handling strategies for certain common scenarios:\n\nWhat's next\n-----------\n\n- Learn more about [restoring a backup](/kubernetes-engine/docs/add-on/backup-for-gke/how-to/restore)."]]