Réparation automatique des nœuds AKS

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 ce document, vous allez découvrir le comportement de la fonctionnalité de réparation automatique des nœuds pour les nœuds Windows et Linux.

Comment AKS vérifie les nœuds non sains

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 kubectl.

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. Le nombre minimal de nœuds requis dans un cluster AKS pour la réparation automatique est de 2.

Si AKS identifie un nœud non sain qui reste dans cet état pendant 10 minutes, AKS effectue les actions suivantes :

  1. Redémarrez le nœud.
  2. Si le redémarrage échoue, réinitialisez le nœud.
  3. Si la réinitialisation échoue, redéployez le nœud.

Des solutions alternatives sont étudiées par les ingénieurs d’AKS si la réparation automatique échoue.

Si AKS trouve plusieurs nœuds non sains pendant un contrôle d’intégrité, chaque nœud est réparé individuellement avant qu’une autre réparation ne commence.

Drainage automatique de nœud

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 le drainage du nœud affecté, ce qui permet une replanification appropriée de toutes les charges de travail concernées sur ce nœud. Dans ce cas, vous pouvez remarquer que le nœud doit recevoir une teinte avec « remediator.aks.microsoft.com/unschedulable », en raison de « kubernetes.azure.com/scalesetpriority : spot ».

Le tableau suivant présente les événements de nœud, ainsi que les 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. Isolation et drainage
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 suppression de la machine virtuelle est planifiée. Isolation et drainage

Limites

Dans de nombreux cas, AKS peut déterminer si un nœud est défectueux et tenter de résoudre le problème, mais dans certains cas, AKS ne peut pas réparer le problème ou détecter qu’il y a un problème. Par exemple, AKS ne peut pas détecter les problèmes si l’état d’un nœud n’est pas signalé en raison d’une configuration réseau incorrecte, ou s’il n’a pas réussi à s’inscrire initialement en tant que nœud sain.

Étapes suivantes

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