Esta página descreve como criar um plano de restauro do Backup for GKE, que é usado para restaurar as suas cópias de segurança no Google Kubernetes Engine (GKE).
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 administradores usarem estas configurações. Esses utilizadores 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.
A Cópia de segurança do GKE não suporta a restauração de uma cópia de segurança de um projeto para outro. Só pode restaurar cópias de segurança em clusters no mesmo projeto de origem da cópia de segurança. Os planos de restauro não podem fazer referência a planos de cópia de segurança num projeto diferente.
Durante o restauro, pode aplicar opcionalmente regras de transformação, que são usadas para fazer corresponder um conjunto de recursos e substituir o valor atual de um atributo nesses recursos por um novo valor.
Espaços de nomes geridos
A Cópia de segurança do GKE não faz o restauro em espaços de nomes geridos. Estes espaços de nomes são ignorados silenciosamente durante o restauro. A lista de espaços de nomes geridos inclui o seguinte:
cnrm-system
configconnector-operator-system
gatekeeper-system
gke-connect
gke-gmp-system
gmp-public
kube-node-lease
kube-public
kube-system
- Espaços de nomes com a seguinte etiqueta:
- Tecla:
addonmanager.kubernetes.io/mode
- Valor:
Reconcile
ouEnsureExists
- Tecla:
Antes de começar
Planeie um conjunto de cópias de segurança.
Funções necessárias
Para receber as autorizações de que
precisa para criar e gerir um plano de restauro,
peça ao seu administrador para lhe conceder a função de
administrador de restauro do Backup for GKE (roles/gkebackup.restoreAdmin
), que é um subconjunto da função de administrador do Backup for GKE (roles/gkebackup.admin
)
do IAM no seu projeto.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Crie um plano de restauro
Pode criar um plano de restauro para as suas cópias de segurança através da Google Cloud CLI ou da Google Cloud consola.
gcloud
Para criar um plano de restauro, execute o seguinte comando:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--project=PROJECT_ID \
--location=RESTORE_LOCATION \
--backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=NAMESPACED_RESOURCE_RESTORE_MODE \
--all-namespaces \
--cluster-resource-conflict-policy=CLUSTER_RESOURCE_CONFLICT_POLICY \
--cluster-resource-scope-selected-group-kinds=CLUSTER_RESOURCE_SCOPE \
--volume-data-restore-policy=VOLUME_DATA_RESTORE_POLICY
Substitua o seguinte:
RESTORE_PLAN
: o nome do plano de restauro que quer criar.PROJECT_ID
: o ID do seu projeto Google Cloud.RESTORE_LOCATION
: a região de computação para o recurso, por exemplo,us-central1
. Consulte o artigo Acerca das localizações de recursos. A localização tem de ser a mesma região onde o cluster de destino está localizado.BACKUP_PLAN
: a origem das cópias de segurança que podem ser restauradas com este plano de restauro:projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME
Certifique-se de que o plano de yedekleme está no mesmo projeto que o novo plano de restauro.
CLUSTER
: o nome do cluster de destino para o qual quer restaurar a cópia de segurança:- Clusters regionais:
projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
- Clusters zonais:
projects/PROJECT_ID/locations/ZONE/clusters/CLUSTER_NAME
- Clusters regionais:
NAMESPACED_RESOURCE_RESTORE_MODE
: define como processar conflitos de tempo de restauro para recursos com espaço de nomes. Os recursos com espaço de nomes são sempre restaurados em grupos, por espaço de nomes ou por ProtectedApplication. Use uma destas opções:merge-skip-on-conflict
: ignorar os recursos individuais em conflito.merge-replace-volume-on-conflict
: ignorar os recursos individuais em conflito, mas substituir os dados do volume persistente subjacente.merge-replace-on-conflict
: substitui os recursos individuais em conflito e os dados do volume persistente subjacente.delete-and-restore
: Quando o cluster de destino contém o mesmo grupo de recursos que são segmentados para restauro no cluster, o grupo de recursos existente é eliminado antes de os novos recursos serem restaurados.fail-on-conflict
: se existirem grupos de recursos segmentados para restauro a partir de uma cópia de segurança no cluster de destino, o restauro falha.
--all-namespaces
: restaura todos os recursos com espaço de nomes na cópia de segurança. Em alternativa, especifique:--excluded-namespaces
com uma lista de espaços de nomes comoNAMESPACE1,NAMESPACE2,...
para restaurar todos os espaços de nomes, exceto os que estão na lista.--selected-applications
com uma lista de ProtectedApplications para restaurar.NAMESPACE1/APP1,NAMESPACE2/APP2,...
--selected-namespaces
com uma lista de espaços de nomes comoNAMESPACE1,NAMESPACE2,...
para restaurar.--no-namespaces
não restaura recursos com espaço de nomes na cópia de segurança. Não é possível especificar esta opção em conjunto com--cluster-resource-scope-no-group-kinds
.
Tem de especificar uma destas opções quando criar um plano de restauro.
CLUSTER_RESOURCE_CONFLICT_POLICY
: define como processar conflitos de tempo de restauro para recursos de cluster selecionados. Use uma destas opções:use-existing-version
: se os recursos que estão a ser restaurados já existirem no cluster de destino, a Cópia de segurança do GKE mantém os recursos existentes.use-backup-version
: se os recursos que estão a ser restaurados já existirem no cluster de destino, a Cópia de segurança do GKE substitui os recursos existentes pelos novos recursos da cópia de segurança.
--cluster-resource-scope-selected-group-kinds
: (Opcional) Restaura os recursos do cluster com os tipos de grupos selecionados no formatoGroup/Kind
.CLUSTER_RESOURCE_SCOPE
define GroupKinds de recursos de cluster a restaurar. Por exemplo,apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass
.Em alternativa, especifique:
cluster-resource-scope-all-group-kinds
para selecionar todos os tipos de grupos de recursos do cluster a restaurar.cluster-resource-scope-excluded-group-kinds
com uma lista de tipos de grupos de recursos de clusters para restaurar todos os tipos de grupos de recursos de clusters, exceto os que estão na lista.cluster-resource-scope-no-group-kinds
. Esta opção não pode ser especificada juntamente com--no-namespaces
.
Se não especificar nenhuma destas opções, não restaura nenhum recurso do cluster.
VOLUME_DATA_RESTORE_POLICY
: define como os dados são preenchidos para volumes restaurados. Use uma destas opções:restore-volume-data-from-backup
: Os PVs novos são restaurados através dos dados de cópia de segurança do volume correspondentes na cópia de segurança.reuse-volume-handle-from-backup
: os PVs são pré-aprovisionados com o identificador de volume do PV original na cópia de segurança.no-volume-data-restoration
: as visualizações de páginas não são restauradas. A restauração só restaura os PVCs selecionados e espera que o controlador de armazenamento correspondente aprovisione dinamicamente os PVs em branco ou os associe a PVs pré-aprovisionados criados fora da banda.
Para ver a lista completa de opções, consulte a
gcloud beta container backup-restore restore-plans create
documentação.
Crie um plano de restauro para todos os espaços de nomes
O comando seguinte cria um plano de restauro para restaurar todos os espaços de nomes e recursos do cluster:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--location=LOCATION \
--backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=fail-on-conflict \
--all-namespaces \
--cluster-resource-conflict-policy=use-existing-version \
--cluster-resource-scope-all-group-kinds \
--volume-data-restore-policy=restore-volume-data-from-backup
Crie um plano de restauro para reverter um espaço de nomes
O comando seguinte cria um plano de restauro para reverter o espaço de nomes my-ns
a partir da cópia de segurança:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--location=LOCATION \
--backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=delete-and-restore \
--selected-namespaces=my-ns \
--cluster-resource-conflict-policy=use-existing-version \
--cluster-resource-scope-selected-group-kinds=apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass \
--volume-data-restore-policy=restore-volume-data-from-backup
Crie um plano de restauro para reverter um ProtectedApplication
e restabelecer a ligação aos volumes originais
O comando seguinte cria um plano de restauro para reverter a aplicação protegida my-ns/my-app
de modo a voltar a associar os volumes originais:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--location=LOCATION \
--backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=delete-and-restore \
--selected-applications=my-ns/my-app \
--cluster-resource-conflict-policy=use-existing-version \
--cluster-resource-scope-no-group-kinds \
--volume-data-restore-policy=reuse-volume-handle-from-backup
Crie um plano de restauro para restaurar apenas os recursos do cluster
O comando seguinte cria um plano de restauro para restaurar todos os recursos do cluster:
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--location=LOCATION \
--backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=fail-on-conflict \
--no-namespaces \
--cluster-resource-conflict-policy=use-existing-version \
--cluster-resource-scope-all-group-kinds
Consola
Use as instruções seguintes para criar um plano de restauro na Google Cloud consola:
Aceda à página do Google Kubernetes Engine na Google Cloud consola.
No menu de navegação, clique em Backup for GKE.
Clique em Criar um plano de restauro.
Na secção Atribua um nome ao seu plano e escolha um cluster, conclua o seguinte e clique em Seguinte:
- Introduza o nome do plano de restauro e a descrição opcional.
- Escolha um plano de cópia de segurança para um cluster existente que corresponda às cópias de segurança que quer restaurar.
- Escolha o cluster de destino onde quer restaurar a cópia de segurança.
Na secção Escolha recursos com espaço de nomes, conclua o seguinte e clique em Seguinte:
Escolha os espaços de nomes a restaurar:
- Clique em Todos os recursos com espaço de nomes para restaurar todos os recursos com espaço de nomes na cópia de segurança.
- Clique em Adicionar espaços de nomes na secção Exceções para excluir qualquer espaço de nomes na cópia de segurança.
- Clique em Recursos com espaço de nomes selecionados para especificar os espaços de nomes na cópia de segurança a restaurar.
- Clique em Aplicações protegidas selecionadas para adicionar recursos especificando o espaço de nomes e o nome da aplicação.
- Clique em Nenhum recurso com espaço de nomes para não restaurar recursos com espaço de nomes.
- Clique em Todos os recursos com espaço de nomes para restaurar todos os recursos com espaço de nomes na cópia de segurança.
Escolha como processar conflitos se forem selecionados recursos com espaço de nomes:
- Clique em Ignorar união (não destrutiva) se um recurso específico já existir, ignore a restauração do recurso a partir da cópia de segurança.
- Clique em Unir e substituir volume (destrutivo) se já existir um recurso específico. Neste caso, ignore o restauro desse recurso, mas substitua o volume persistente subjacente através da política de restauro de dados de volume. A união substitui o volume e alcança o restauro apenas de dados.
- Clique em Unir substituição (destrutiva) se já existir um recurso específico, substitua esse recurso pelo recurso da cópia de segurança e os dados de volume associados seguindo a política de restauro de dados de volume.
- 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.
- Clique em Reverter (destrutivo) para eliminar os espaços de nomes existentes antes de restaurar os novos espaços de nomes, se existirem espaços de nomes destinados ao restauro a partir de uma cópia de segurança no cluster de destino.
Escolha como restaurar os dados de volume e clique em Seguinte:
- Clique em Aprovisionar novos volumes e restaurar dados de volume a partir da cópia de segurança para restaurar dados de volume a partir da cópia de segurança num novo disco persistente.
- Clique em Não restaurar dados de volume para aprovisionar um novo volume persistente. Se o cluster de destino contiver um volume persistente não associado que satisfaça os requisitos, o cluster é associado ao volume.
PersistentVolumeClaim
- Clique em Reutilizar volumes existentes com os seus dados para não restaurar os dados da cópia de segurança do volume. Todos os
PersistentVolumeClaims
estão associados a volumes que fazem referência a discos persistentes existentes.
(Opcional) Na secção Escolha recursos ao nível do cluster, conclua o seguinte e clique em Seguinte:
Escolha os tipos de grupos a restaurar:
- Clique em Todos os recursos com âmbito de cluster para restaurar todos os recursos com âmbito de cluster na cópia de segurança.
- Clique em Adicionar groupkinds na secção Exceções para excluir qualquer recurso com âmbito de cluster na cópia de segurança.
- Clique em Recursos selecionados ao nível do cluster para especificar os recursos ao nível do cluster na cópia de segurança a restaurar.
apiextensions.k8s.io/CustomResourceDefinition
estorage.k8s.io/StorageClass
estão selecionados por predefinição. Clique em Add groupkind para adicionar mais recursos com âmbito do cluster. - Clique em Nenhum recurso com âmbito de cluster para optar por não restaurar nenhum recurso de cluster.
- Clique em Todos os recursos com âmbito de cluster para restaurar todos os recursos com âmbito de cluster na cópia de segurança.
Escolha como processar conflitos se forem selecionados recursos com âmbito do cluster:
- Clique em Manter recursos no cluster de destino para ignorar um recurso se já existir no cluster de destino.
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.
(Opcional) Na secção Adicione regras de transformação, conclua o seguinte e clique em Seguinte:
- Clique em Adicionar regra e introduza uma descrição opcional.
- Se quiser restringir as regras de transformação a recursos que correspondam a condições específicas, faça o seguinte na secção Especifique as condições e as ações dos recursos:
- Clique em Condição de espaços de nomes e escreva uma lista de espaços de nomes para corresponder a recursos nesses espaços de nomes.
- Clique em Condição Groupkind, escreva o tipo de grupo da API e, de seguida, escreva o tipo de objeto. Isto faz corresponder um grupo de APIs a recursos nesses tipos.
- Clique em Condição do caminho JSON e escreva o caminho JSON que identifica os campos nos recursos correspondentes aos quais a transformação se aplica.
- Escreva o novo valor que substitui o valor atual dos atributos correspondentes ou selecione a caixa de verificação Substituir valores específicos (com uma expressão regular). Em seguida, escreva o padrão para comparar com o valor atual desses recursos.
- Clique em Guardar alterações.
Reveja os detalhes do plano de restauro e clique em Criar plano.
Veja um plano de restauro
Pode ver um plano de restauro e os respetivos detalhes através da CLI gcloud ou da Google Cloud consola.
gcloud
Para apresentar uma lista de todos os planos de restauro no projeto e na localização, execute o seguinte comando:
gcloud beta container backup-restore restore-plans list \
--project=PROJECT_ID \
--location=LOCATION
Apenas para comandos list
, pode fornecer -
como valor para quaisquer parâmetros, exceto PROJECT_ID
. O valor -
funciona como um carater universal. O valor -
é a predefinição para qualquer parâmetro se não especificar uma opção de linha de comandos ou definir uma propriedade.
Para ver a lista completa de opções, consulte a
gcloud beta container backup-restore restore-plans list
documentação.
Para ver os detalhes de um plano de restauro, execute o seguinte comando:
gcloud beta container backup-restore restore-plans describe RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION
Consola
Siga estas instruções para ver um plano de restauro e os respetivos detalhes na Google Cloud consola:
Aceda à página do Google Kubernetes Engine na Google Cloud consola.
No menu de navegação, clique em Backup for GKE.
Clique no separador Restaurar planos.
Expanda o plano de cópia de segurança e clique no nome do plano de restauro.
Clique no separador Detalhes para ver os respetivos detalhes.
Atualize um plano de restauro
Atualize um plano de restauro e os respetivos detalhes através da CLI gcloud.
gcloud
Para atualizar um plano de restauro, por exemplo, adicionando uma nova descrição, execute o seguinte comando:
gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION \
--description=DESCRIPTION
Para ver a lista completa de opções, consulte a
gcloud beta container backup-restore restore-plans update
documentação.
Consola
Use as seguintes instruções para atualizar um plano de restauro na Google Cloud consola:
Aceda à página do Google Kubernetes Engine na Google Cloud consola.
No menu de navegação, clique em Backup for GKE.
Clique no separador Restaurar planos.
Clique no nome do plano de restauro.
Clique no separador Detalhes.
Clique em edit Editar para editar uma secção do plano e clique em Guardar alterações.
Elimine um plano de restauro
Pode eliminar um plano de restauro através da CLI gcloud ou da Google Cloud consola. A eliminação de um plano de restauro também elimina todos os planos de restauro secundários.
gcloud
Para eliminar um plano de restauro, execute o seguinte comando:
gcloud beta container backup-restore restore-plans delete RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION
Para ver a lista completa de opções, consulte a
gcloud beta container backup-restore restore-plans delete
documentação.
Consola
Use as instruções seguintes para eliminar um plano de restauro na Google Cloud consola:
Aceda à página do Google Kubernetes Engine na Google Cloud consola.
No menu de navegação, clique em Backup for GKE.
Clique no separador Restaurar planos.
Expanda o cluster e clique no nome do plano.
Clique em delete Eliminar plano.
Escreva o nome do plano de restauro e, de seguida, clique em Eliminar plano de restauro na caixa de diálogo de confirmação.
O que se segue?
- Saiba mais sobre como restaurar uma cópia de segurança.