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 com o cluster avançado ativado.
O processo de backup e restauração gkectl
não inclui volumes permanentes. Todos os
volumes criados pelo provisionador de volume local (LVP) 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 ICP 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ê consiga restaurar a operação se ocorrer uma falha catastrófica.
Para fazer backup de um cluster:
Execute o seguinte comando para verificar seu cluster:
gkectl diagnose cluster --cluster-name CLUSTER_NAME \ --kubeconfig ADMIN_KUBECONFIG
Substitua:
CLUSTER_NAME: o nome do cluster que você planeja fazer 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 só deve ser usada quando um cluster falhar de forma catastrófica e não puder ser retornado de outra maneira. 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 foram atendidas:
- Verifique se todas as máquinas de nó do plano de controle que estavam disponíveis para o cluster no momento do backup estão 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 bem-sucedida:
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 tem 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 de trabalho 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, exige que você execute o comando como um usuário raiz (ou use 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 de volta e execute a restauração. Após a conclusão do processo de restauração, é possível girar a chave SSH.