Planeie um conjunto de restauros

Esta página descreve como criar, editar e eliminar um plano de restauro no Google Distributed Cloud (GDC) air-gapped.

Os planos de restauro são cenários de restauro pré-configurados para uma linha correspondente de cópias de segurança. Os planos de restauro podem atribuir autorizações para os utilizadores com a função de criador de cópias de segurança usarem estas configurações.

Os criadores de cópias de segurança podem restaurar rapidamente e de forma independente uma cópia de segurança quando ocorre um incidente. Por exemplo, os dados persistentes podem ser danificados por uma atualização de software numa aplicação implementada, o que coloca o espaço de nomes da aplicação num estado inválido, que requer um restauro.

Durante o restauro, pode aplicar opcionalmente um conjunto de regras de substituição que são usadas para corresponder a um conjunto de recursos e substituir o valor atual de um atributo nesses recursos por um novo valor. Por exemplo, uma regra de substituição pode alterar o espaço de nomes dos recursos com cópia de segurança durante o restauro para migrar uma carga de trabalho de um espaço de nomes para outro.

Antes de começar

Para criar um plano de restauro, precisa do seguinte:

  • A função de identidade e acesso necessária:

    • Administrador de cópias de segurança de clusters de utilizadores: gere recursos de cópias de segurança, como planos de cópias de segurança e restauro, em clusters de utilizadores. Peça ao administrador de IAM da organização para lhe atribuir a função de administrador de cópias de segurança de clusters de utilizadores (user-cluster-backup-admin). Para mais informações, consulte o artigo Definições de funções.
    • Se for um operador de aplicações, peça ao administrador com privilégios de administrador de cópias de segurança de clusters de utilizadores para criar um plano de restauro para si.

Crie um plano de restauro

Crie um plano de restauro através da consola do GDC ou da API.

Consola

  1. Inicie sessão na consola do GDC.
  2. No menu de navegação, clique em Cópia de segurança para clusters.
  3. Clique em Criar plano de restauro.
  4. Na secção Informações básicas do plano de restauro, conclua os seguintes passos e clique em Seguinte:
    1. Em Nome do plano de restauro, introduza o nome do plano de restauro.
    2. (Opcional) Em Descrição do plano de restauro , introduza uma descrição para o plano de restauro.
    3. Na lista Cluster de origem, escolha o cluster de origem para o plano de restauro.
    4. Na lista Projeto, escolha o projeto para o plano de restauro.
    5. Selecione o projeto que está anexado ao cluster de origem.
    6. No campo Plano de cópias de segurança, escolha um plano de cópias de segurança para um cluster existente que corresponda às cópias de segurança que quer restaurar.
    7. No campo Cluster de destino, escolha o cluster de destino onde quer restaurar a cópia de segurança.
  5. Na secção Escolha recursos com espaço de nomes, conclua os seguintes passos e clique em Seguinte:
    1. Escolha os espaços de nomes a restaurar:
      1. Clique em Recursos com espaço de nomes selecionados para especificar os espaços de nomes na cópia de segurança a restaurar.
        1. Clique em Editar espaços de nomes do cluster e, de seguida, em Adicionar espaço de nomes do cluster para introduzir um espaço de nomes.
      2. Clique em Aplicações protegidas selecionadas para adicionar recursos especificando o espaço de nomes e o nome da aplicação.
    2. Escolha como processar conflitos:
      1. Clique em Falhar em caso de conflito (não destrutivo) para falhar o restauro se algum espaço de nomes segmentado para restauro a partir de uma cópia de segurança já existir no cluster de destino.
      2. Clique em Reverter (destrutivo) para eliminar os espaços de nomes existentes antes de restaurar os novos espaços de nomes se algum espaço de nomes segmentado para restauro a partir de uma cópia de segurança já existir no cluster de destino.
    3. Escolha como restaurar os dados de volume:
      1. Clique em Criar novos volumes e restaurar dados de volume a partir da cópia de segurança para restaurar os dados de volume a partir da cópia de segurança num novo disco persistente.
      2. Clique em Não restaurar dados de volume para criar um novo volume persistente. Se o cluster de destino contiver um volume persistente não associado que satisfaça os requisitos de PersistentVolumeClaim, o cluster é associado ao volume.
      3. Clique em Reutilizar volumes existentes que contêm os seus dados para não restaurar os dados de cópia de segurança de volume. Todos os PersistentVolumeClaims estão associados a volumes que referenciam discos persistentes existentes.
  6. Opcional: na secção Escolha recursos com âmbito de cluster, conclua os seguintes passos e clique em Seguinte:
    1. Clique em Não restaurar recursos com âmbito de cluster para deixar a versão existente do recurso intacta.
    2. Clique em Restaurar recursos com âmbito de cluster por GroupKind para restaurar estes recursos.
      1. Clique em Editar GroupKinds para adicionar mais recursos com âmbito de cluster. Introduza o Grupo de API e o Tipo de objeto para corresponder a recursos nesses tipos.
    3. Clique em Preservar recursos existentes para criar recursos se não existirem no cluster de destino.
    4. Clique em Substituir recursos no cluster de destino para eliminar um recurso se já existir no cluster de destino e restaurar a cópia a partir da cópia de segurança.
  7. Opcional: na secção Adicione regras de substituição, conclua os seguintes passos e clique em Seguinte:
    1. Clique em Adicionar nova regra.
    2. Na caixa Espaços de nomes do cluster, escreva uma lista de espaços de nomes para corresponder a recursos nesses espaços de nomes.
    3. Para adicionar GroupKinds, clique em Adicionar GroupKind e introduza o Grupo de API e o Tipo de objeto para corresponder a recursos nesses tipos.
    4. No campo Caminho JSON, escreva o caminho JSON que identifica os campos nos recursos correspondentes para os quais a substituição se aplica.
    5. No campo Padrão de valor original, escreva o padrão original para comparar com o novo valor.
    6. No campo Novo valor, escreva o novo valor que substitui o valor atual dos atributos correspondentes.
    7. Clique em Guardar.
  8. Clique em Criar.

