Reparo automático do nó do Serviço Kubernetes do Azure (AKS)

O Azure Kubernetes Service (AKS) monitoriza continuamente o estado de funcionamento dos nós de trabalho e realiza uma reparação automática dos nós se ficarem em mau estado de funcionamento. A plataforma de máquina virtual (VM) do Azure executa manutenção em VMs com problemas. O AKS e as VMs do Azure trabalham em conjunto para minimizar as interrupções do serviço para os clusters.

Neste artigo, você aprenderá como a funcionalidade de reparo automático de nó se comporta para nós Windows e Linux.

Como o AKS verifica os nós NotReady

O AKS usa as seguintes regras para determinar se um nó não está íntegro e precisa de reparo:

  • O nó relata o status NotReady em verificações consecutivas dentro de um período de tempo de 10 minutos.
  • O nó não relata nenhum status em 10 minutos.

Você pode verificar manualmente o estado de integridade de seus nós com o kubectl get nodes comando.

Como funciona a reparação automática

Nota

O AKS inicia operações de reparo com a conta de usuário aks-remediator.

Se o AKS identificar um nó não íntegro que permanece não íntegro por cinco minutos, o AKS executa as seguintes ações:

  1. Tenta reiniciar o nó.
  2. Se a reinicialização do nó não for bem-sucedida, o AKS recria a imagem do nó.
  3. Se a reimagem não for bem-sucedida e for um nó Linux, o AKS reimplantará o nó.

Os engenheiros da AKS investigam remediações alternativas se o reparo automático não for bem-sucedido.

Nota

O reparo automático não é acionado se as seguintes manchas estiverem presentes no nó: node.cloudprovider.kubernetes.io/shutdown, ToBeDeletedByClusterAutoscaler.

O processo geral de reparo automático pode levar até uma hora para ser concluído. AKS tenta novamente por um máximo de 3 vezes para cada etapa.

Auto-drenagem do nó

Os eventos agendados podem ocorrer nas VMs subjacentes em qualquer um dos pools de nós. Para pools de nós spot, eventos agendados podem causar um evento de nó preempt para o nó. Certos eventos de nó, como preempt, fazem com que o auto-dreno do nó AKS tente um cordão e drenagem do nó afetado. Esse processo permite o reagendamento para quaisquer cargas de trabalho afetadas nesse nó. Você pode notar que o nó recebe uma mancha com , por "remediator.kubernetes.azure.com/unschedulable"causa de "kubernetes.azure.com/scalesetpriority: spot".

A tabela a seguir mostra os eventos e ações do nó que eles causam para a drenagem automática do nó AKS:

Evento Descrição Ação
Congelar A VM está programada para pausar por alguns segundos. A conectividade de CPU e rede pode ser suspensa, mas não há impacto na memória ou nos arquivos abertos. Nenhuma ação.
Reiniciar A VM está agendada para reinicialização. A memória não persistente da VM é perdida. Nenhuma ação.
Voltar a implementar A VM está agendada para ser movida para outro nó. Os discos efêmeros da VM são perdidos. Cordão e dreno.
Antecipação A VM spot está sendo excluída. Os discos efêmeros da VM são perdidos. Cordão e drenagem
Terminar A VM está agendada para exclusão. Cordão e dreno.

Limitações

Em muitos casos, o AKS pode determinar se um nó não está íntegro e tentar reparar o problema. No entanto, há casos em que o AKS não consegue reparar o problema ou detetar a existência de um problema. Por exemplo, o AKS não consegue detetar problemas nos seguintes cenários de exemplo:

  • O status de um nó não está sendo relatado devido a um erro na configuração da rede.
  • Um nó falhou ao se registrar inicialmente como um nó íntegro.

O Node Autodrain é um serviço de melhor esforço e não pode ser garantido que funcione perfeitamente em todos os cenários

Próximos passos

Use as zonas de disponibilidade para aumentar a alta disponibilidade com suas cargas de trabalho de cluster AKS.