Compartilhar via


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

O AKS (Azure Kubernetes Service) monitora continuamente o estado de integridade dos nós de trabalho e executa o reparo automático de nós, caso eles se tornem não íntegros. A plataforma VM (máquina virtual) do Azure executa a manutenção em VMs com problemas. O AKS e as VMs do Azure trabalham em conjunto para minimizar as interrupções de serviço para os clusters.

Neste artigo, você aprenderá como a funcionalidade automática de reparo de nó se comporta com relação a nós do Windows e do Linux.

Como o AKS verifica se há 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 10 minutos.
  • O nó não relata nenhum status dentro de 10 minutos.

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

Como funciona o reparo automático

Observação

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

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

  1. Tenta reiniciar o nó.
  2. Se a ação de reinicialização do nó não for bem-sucedida, o AKS fará novamente a imagem do nó.
  3. Se não for possível refazer a imagem e for um nó do Linux, o AKS reimplantará o nó.

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

Observação

O reparo automático não será disparado se as seguintes contaminações 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. O AKS tenta um máximo de 3 vezes para cada etapa.

Drenagem automática do nó

Eventos agendados pode 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 o preempt, fazem com que a drenagem automática do nó AKS tente um isolamento e drenagem do nó afetado. Esse processo permite o reagendamento das cargas de trabalho afetadas nesse nó. Você pode notar que o nó recebe um taint com "remediator.kubernetes.azure.com/unschedulable", devido a "kubernetes.azure.com/scalesetpriority: spot".

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

Evento Descrição Ação
Congelamento A VM está programada para pausar por alguns segundos. A conectividade de CPU e rede pode ser suspensa, mas não há nenhum impacto na memória ou nos arquivos abertos. Nenhuma ação.
Reboot A VM está programada para reinicialização. A memória não persistente da VM é perdida. Nenhuma ação.
Reimplantar A VM está programada para ser movida para outro nó. Os discos efêmeros da VM são perdidos. Isolamento e drenagem.
Preempt A VM Spot está sendo excluída. Os discos efêmeros da VM são perdidos. Cordon e drenagem
Terminate A VM está agendada para exclusão. Isolamento e drenagem.

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 pode reparar o problema ou detectar a existência de um problema. Por exemplo, o AKS não pode detectar problemas nos seguintes exemplos de cenários:

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

A drenagem automática de nós é um serviço de melhor esforço e não há a garantia de que opere perfeitamente em todos os cenários

Próximas etapas

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