API

Crie um recurso personalizado ClusterRestorePlan para planear restauros a partir de um ClusterBackupPlan existente. O ClusterRestorePlan atribui o conjunto exato de recursos e espaços de nomes que um criador de cópias de segurança tem autorização para restaurar. Segue-se um exemplo de um ClusterRestorePlan:

apiVersion: backup.gdc.goog/v1
kind: ClusterRestorePlan
metadata:
  name: RESTORE_PLAN_NAME
  namespace:  PROJECT_NAME
spec:
  targetCluster:
    targetClusterType: UserCluster
    targetClusterName:
      kind: "Cluster"
      name: CLUSTER_NAME
  description: RESTORE_PLAN_DESCRIPTION
  clusterBackupPlanName: CLUSTER_BACKUP_PLAN_NAME
  clusterRestoreConfig:
    volumeDataRestorePolicy: RestoreVolumeDataFromBackup
    clusterResourceConflictPolicy: UseBackupVersion
    namespacedResourceRestoreMode: DeleteAndRestore
    namespacedResourceRestoreScope:
      selectedNamespaces:
        namespaces: [NAME_SPACE]
    clusterBackupRepositoryRef: CLUSTER_BACKUP_REPOSITORY
    substitutionRules:
      - newValue: NEW_CONFIG_VALUE
        originValuePattern: VALUE_PATTERN
        target:
          groupKinds:
          jsonPath: '{.metadata.name}'
          namespaces:
          - NAME_SPACE
      - newValue: NEW_CONFIG_VALUE
        originValuePattern: VALUE_PATTERN
        target:
          groupKinds:
          jsonPath: '{.metadata.name}'
          namespaces:
          - NAME_SPACE

Substitua o seguinte:

  • Substitua RESTORE_PLAN_NAME pelo nome do plano de restauro.
  • Substitua PROJECT_NAME pelo nome do projeto do GDC.
  • Substitua CLUSTER_NAME pelo nome do cluster.

Este exemplo usa os seguintes valores:


Valor

Atributo

Descrição
targetClusterName Nome do cluster de origem num projeto ao qual este plano está associado.
description Uma descrição fornecida pelo utilizador para a finalidade do ClusterRestorePlan.
clusterBackupPlanName O nome do ClusterBackupPlan a restaurar. O ClusterBackupPlan tem de existir no mesmo espaço de nomes que o ClusterRestorePlan.
clusterRestoreConfig Configuração para o processo de restauro.
volumeDataRestorePolicy Especifique uma das seguintes opções:
  • NoVolumeDataRestoration: os PVs/PVCs não são restaurados.
  • RestoreVolumeDataFromBackup: são criados novos PVs e PVCs a partir da cópia de segurança.
  • ReuseVolumeHandleFromBackup: não cria novos PVs, mas tenta restaurar os PVCs com os respetivos PVs originais. Destina-se ao restauro para o mesmo cluster a partir do qual a cópia de segurança foi feita.
clusterResourceConflictPolicy Especifica o comportamento para o tratamento de conflitos de recursos de cluster, como se o recurso já existir no cluster. Especifique uma das seguintes opções:
  • UseExistingVersion: não substitui os recursos existentes durante o conflito
  • UseBackupVersion: elimina e recria recursos de cluster existentes durante o conflito. Os recursos com âmbito de cluster existentes no cluster de destino são substituídos pelas versões da cópia de segurança. Esta é uma opção perigosa que pode causar perda de dados não intencional se for usada de forma inadequada. Por exemplo, a eliminação de uma definição de recurso personalizado faz com que o Kubernetes elimine todos os recursos personalizados desse tipo.
