Gerenciar conflitos de recursos durante a restauração


Nesta página, descrevemos como configurar estratégias de tratamento de conflitos para recursos com namespace e com escopo de cluster em um plano de restauração.

Ao restaurar em um cluster, talvez você encontre conflitos de recursos nos seguintes cenários:

  • Fazer a restauração para um cluster atual que já tenha recursos provisionados.
  • Quando um recurso do Kubernetes é gerenciado por ferramentas, como o GitOps ou um operador.

O Backup para GKE oferece várias opções para definir o gerenciamento de conflitos recursos com escopo de cluster e com namespace que podem ser especificados em um plano de restauração.

Restaurar o tratamento de conflitos para recursos com escopo de cluster

É possível configurar as seguintes opções no plano de restauração para lidar com conflitos para recursos com escopo de cluster:

  • Manter os recursos no cluster de destino (não destrutivo): se um recurso com o mesmo nome no cluster de destino, não mude nada.
  • Substituir recursos no cluster de destino (destrutivo): se um recurso já no cluster de destino, excluir e restaurar a cópia do backup.

gcloud

Atualize um plano de restauração atual para lidar com conflitos relacionados a um recurso com escopo de cluster:

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

Substitua:

  • RESTORE_PLAN: o nome do plano de restauração que você quer atualizar.
  • PROJECT_ID: o ID do seu projeto do Google Cloud.
  • LOCATION: a região do Compute do recurso, por exemplo, us-central1;
  • CLUSTER_RESOURCE_CONFLICT_POLICY: define como lidar com conflitos de tempo de restauração para recursos de cluster selecionados. Use uma das seguintes opções:

    • use-existing-version: se os recursos que estão sendo restaurados já existirem no cluster de destino, o Backup para GKE manterá os recursos atuais.
    • use-backup-version: se os recursos que estão sendo restaurados já existirem no cluster de destino, o Backup para GKE substituirá os recursos atuais pelos novos recursos do backup.

Console

Use as instruções a seguir para atualizar a política de conflito de recursos com escopo de cluster no console do Google Cloud:

  1. No Console do Google Cloud, acesse a página do Google Kubernetes Engine.

    Acessar o Google Kubernetes Engine

  2. No menu de navegação, clique em Backup para GKE.

  3. Clique na guia Restaurar planos.

  4. Clique no nome do plano de restauração.

  5. Clique na guia Detalhes.

  6. Na seção Restaurar configurações, acesse a seção Recursos com escopo de cluster e clique em Editar.

  7. Na seção Definir o tratamento de conflitos, selecione uma opção.

  8. Clique em Salvar.

Restaurar o tratamento de conflitos para recursos com namespace

No plano de restauração, é possível configurar as seguintes opções para gerenciar conflitos para um recurso com namespace. É possível especificar o tratamento de conflitos para nos seguintes níveis:

  • Recurso individual
  • Namespace e ProtectedApplication
.

Confira a seguir as opções disponíveis para lidar com conflitos de recursos individuais:

  • Mesclar pular (não destrutivo): se um recurso específico já existir, pular a restauração do recurso a partir do backup.
  • Mesclar o volume de substituição (destrutivo): se um recurso específico já existir, pular a restauração desse recurso, mas substituir o volume permanente subjacente usando a política de restauração de dados de volume. O volume de substituição de mesclagem atinge a restauração somente de dados.
  • Mesclar substituição (destrutivo): se um recurso específico já existir, substitua esse recurso pelo do backup e do volume associado de dados seguindo a política de restauração de dados de volume.

Confira a seguir as opções disponíveis para lidar com conflitos de todos os recursos pertencentes a um Namespace e ProtectedApplication:

  • Falha em caso de conflito (não destrutivo): se o namespace ou ProtectedApplication destinada à restauração de um backup que já existir no cluster de destino, a restauração falhará.
  • Reversão (destrutiva): quando o cluster de destino contém o namespace ou ProtectedApplication, que são direcionadas para restauração no cluster, o grupo de recursos atual é excluído antes que os novos recursos sejam restaurados.

gcloud

Atualize um plano de restauração existente para lidar com conflitos de um recurso com namespace:

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

Substitua:

  • RESTORE_PLAN: o nome do plano de restauração que você quer atualizar.
  • PROJECT_ID: o ID do seu projeto do Google Cloud.
  • LOCATION: a região do Compute do recurso, por exemplo, us-central1.
  • NAMESPACED_RESOURCE_RESTORE_MODE: define como lidar com conflitos de tempo de restauração para recursos com namespace. Use uma das seguintes opções:

    • merge-skip-on-conflict: pula os recursos conflitantes individuais.
    • merge-replace-volume-on-conflict: pular o recursos conflitantes individuais, mas substituem os dados de volume permanente subjacentes.
    • merge-replace-on-conflict: substitua o elemento individual recursos conflitantes e dados de volume permanente subjacentes.
    • fail-on-conflict: falha no namespace conflitante ou na ProtectedApplication.
    • delete-and-restore: reverte o namespace conflitante ou a ProtectedApplication.

Console

Use as instruções a seguir para atualizar a política de conflito de recursos com namespace no console do Google Cloud:

  1. No Console do Google Cloud, acesse a página do Google Kubernetes Engine.

    Acessar o Google Kubernetes Engine

  2. No menu de navegação, clique em Backup para o GKE.

  3. Clique na guia Restaurar planos.

  4. Clique no nome do plano de restauração.

  5. Clique na guia Detalhes.

  6. Na seção Restaurar configurações, acesse a seção Recursos com namespace e clique em Editar.

  7. Na seção Definir o tratamento de conflitos, selecione uma opção.

  8. Clique em Salvar.

A tabela a seguir lista as estratégias recomendadas de tratamento de conflitos para determinados cenários comuns:

Scenarios Usar o tratamento de conflitos recomendado para um recurso com namespace Usar o tratamento de conflitos recomendado para um recurso com escopo de cluster
Restaurar para um cluster novo Falha por conflito Manter recursos no cluster de destino
Reverter todo o namespace ou ProtectedApplication Excluir e restaurar Não aplicável
Restaurar para um cluster gerenciado do GitOps sem volumes Mesclar pulos Manter recursos no cluster de destino
Restauração somente de dados para um cluster gerenciado do GitOps Mesclar substituição de volume Manter recursos no cluster de destino
Reverter dados de carga de trabalho e volume selecionados Mesclar substituição Substituir recursos no cluster de destino

A seguir