Réparation automatique des nœuds AKS

Azure Kubernetes Service (AKS) surveille en permanence l’état d’intégrité des nœuds Worker et effectue une réparation automatique des nœuds s’ils ne sont pas sains. La plateforme de machines virtuelles Azure effectue la maintenance des machines virtuelles qui rencontrent des problèmes. AKS et les machines virtuelles Azure opèrent ensemble pour réduire les interruptions de service pour vos clusters.

Dans cet article, vous découvrirez comment la fonctionnalité de réparation automatique des nœuds fonctionne pour les nœuds Windows et Linux.

Comment AKS vérifie les nœuds NotReady

AKS utilise les règles suivantes pour déterminer si un nœud est dans un état non sain et nécessite une réparation :

  • Le nœud signale l’état NotReady lors de vérifications consécutives sur une période de 10 minutes.
  • Le nœud ne signale aucun état pendant 10 minutes.

Vous pouvez vérifier manuellement l’état d’intégrité de vos nœuds avec la commande kubectl get nodes.

Fonctionnement de la réparation automatique

Notes

AKS lance des opérations de réparation avec le compte d’utilisateur aks-remediator.

Si AKS identifie un nœud en mauvais état d’intégrité pendant cinq minutes, AKS effectue les actions suivantes :

  1. Tente de redémarrer le nœud.
  2. Si le redémarrage de nœud échoue, AKS réinitialise le nœud.
  3. Si la réinitialisation échoue et s’il s’agit d’un nœud Linux, AKS redéploie le nœud.

Les ingénieurs d’AKS étudient des solutions alternatives si la réparation automatique échoue.

Remarque

La réparation automatique n’est pas déclenchée si les teintes suivantes sont présentes sur le nœud : node.cloudprovider.kubernetes.io/shutdown, ToBeDeletedByClusterAutoscaler.

Le processus global de réparation automatique peut prendre jusqu’à une heure. AKS réessaye au maximum 3 fois pour chaque étape.

Drainage automatique des nœuds

Des événements planifiés peuvent se produire sur les machines virtuelles sous-jacentes dans l’un de vos pools de nœuds. Pour les pools de nœuds spot, les événements planifiés peuvent entraîner un événement de nœud de préemption pour le nœud. Certains événements de nœud, tels que la préemption, provoquent le drainage automatique du nœud AKS pour tenter une isolation et un drainage du nœud affecté. Ce processus permet de rééchelonner toutes les charges de travail affectées sur ce nœud. Vous remarquerez peut-être que le nœud reçoit une teinte avec "remediator.kubernetes.azure.com/unschedulable", en raison de "kubernetes.azure.com/scalesetpriority: spot".

Le tableau suivant présente les événements de nœud, ainsi que des actions qu’ils entraînent pour le drainage automatique du nœud AKS :

Événement Description Action
Freeze la machine virtuelle est planifiée pour être mise en pause pendant quelques secondes. L’UC et la connectivité réseau peuvent être suspendus, mais cela n’a aucun impact sur la mémoire ni sur les fichiers ouverts. Aucune action.
Reboot la machine virtuelle est planifiée pour redémarrer. La mémoire non persistante de la machine virtuelle est perdue. Aucune action.
Redeploy la machine virtuelle est planifiée pour être déplacée sur un autre nœud. Les disques éphémères de la machine virtuelle sont perdus. Isolez et drainez.
Preempt La machine virtuelle spot est en cours de suppression. Les disques éphémères de la machine virtuelle sont perdus. Isolation et drainage
Terminate La machine virtuelle est planifiée pour supprimer. Isolez et drainez.

Limites

Dans de nombreux cas, AKS peut déterminer si un nœud est en mauvais état d’intégrité et essaie de corriger le problème. Toutefois, dans certains cas, AKS ne peut pas résoudre le problème ou même le détecter. Par exemple, AKS ne peut pas détecter les problèmes dans ces exemples de scénarios :

  • Un état de nœud n’est pas signalé en raison d’une erreur dans la configuration réseau.
  • Un nœud n’a pas pu s’inscrire initialement en tant que nœud intègre.

Node Autodrain est un service du meilleur effort, sans garantie de fonctionnement parfait dans tous les scénarios

Étapes suivantes

Utilisez les zones de disponibilité pour augmenter la haute disponibilité avec les charges de travail de votre cluster AKS.