Este documento descreve como fazer backup e restaurar clusters de administrador e de usuário do Google Distributed Cloud versão 1.32 e mais recentes que tenham o cluster avançado ativado.
O processo de backup e restauração gkectl
não inclui volumes persistentes. Todos os
volumes criados pelo provisionador de volume local (LVP, na sigla em inglês) não são alterados.
Fazer backup de um cluster
O comando gkectl backup cluster
adiciona as informações de cluster do armazenamento
etcd e os certificados de PKI do cluster especificado a um arquivo tar. O armazenamento
etcd é o armazenamento secundário do Kubernetes para todos os dados de cluster e contém todos os
objetos do Kubernetes e objetos personalizados necessários para gerenciar o estado do cluster. Os certificados
de PKI são usados para autenticação por Transport Layer Security (TLS).
Esses dados são armazenados em backup a partir do plano de controle do cluster ou de um dos
planos de controle para uma implantação de alta disponibilidade (HA).
O arquivo tar de backup contém credenciais confidenciais, incluindo as chaves da conta de serviço e a chave SSH. Armazene os arquivos de backup em um local seguro. Para evitar a exposição não intencional de arquivos, o processo de backup usa apenas arquivos na memória.
Faça backup dos clusters regularmente para garantir que os dados de snapshots sejam relativamente atuais. Ajuste a taxa de backups para refletir a frequência de alterações significativas nos clusters.
Antes de começar, verifique se o cluster está funcionando corretamente, com credenciais de trabalho e conectividade SSH para todos os nós. O objetivo do processo de backup é capturar o cluster em um estado válido conhecido para que você possa restaurar a operação em caso de falha catastrófica.
Para fazer backup de um cluster:
Execute o seguinte comando para verificar o cluster:
gkectl diagnose cluster --cluster-name CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Substitua:
CLUSTER_NAME: o nome do cluster que você planeja armazenar em backup.
ADMIN_KUBECONFIG: o caminho do arquivo kubeconfig do cluster de administrador.
Execute o comando aplicável para fazer backup do cluster:
Cluster de administrador
gkectl backup admin --kubeconfig ADMIN_KUBECONFIG
Cluster de usuário
gkectl backup cluster --cluster-name CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Por padrão, o arquivo tar de backup é salvo no diretório
gkectl-workspace/backups
na estação de trabalho do administrador. O arquivo tar é chamado de
CLUSTER_NAME_backup_TIMESTAMP.tar.gz
,
em que CLUSTER_NAME
é o nome do
cluster que está sendo armazenado em backup e TIMESTAMP
é a data e a hora
em que o backup foi feito. Por exemplo, se o nome do cluster for testuser
, o arquivo de backup
terá um nome como testuser_backup_2006-01-02T150405Z0700.tar.gz
.
Para especificar um nome e local diferentes para o arquivo de backup, use a
flag --backup-file
.
O arquivo de backup expira após um ano e o processo de restauração do cluster não funciona com arquivos de backup expirados.
O arquivo de backup também pode ser enviado para o vCenter Server se a seção a seguir estiver configurada para o arquivo de configuração do cluster de administrador: clusterBackup:
datastore: DATASTORE
Substitua DATASTORE
pelo armazenamento de dados em que você quer
armazenar o backup. O armazenamento de dados precisa estar no mesmo data center que o cluster
de administrador. Os backups estão localizados no
diretório anthos/CLUSTER_NAME/backup
do repositório de dados
especificado.
Restaurar um cluster
A restauração de um cluster a partir de um backup é um último recurso e precisa ser usado quando um cluster falhar de forma catastrófica e não puder ser retornado de forma alguma. Por exemplo, se os dados do etcd estiverem corrompidos ou o pod do etcd estiver em um loop de falhas.
O arquivo tar de backup contém credenciais confidenciais, incluindo as chaves da conta de serviço e a chave SSH. Para evitar a exposição não intencional de arquivos, o processo de restauração do Google Distributed Cloud usa somente arquivos na memória.
Antes de restaurar um cluster, verifique se as seguintes condições são atendidas:
- Garanta que todas as máquinas de nó do plano de controle que estavam disponíveis para o cluster no momento do backup estejam funcionando corretamente e acessíveis.
- Garanta que a conectividade SSH entre os nós funcione com as chaves SSH usadas no momento do backup. Essas chaves SSH são restabelecidas como parte do processo de restauração.
- Verifique se as chaves da conta de serviço que foram usadas no momento do backup ainda estão ativas. Essas chaves de conta de serviço são restabelecidas para o cluster restaurado.
Para restaurar um cluster:
Execute o comando aplicável para restaurar o cluster:
Cluster de administrador
gkectl restore admin --backup-file BACKUP_FILE \ --config ADMIN_CONFIG
Substitua:
BACKUP_FILE
: o caminho e o nome do arquivo de backup que você está usando.ADMIN_CONFIG
: o caminho até o arquivo de configuração do cluster de administrador.
Cluster de usuário
gkectl restore cluster --cluster-name CLUSTER_NAME \ --backup-file BACKUP_FILE \ --kubeconfig ADMIN_KUBECONFIG
Substitua:
CLUSTER_NAME
: o nome do cluster que você está restaurando.BACKUP_FILE
: o caminho e o nome do arquivo de backup que você está usando.ADMIN_KUBECONFIG
: o caminho até o arquivo kubeconfig do cluster de administrador.
No final do processo de restauração, um novo arquivo kubeconfig é gerado para o cluster restaurado no diretório do espaço de trabalho
gkectl-workspace
.Quando a restauração terminar, execute o comando a seguir para verificar se ela foi concluída:
gkectl diagnose cluster --cluster-name CLUSTER_NAME \ --kubeconfig GENERATED_KUBECONFIG
Substitua
GENERATED_KUBECONFIG
pelo arquivo kubeconfig gerado.
Resolver problemas
Se você tiver problemas com o processo de backup ou restauração, as seções a seguir poderão ajudar a resolver o problema.
Se precisar de mais ajuda, entre em contato com a equipe do Cloud Customer Care.
Memória insuficiente durante um backup ou restauração
Se a estação de trabalho em que você executa o comando gkectl
não tiver muita RAM,
você pode ter memória insuficiente para executar o processo de backup ou restauração. Se
necessário, crie e use um disco temporário para processar as operações de backup ou
restauração usando o parâmetro --use-disk
no comando de backup. Para
preservar as permissões do arquivo, esse parâmetro modifica as permissões dos arquivos.
Portanto, é necessário executar o comando como usuário raiz (ou usar sudo
).
Atualização da chave SSH após um backup interromper o processo de restauração
As operações relacionadas ao SSH durante o processo de restauração podem falhar se a chave SSH for atualizada após a realização de um backup. Nesse caso, a nova chave SSH se torna inválida para o processo de restauração. Para resolver esse problema, adicione temporariamente a chave SSH original e execute a restauração. Após a conclusão do processo de restauração, é possível girar a chave SSH.