Restaurar o estado dos clusters do Kubernetes após um desastre
Aplica-se a: AKS no Azure Stack HCI 22H2, AKS no Windows Server
No AKS no Azure Local ou no Windows Server, o cluster de gerenciamento é implantado como uma única VM (máquina virtual) autônoma por implantação, tornando-o um único ponto de falha. É importante observar que uma interrupção do cluster de gerenciamento não tem impacto nos aplicativos em execução nos clusters de carga de trabalho. Quando a VM do cluster de gerenciamento falha, os clusters de carga de trabalho (e cargas de trabalho) continuam em execução, mas você não pode executar operações de dia 2. Por exemplo, você não pode criar novos clusters de carga de trabalho, criar ou dimensionar um pool de nós ou atualizar versões do Kubernetes até que a VM seja restaurada.
O cluster de gerenciamento é uma VM rastreada no clustering de failover do Windows. Também é resiliente a interrupções no nível do host. Em outras palavras, durante uma falha de computador host, o cluster de failover do Windows reinicia a VM em um computador host íntegro. Este artigo fornece diretrizes sobre como executar as seguintes tarefas:
- Restaure o estado do AKS no novo hardware (pode ser um novo site).
- Recupere-se da corrupção do cluster de gerenciamento.
Em qualquer um desses cenários, você deve recriar o cluster de gerenciamento e todos os clusters de carga de trabalho.
Restaurar o estado do AKS em um novo hardware ou em um novo site
A recuperação do estado dos clusters do Kubernetes requer que você tenha um cluster de gerenciamento disponível no novo hardware ou no novo local.
- O AKS dá suporte ao backup de clusters do Kubernetes no Armazenamento de Blobs do Azure e no MinIO usando o Velero. A Microsoft recomenda fazer backup do Armazenamento do Azure porque ele fornece 3 cópias redundantes de dados na região de armazenamento primária.
- Considere executar o backup em um cron job para garantir que os backups disponíveis atendam aos objetivos de ponto de recuperação.
Pré-requisitos
Prepare a espera fria antes de um desastre criando um cluster de gerenciamento e um cluster de carga de trabalho vazio. Você precisa de um cluster de carga de trabalho vazio para cada cluster do Kubernetes que deseja restaurar do backup. Os seguintes pré-requisitos são necessários:
- Configure e agrupe máquinas host físicas.
- Configure o armazenamento necessário:
- Para SMB: use drivers de arquivo CSI (Container Storage Interface).
- Para armazenamento local: use drivers de disco CSI (Container Storage Interface).
- Backups de cluster de carga de trabalho estão disponíveis: Faça backup e restaure clusters de carga de trabalho usando o Velero.
- Um cluster de gerenciamento do AKS é instalado em um novo hardware ou você pode instalar um novo cluster de gerenciamento em um novo hardware usando as etapas de 1 a 5 deste artigo: Usar o PowerShell para configurar o Kubernetes em clusters locais do Azure.
- Um cluster de carga de trabalho vazio é necessário para restaurar os backups. Consulte Fazer backup, restaurar clusters de carga de trabalho usando o Velero.
Recuperar da corrupção do cluster de gerenciamento
A recuperação de um cluster de gerenciamento corrompido requer a desinstalação do AKS e a reinstalação do cluster de gerenciamento e de todos os clusters de carga de trabalho. Os clusters de carga de trabalho podem ser restaurados em clusters de carga de trabalho vazios a partir de backups do Velero.
Os seguintes pré-requisitos são necessários:
- Backups de cluster de carga de trabalho: faça backup e restaure clusters de carga de trabalho usando o Velero.
- Backup da configuração do AKS para configurações anteriores de rede, armazenamento e cluster. As configurações de cluster incluem tamanhos e contagens de VMs de plano de controle, balanceador de carga e nó de trabalho. Por exemplo, se o cluster antigo tinha 3 VMs do plano de controle Standard_A2_V2 , você deve criar 3 VMs do plano de controle no novo ambiente.
Para se recuperar da corrupção do cluster de gerenciamento, execute as seguintes etapas:
- Desinstalar o AKS: Uninstall-AksHci.
- Instale um novo cluster de gerenciamento do AKS usando as etapas 1 a 5 deste artigo: Usar o PowerShell para configurar o Kubernetes em clusters do AKS.
- Crie o cluster de carga de trabalho com pools de nós necessários usando a etapa 6 neste artigo. Você precisa de um cluster de carga de trabalho separado para cada cluster de carga de trabalho restaurado do backup.
- Você pode configurar várias VMs do painel de controle e VMs do balanceador de carga durante a criação do cluster de carga de trabalho usando este artigo: New-AksHciCluster para AKS.
- Configure o armazenamento necessário:
- Para SMB: use drivers de arquivo CSI (Container Storage Interface).
- Para armazenamento local: use drivers de disco CSI (Container Storage Interface).
- Restaure todos os clusters de carga de trabalho do backup.
Perguntas frequentes
Qual resiliência é incorporada ao cluster de gerenciamento?
Cada implantação do AKS inclui um cluster de gerenciamento que é uma única VM autônoma. Para resiliência e alta disponibilidade, o AKS depende do clustering de failover do Windows para recuperar a VM se ocorrer uma interrupção.
Uma interrupção do cluster de gerenciamento não tem impacto nos aplicativos em execução em clusters de carga de trabalho. Quando a VM do cluster de gerenciamento fica inativa, isso afeta sua capacidade de executar operações de Dia 2 do AKS, como criar novos clusters de carga de trabalho, criar ou dimensionar pools de nós, atualizar versões do Kubernetes etc., até que a VM seja recuperada. Nos casos em que você não consegue se recuperar de uma falha de cluster de gerenciamento, recomendamos entrar em contato com o Suporte da Microsoft.
O que está incluído em um backup do Velero?
Nome de arquivo | Descrição do conteúdo |
---|---|
*-csi-volumesnapshotclasses.json.gz | Os arquivos que contêm csi são os instantâneos de volume persistentes. |
*-csi-volumesnapshotcontents.json.gz | Os arquivos que contêm csi são instantâneos de volume persistentes. |
*-csi-volumesnapshots.json.gz | Os arquivos que contêm csi são os instantâneos de volume persistentes. |
*-logs.gz | Saída de log da operação de backup. Mesmos dados da execução: velero backup log <backupname> . |
*-podvolumebackups.json.gz | Metadados sobre os pods e volumes persistentes. |
*-resource-list.json.gz | Os recursos contidos em um backup são listados neste arquivo. |
*-volumesnapshots.json.gz | Metadados sobre os pods e volumes persistentes. |
*.tar.gz | Metadados: namespace, número de réplicas de pod, memória, cpu. Os mesmos dados retornados de: kubectl get deployment . |
O que não está incluído nos backups do Velero?
O backup do Velero não inclui os seguintes itens:
- Configuração do AKS (cluster de gerenciamento)
- Metadados da VM do plano de controle (servidor de API)
- Metadados do balanceador de carga (proxy HA)
- Configurações de rede
- Configurações de armazenamento
Como fazer backup da configuração do AKS antes de um desastre?
Para fazer backup da configuração do cluster de gerenciamento, abra uma janela do PowerShell e execute o seguinte comando:
Get-AksHciConfig | ConvertTo-Json
Como posso garantir que o cluster de carga de trabalho tenha a mesma configuração de antes de um desastre?
Para fazer backup da configuração do cluster de carga de trabalho, abra uma janela do PowerShell e execute o seguinte comando:
Get-AksHciCluster -name <cluster name> | ConvertTo-Json