namespacedResourceRestoreMode Trata a situação em que os conjuntos de recursos com espaço de nomes que estão a ser restaurados já existem no cluster de destino. Especifique uma das seguintes opções:
  • DeleteAndRestore: quando são encontrados recursos de nível superior em conflito, como os Namespaces ou ProtectedApplications, esta opção aciona primeiro uma eliminação do recurso em conflito e de todos os respetivos recursos referenciados antes de restaurar os recursos a partir da Backup. Use este modo apenas quando pretender reverter parte de um cluster para um estado anterior.
  • FailOnConflict: se forem encontrados recursos de nível superior em conflito como o recurso Namespace ou ProtectedApplication, no início do processo de restauro ou durante o processo de restauro, o Restore falha.
  • MergeSkipOnConflict: se forem encontrados recursos em conflito durante o processo de restauro, este modo ignora o restauro dos recursos em conflito a partir da cópia de segurança e continua a restaurar outros recursos que não estão no cluster.
  • MergeReplaceOnConflict: se forem encontrados recursos em conflito durante o processo de restauro, este modo substitui os recursos em conflito a partir da cópia de segurança e continua a restaurar outros recursos que não estão no cluster.
namespacedResourceRestoreScope Especifica quais Namespaces ou ProtectedApplications têm autorização para restauro.
  • selectedApplications associa aplicações protegidas a este restauro.
  • selectedNamespaces contém NAME_SPACE que especifica o espaço de nomes a restaurar a partir da cópia de segurança.
clusterBackupRepositoryRef Especifica o repositório para armazenar os Restore recursos. Este repositório pode ser diferente do repositório de onde a cópia de segurança é feita. O repositório tem de ser um ReadWrite repositório no cluster.
substitutionRules Regras para substituir valores nos recursos do Kubernetes com cópia de segurança durante o restauro. Uma lista vazia significa que não ocorre nenhuma substituição. As regras de substituição são aplicadas sequencialmente pela ordem definida. Esta ordem é importante, uma vez que as alterações feitas por uma regra podem afetar a lógica de correspondência da regra subsequente. Cada regra especifica um target, um originValuePattern para corresponder (VALUE_PATTERN) e um newValue (NEW_CONFIG_VALUE) para substituir. O target pode incluir namespaces para definir o âmbito da regra (NAME_SPACE).

Depois de criar um ClusterRestorePlan, os utilizadores com a função de criador de cópias de segurança podem restaurar manualmente as cópias de segurança.

Veja um plano de restauro

Veja um plano de restauro através da consola do GDC:

  1. Inicie sessão na consola do GDC.
  2. No menu de navegação, clique em Cópia de segurança para clusters.
  3. Clique em Selecionar projeto para selecionar uma organização ou um projeto, consoante a sua função:
    1. Administrador de cópias de segurança de clusters de utilizadores: selecione uma organização para ver todos os planos de restauro numa organização ou selecione um projeto para ver todos os planos de restauro num projeto.
    2. Criador de cópias de segurança: selecione um projeto para ver todos os planos de restauro num projeto.
  4. Clique no separador Planos de restauro.
  5. Clique num plano de restauro na lista para ver os respetivos detalhes.

Edite um plano de restauro

Se o repositório de cópias de segurança associado ao plano de restauro que quer editar tiver um valor no campo Cluster associado(só de leitura) quando o plano de restauro é criado, este é criado duas vezes. O plano de restauro é propagado para os clusters de leitura/escrita e só de leitura.

Quando edita o plano de restauro pertencente a um repositório de cópias de segurança que tem clusters de leitura/escrita e só de leitura definidos, tem de editar o plano de restauro que tem o TARGET CLUSTER definido para o cluster de leitura/escrita.

