Neste documento, descrevemos como criar, editar e excluir um plano de restauração no Google Distributed Cloud (GDC) com isolamento físico.
Os planos de restauração são cenários de restauração pré-configurados para uma linha correspondente de backups. Os planos de restauração podem atribuir permissões para que os usuários com o papel de criador de backup usem essas configurações.
Os criadores de backup podem restaurar um backup de maneira rápida e independente quando ocorre um incidente. Por exemplo, os dados permanentes podem ser corrompidos por uma atualização de software em um aplicativo implantado, colocando o namespace do aplicativo em um estado inválido, o que requer uma restauração.
Durante a restauração, você tem a opção de aplicar 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 mudar o namespace dos recursos de backup durante a restauração para migrar uma carga de trabalho de um namespace para outro.
Antes de começar
Solicitar papéis do IAM
Para criar um plano de restauração, peça ao administrador do IAM da organização para conceder a você o papel de Administrador de backup do cluster de usuários (user-cluster-backup-admin). Esse papel cria, recebe, lista, monitora, atualiza, corrige e exclui recursos de backup, como planos de backup e planos de restauração em clusters de usuários.
Se você for um operador de aplicativos, peça a um administrador com privilégios de administrador de backup do cluster de usuários para criar um plano de restauração.
Criar um plano de restauração
Crie um plano de restauração usando o console do GDC ou a API.
Console
- Faça login no console do GDC.
- No menu de navegação, clique em Backup para clusters.
- Clique em Criar plano de restauração.
- Na seção Noções básicas do plano de restauração, conclua as etapas a seguir e clique
Próxima:
- Em Nome do plano de restauração, insira o nome do plano de restauração.
- (Opcional) Em Descrição do plano de restauração , insira uma descrição para o plano de restauração.
- Na lista Cluster de origem, escolha o cluster de origem para o plano de restauração.
- Na lista Projeto, escolha o projeto para o plano de restauração.
- Selecione o projeto anexado ao cluster de origem.
- No campo Plano de backup, escolha um plano de backup para um cluster atual que corresponda aos backups que você quer restaurar.
- No campo Cluster de destino, escolha o cluster de destino em que você quer restaurar o backup.
- Na seção Escolher recursos com namespace, conclua as etapas a seguir
e clique em Próxima:
- Escolha os namespaces a serem restaurados:
- Clique em Recursos com namespace selecionados para especificar os namespaces no backup a ser restaurado.
- Clique em Editar namespaces do cluster e em Adicionar namespace do cluster para inserir um namespace.
- Clique em Aplicativos protegidos selecionados para adicionar recursos especificando o namespace e o nome do aplicativo.
- Clique em Recursos com namespace selecionados para especificar os namespaces no backup a ser restaurado.
- Escolha como lidar com conflitos:
- Clique em Falha em conflito (não destrutivo) para falhar na restauração se já houver namespaces destinados à restauração de um backup no cluster de destino.
- Clique em Reverter (destrutivo) para excluir os namespaces atuais antes de restaurar os novos namespaces, se já houver namespaces destinados à restauração a partir de um backup no cluster de destino.
- Escolha como restaurar dados de volume:
- Clique em Provisionar novos volumes e restaurar dados de volume do backup para restaurar dados de volume do backup em um novo disco permanente.
- Clique em Não restaurar dados de volume para provisionar um novo
volume permanente. Se o cluster de destino contiver um volume permanente não vinculado que atenda aos requisitos de
PersistentVolumeClaim, o cluster estará vinculado ao volume. - Clique em Reutilizar os volumes atuais que contêm os dados para não restaurar dados de backup de volume. Qualquer
PersistentVolumeClaimsestá vinculada a volumes que fazem referência aos discos permanentes atuais.
- Escolha os namespaces a serem restaurados:
- Opcional: na seção Escolher recursos com escopo de cluster, conclua
as etapas a seguir e clique em Próxima:
- Clique em Não restaurar recursos com escopo de cluster para deixar a versão atual do recurso intacta.
- Clique em Restaurar recursos com escopo de cluster por GroupKind para restaurar esses recursos.
- Clique em Editar GroupKinds para adicionar mais recursos com escopo de cluster. Insira o grupo de API e o tipo de objeto para corresponder aos recursos desses tipos.
- Clique em Preservar recursos atuais para criar recursos se eles não existirem no cluster de destino.
- Clique em Substituir recursos no cluster de destino para excluir um recurso, se ele já existir no cluster de destino, e restaurar a cópia do backup.
- Opcional: na seção Adicionar regras de substituição, conclua as
etapas a seguir e clique em Próxima:
- Clique em Adicionar nova regra.
- Na caixa Namespaces do cluster, digite uma lista de namespaces para corresponder aos recursos deles.
- Para adicionar GroupKinds, clique em Adicionar GroupKind e insira o grupo de API e o tipo de objeto para corresponder aos recursos desses tipos.
- No campo Caminho JSON, digite o caminho JSON que identifica os campos nos recursos correspondentes aos quais a substituição se aplica.
- No campo Padrão de valor original, digite o padrão original para comparar com o novo valor.
- No campo Novo valor, digite o novo valor que substitui o valor atual dos atributos correspondentes.
- Clique em Salvar.
- Clique em Criar.
API
Crie um recurso personalizado ClusterRestorePlan para planejar restaurações de um ClusterBackupPlan atual. O ClusterRestorePlan atribui o conjunto exato de recursos e namespaces que um criador de backup tem permissão para restaurar. Confira um exemplo de 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:
RESTORE_PLAN_NAMEpelo nome do plano de restauração.PROJECT_NAMEpelo nome do projeto do GDC.CLUSTER_NAMEpelo nome do cluster.
Este exemplo usa os seguintes valores:
Valor |
Atributo |
Descrição |
|---|---|---|
targetClusterName |
Nome do cluster de origem em um projeto ao qual esse plano está associado. | |
description |
Uma descrição fornecida pelo usuário para a finalidade do ClusterRestorePlan. |
|
clusterBackupPlanName |
O nome do ClusterBackupPlan a ser restaurado. O
ClusterBackupPlan precisa existir no mesmo namespace que o
ClusterRestorePlan. |
|
clusterRestoreConfig |
Configuração para o processo de restauração. | |
volumeDataRestorePolicy |
Especifique um destes:
|
|
clusterResourceConflictPolicy |
Especifica o comportamento para lidar com conflitos de recursos de cluster, como se o recurso já existe no cluster. Especifique um destes:
|
|
namespacedResourceRestoreMode |
Lida com a situação em que os conjuntos de
recursos com namespace que estão sendo restaurados já existem no cluster de destino. Especifique um destes:
|
|
namespacedResourceRestoreScope |
Especifica quais Namespaces ou
ProtectedApplications são permitidos para restauração.
|
|
clusterBackupRepositoryRef |
Especifica o repositório para armazenar os Restore
recursos. Esse repositório pode ser diferente do repositório que
o backup é de. O repositório precisa ser um ReadWrite
repositório no cluster. |
|
substitutionRules |
Regras para substituir valores nos recursos do Kubernetes com backup
durante a restauração. Uma lista vazia significa que nenhuma substituição ocorre.
As regras de substituição são aplicadas sequencialmente na ordem definida.
Essa ordem é importante, já que as mudanças 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 escopo da regra (NAME_SPACE). |
Depois que um ClusterRestorePlan é criado, os usuários com o papel de criador de backup podem restaurar backups manualmente.
Ver um plano de restauração
Para ver um plano de restauração usando o console do GDC:
- Faça login no console do GDC.
- No menu de navegação, clique em Backup para clusters.
- Clique em Selecionar projeto para selecionar uma organização ou um projeto, dependendo do seu papel:
- Administrador de backup do cluster de usuários: selecione uma organização para ver todos os planos de restauração em uma organização ou selecione um projeto para ver todos os planos de restauração em um projeto.
- Criador de backup: selecione um projeto para ver todos os planos de restauração em um projeto.
- Clique na guia Planos de restauração.
- Clique em um plano de restauração na lista para ver os detalhes.
Editar um plano de restauração
Se o repositório de backup associado ao plano de restauração que você quer editar tiver um valor no campo Cluster vinculado(somente leitura) quando o plano de restauração for criado, ele será criado duas vezes. O plano de restauração é propagado para os clusters de leitura/gravação e somente leitura.
Ao editar o plano de restauração de um repositório de backup que tem clusters de leitura/gravação e somente leitura definidos, é necessário editar o plano de restauração que tem o TARGET CLUSTER definido como o cluster de leitura/gravação.
Para editar um plano de restauração usando o console do GDC:
- Faça login no console do GDC.
- No menu de navegação, clique em Backup para clusters.
- Clique em Selecionar projeto para selecionar uma organização ou um projeto, dependendo do seu papel:
- Administrador de backup do cluster de usuários: selecione uma organização para ver todos os planos de restauração em uma organização ou selecione um projeto para ver todos os planos de restauração em um projeto.
- Criador de backup: selecione um projeto para ver todos os planos de restauração em um projeto.
- Clique na guia Planos de restauração.
- Clique no nome do plano de restauração que você quer editar.
- Clique na guia Configuração do plano para ver os campos que podem ser modificados.
Clique no ícone edit Editar ao lado de Recursos com namespace para editar esse recurso:
Na seção Escolher recursos com namespace, selecione quais recursos com namespace no backup você quer restaurar:
Selecione Recursos com namespace selecionados para restaurar recursos dos namespaces selecionados no backup:
- Selecione Editar namespaces do cluster para selecionar o namespace do cluster.
- No campo Namespace do cluster 1, insira o nome do namespace.
- Clique no botão Salvar.
Selecione Aplicativos protegidos selecionados para restaurar recursos dos aplicativos protegidos selecionados no backup:
- Selecione Editar aplicativos protegidos para selecionar o namespace e o aplicativo protegido.
- No campo Namespace 1, insira o nome do namespace.
- No campo Aplicativo protegido 1, insira o nome do aplicativo protegido.
- Clique no botão Salvar.
Clique no ícone edit Editar ao lado de Recursos com escopo de cluster para editar esse recurso:
Opcional: na seção Escolher recursos com escopo de cluster , selecione os recursos com escopo de cluster para restaurar especificando os grupos de API e
GroupKindse decida como os conflitos precisam ser resolvidos:- Selecione Não restaurar recursos com escopo de cluster para remover recursos com escopo de cluster do processo de restauração.
Selecione Restaurar recursos com escopo de cluster por GroupKind para restaurar os recursos pelo
GroupKindespecificado:Para especificar um
GroupKind, clique no botão Editar GroupKind.Clique no botão Adicionar GroupKind.
Insira o nome do
GroupKind.Clique no botão Salvar.
Na seção Tratamento de conflitos, determine qual ação será realizada se o recurso já existir no cluster de destino:
- Selecione Preservar recursos atuais para criar recursos se eles ainda não existirem no cluster.
- Selecione Substituir recursos atuais para excluir todos os recursos encontrados e substituir esse recurso pelo recurso restaurado.
Clique no botão Salvar para confirmar as mudanças.
Na seção Regras de substituição, clique no botão Adicionar nova regra para adicionar uma nova regra de substituição:
- No campo Namespaces do cluster, insira o nome do namespace do cluster ao qual essa regra de substituição será aplicada.
- Clique no botão Adicionar GroupKind para aplicar essa regra a um determinado objeto
GroupKind. - No campo Caminho JSON, insira o caminho para o atributo do recurso que você quer substituir, no formato JSON.
- No campo Padrão de valor original, insira uma expressão regular que corresponda ao valor original do atributo.
- No campo Novo valor, insira o valor que será substituído pelo campo de destino. Se esse campo estiver em branco, o campo de destino será removido do recurso.
- Clique no botão Salvar para concluir a criação da nova regra de substituição.
Na seção Regras de substituição, clique no ícone edit Editar para editar uma regra de substituição atual.
Na seção Regras de substituição, clique no ícone delete Excluir para excluir uma regra de substituição atual.
Excluir um plano de restauração
Os RestorePlans podem ser excluídos pelo console do GDC ou excluindo o recurso diretamente do servidor da API Kubernetes. Isso limpa todos os artefatos RestorePlan associados do armazenamento de objetos.
Console
- Faça login no console do GDC.
- No menu de navegação, clique em Backup para clusters.
- Clique em Selecionar projeto para selecionar uma organização ou um projeto, dependendo do seu papel:
- Administrador de backup do cluster de usuários: selecione uma organização para ver todos os planos de restauração em uma organização ou selecione um projeto para ver todos os planos de restauração em um projeto.
- Criador de backup: selecione um projeto para ver todos os planos de restauração em um projeto.
- Clique na guia Planos de restauração.
- Clique no nome do plano de restauração que você quer excluir.
- Clique no botão delete Excluir.
- Insira o nome do plano de restauração no campo.
- Clique no botão Excluir para confirmar a exclusão desse plano de restauração.
API
Exclua o recurso do plano de restauração:
kubectl delete clusterRestoreplan RESTORE_PLAN_NAME -n NAMESPACE
Substitua:
RESTORE_PLAN_NAME: o nome do plano de restauração.NAMESPACE: o namespace que contém o plano de restauração.