Partilhar via


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 Stack HCI ou no Windows Server, o cluster de gerenciamento é implantado como uma única máquina virtual (VM) autônoma por implantação, tornando-se 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 do 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 cluster de failover do Windows. Também é resiliente a interrupções no nível do host. Em outras palavras, durante uma falha de máquina host, o clustering de failover do Windows reinicia a VM em uma máquina host íntegra. Este artigo fornece orientação sobre como executar as seguintes tarefas:

  • Restaure o estado do AKS em um 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 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 oferece suporte ao backup de clusters Kubernetes para o Armazenamento de Blobs do Azure e MinIO usando Velero. A Microsoft recomenda fazer backup do Armazenamento do Azure porque ele fornece 3 cópias redundantes de dados na região de armazenamento principal.
  • Considere executar o backup em um trabalho cron para garantir que os backups disponíveis atendam aos objetivos de ponto de recuperação.

Pré-requisitos

Prepare o modo de espera a frio 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 a partir do backup. Os seguintes pré-requisitos são necessários:

Recuperar de corrupção de cluster de gerenciamento

A recuperação de uma corrupção de cluster de gerenciamento 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, restaure clusters de carga de trabalho usando 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 de plano de controle Standard_A2_V2 , você deve criar 3 VMs de plano de controle no novo ambiente.

Para se recuperar da corrupção do cluster de gerenciamento, execute as seguintes etapas:

  • Desinstale o AKS: Uninstall-AksHci.
  • Instale um novo cluster de gerenciamento AKS usando as etapas 1 a 5 deste artigo: Use o PowerShell para configurar o Kubernetes em clusters AKS.
  • Crie o cluster de carga de trabalho com os pools de nós necessários usando a etapa 6 deste artigo. Você precisa de um cluster de carga de trabalho separado para cada cluster de carga de trabalho restaurado a partir do backup.
  • Você pode configurar várias VMs de plano de controle e VMs de balanceador de carga durante a criação de cluster de carga de trabalho usando este artigo: New-AksHciCluster for 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 a partir do backup.

FAQ

Que resiliência é incorporada no 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 cluster 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 executados em clusters de carga de trabalho. Quando a VM do cluster de gerenciamento fica inativa, isso afeta sua capacidade de executar operações do 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 do ficheiro 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. Os 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 cluster de gerenciamento (AKS)
  • Metadados da VM do plano de controle (servidor de API)
  • Metadados do balanceador de carga (HA Proxy)
  • Definições de rede
  • Definições de armazenamento

Como faço 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 faço para 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 

Próximos passos