Edite um plano de restauro através da consola do GDC:

  1. Inicie sessão na consola do GDC.
  2. No menu de navegação, clique em Cópia de segurança para clusters.
  3. Clique em Selecionar projeto para selecionar uma organização ou um projeto, consoante a sua função:
    1. Administrador de cópias de segurança de clusters de utilizadores: selecione uma organização para ver todos os planos de restauro numa organização ou selecione um projeto para ver todos os planos de restauro num projeto.
    2. Criador de cópias de segurança: selecione um projeto para ver todos os planos de restauro num projeto.
  4. Clique no separador Planos de restauro.
  5. Clique no nome do plano de restauro que quer editar.
  6. Clique no separador Configuração do plano para ver os campos que podem ser modificados.
  7. Clique no ícone de edição junto a Recursos com espaço de nomes para editar esse recurso:

    1. Na secção Escolha recursos com espaço de nomes, selecione os recursos com espaço de nomes na cópia de segurança que quer restaurar:

      1. Selecione Recursos com espaço de nomes selecionados para restaurar recursos dos espaços de nomes selecionados na cópia de segurança:

        1. Selecione Editar espaços de nomes do cluster para selecionar o espaço de nomes do cluster.
        2. No campo Espaço de nomes do cluster 1, introduza o nome do espaço de nomes.
        3. Clique no botão Guardar.
      2. Selecione Aplicações protegidas selecionadas para restaurar recursos das aplicações protegidas selecionadas na cópia de segurança:

        1. Selecione Editar aplicações protegidas para selecionar o espaço de nomes e a aplicação protegida.
        2. No campo Espaço de nomes 1, introduza o nome do espaço de nomes.
        3. No campo Aplicação protegida 1, introduza o nome da aplicação protegida.
        4. Clique no botão Guardar.
  8. Clique no ícone de edição junto a Recursos com âmbito de cluster para editar esse recurso:

    1. Opcional: na secção Escolha recursos com âmbito de cluster, selecione os recursos com âmbito de cluster a restaurar especificando os grupos de API e os GroupKinds, e decida como os conflitos têm de ser resolvidos:

      1. Selecione Não restaurar recursos com âmbito de cluster para remover recursos com âmbito de cluster do processo de restauro.
      2. Selecione Restaurar recursos com âmbito de cluster por GroupKind para restaurar os recursos pelo GroupKind especificado:

      3. Para especificar um GroupKind, clique no botão Editar GroupKind.

      4. Clique no botão Adicionar GroupKind.

      5. Introduza o nome do GroupKind.

      6. Clique no botão Guardar.

    2. Na secção Tratamento de conflitos, determine a ação a realizar se o recurso já existir no cluster de destino:

      1. Selecione Preservar recursos existentes para criar recursos se ainda não existirem no cluster.
      2. Selecione Substituir recursos existentes para eliminar todos os recursos existentes encontrados e substituir este recurso pelo recurso restaurado.
    3. Clique no botão Guardar para confirmar as alterações.

  9. Na secção Regras de substituição, clique no botão Adicionar nova regra para adicionar uma nova regra de substituição:

    1. No campo Espaços de nomes do cluster, introduza o nome do espaço de nomes do cluster para o qual aplicar esta regra de substituição.
    2. Clique no botão Adicionar GroupKind para aplicar esta regra a um determinado objeto GroupKind.
    3. No campo Caminho JSON, introduza o caminho para o atributo do recurso que quer substituir, no formato JSON.
    4. No campo Padrão de valor original, introduza uma expressão regular que corresponda ao valor original do atributo.
    5. No campo Novo valor, introduza o valor que é substituído pelo campo de destino. Se este campo estiver em branco, o campo de destino é removido do recurso.
    6. Clique no botão Guardar para concluir a criação da nova regra de substituição.
  10. Na secção Regras de substituição, clique no ícone de edição para editar uma regra de substituição existente.

  11. Na secção Regras de substituição, clique no ícone de eliminação para eliminar uma regra de substituição existente.

Elimine um plano de restauro

Os RestorePlans podem ser eliminados através da consola do GDC ou eliminando o recurso diretamente do servidor da API Kubernetes. Esta ação limpa todos os artefactos RestorePlan associados do armazenamento de objetos.

Consola

  1. Inicie sessão na consola do GDC.
  2. No menu de navegação, clique em Cópia de segurança para clusters.
  3. Clique em Selecionar projeto para selecionar uma organização ou um projeto, consoante a sua função:
    1. Administrador de cópias de segurança de clusters de utilizadores: selecione uma organização para ver todos os planos de restauro numa organização ou selecione um projeto para ver todos os planos de restauro num projeto.
    2. Criador de cópias de segurança: selecione um projeto para ver todos os planos de restauro num projeto.
  4. Clique no separador Planos de restauro.
  5. Clique no nome do plano de restauro que quer eliminar.
  6. Clique no botão Eliminar.
  7. Introduza o nome do plano de restauro no campo.
  8. Clique no botão Eliminar para confirmar a eliminação deste plano de restauro.

API

Elimine o recurso do plano de restauro:

kubectl delete clusterRestoreplan RESTORE_PLAN_NAME -n NAMESPACE

Substitua o seguinte:

  • RESTORE_PLAN_NAME: o nome do plano de restauro.
  • NAMESPACE: o espaço de nomes que contém o plano de restauro.

O que se segue?