Réparer automatiquement les nœuds dans les clusters EKS - Amazon EKS

Aidez à améliorer cette page

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Réparer automatiquement les nœuds dans les clusters EKS

Cette rubrique décrit le comportement de réparation automatique des nœuds EKS et explique comment le configurer pour répondre à vos besoins. La réparation automatique des nœuds EKS est activée par défaut en mode automatique EKS et peut être utilisée avec les groupes de nœuds gérés par EKS et Karpenter.

Les actions de réparation automatique des nœuds EKS par défaut sont résumées dans le tableau ci-dessous et s'appliquent au comportement du mode automatique EKS, des groupes de nœuds gérés par EKS et de Karpenter. Lorsque vous utilisez le mode automatique d'EKS ou Karpenter, toutes les actions de AcceleratedHardwareReady réparation le sontReplace, et seuls les groupes de nœuds gérés par EKS sont pris Reboot en charge en tant qu'action de réparation.

Pour obtenir une liste détaillée des problèmes de santé des nœuds détectés par l'agent de surveillance des nœuds EKS et des actions de réparation des nœuds correspondantes, consultezDétectez les problèmes de santé des nœuds avec l'agent de surveillance des nœuds EKS.

État du nœud Description Réparation après Action (s) de réparation

AcceleratedHardwareReady

AcceleratedHardwareReady indique si le matériel accéléré (GPU, Neuron) du nœud fonctionne correctement.

10 m

Remplacer ou redémarrer

ContainerRuntimeReady

ContainerRuntimeReady indique si le moteur d'exécution du conteneur (containerd, etc.) fonctionne correctement et est capable d'exécuter des conteneurs.

30 m

Remplacez

DiskPressure

DiskPressure est une condition standard de Kubernetes indiquant que le nœud est soumis à une pression sur le disque (espace disque insuffisant ou E/S élevées).

N/A

Aucune

KernelReady

KernelReady indique si le noyau fonctionne correctement sans erreur critique, panique ou épuisement des ressources.

30 m

Remplacez

MemoryPressure

MemoryPressure est une condition standard de Kubernetes indiquant que le nœud est soumis à une pression de mémoire (faible mémoire disponible).

N/A

Aucune

NetworkingReady

NetworkingReady indique si la pile réseau du nœud fonctionne correctement (interfaces, routage, connectivité).

30 m

Remplacez

StorageReady

StorageReady indique si le sous-système de stockage du nœud fonctionne correctement (disques, systèmes de fichiers, E/S).

30 m

Remplacez

Prêt

Prêt est la condition standard de Kubernetes indiquant que le nœud est sain et prêt à accepter des pods.

30 m

Remplacez

Les actions de réparation automatique des nœuds EKS sont désactivées par défaut dans les scénarios suivants. Les actions de réparation des nœuds en cours se poursuivent dans chaque scénario. Découvrez Configurer la réparation automatique des nœuds comment remplacer ces paramètres par défaut.

Groupes de nœuds gérés par EKS

  • Le groupe de nœuds compte plus de cinq nœuds et plus de 20 % des nœuds du groupe de nœuds ne fonctionnent pas correctement.

  • Un changement de zone pour votre cluster se déclenche via l'Application Recovery Controller (ARC).

Mode automatique EKS et Karpenter

  • Plus de 20 % des nœuds du NodePool sont en mauvais état.

  • En mode autonome NodeClaims, 20 % des nœuds du cluster ne fonctionnent pas correctement.

Configurer la réparation automatique des nœuds

La réparation automatique des nœuds ne peut pas être configurée lors de l'utilisation du mode automatique EKS et elle est toujours activée avec les mêmes paramètres par défaut que Karpenter.

Karpenter

Pour utiliser la réparation automatique des nœuds avec Karpenter, activez le portail NodeRepair=true des fonctionnalités. Vous pouvez activer les portes de fonctionnalités via l'option --feature-gates CLI ou la variable d'FEATURE_GATESenvironnement dans le déploiement de Karpenter. Pour en savoir plus, veuillez consulter la documentation Karpenter.

Groupes de nœuds gérés

Vous pouvez activer la réparation automatique des nœuds lors de la création de nouveaux groupes de nœuds gérés par EKS ou en mettant à jour les groupes de nœuds gérés par EKS existants.

Lorsque vous utilisez des groupes de nœuds gérés par EKS, vous pouvez contrôler le comportement de réparation automatique des nœuds à l'aide des paramètres suivants.

Pour contrôler le moment où la réparation automatique des nœuds cesse d'agir, définissez un seuil basé sur le nombre de nœuds défectueux dans le groupe de nœuds. Définissez le nombre absolu ou le pourcentage, mais pas les deux.

Paramètre Description

maxUnhealthyNodeThresholdCount

Nombre absolu de nœuds défectueux au-dessus duquel la réparation automatique des nœuds s'arrête. Utilisez-le pour limiter l'étendue des réparations.

maxUnhealthyNodeThresholdPercentage

Pourcentage de nœuds défectueux au-dessus duquel la réparation automatique des nœuds s'arrête (0 à 100).

Pour contrôler le nombre de nœuds réparés simultanément, vous pouvez configurer le parallélisme de réparation. Comme pour le seuil de nœuds défectueux, définissez le nombre absolu ou le pourcentage, mais pas les deux.

Paramètre Description

maxParallelNodesRepairedCount

Le nombre maximum de nœuds à réparer simultanément.

maxParallelNodesRepairedPercentage

Pourcentage maximal de nœuds défectueux à réparer simultanément (0 à 100).

AvecnodeRepairConfigOverrides, vous pouvez personnaliser le comportement de réparation en fonction de conditions spécifiques. Utilisez-le lorsque vous avez besoin de différentes actions de réparation ou de temps d'attente pour différents types de problèmes.

Chaque dérogation nécessite tous les champs suivants :

Champ Description

nodeMonitoringCondition

Type de condition du nœud signalé par l'agent de surveillance du nœud. Par exemple :AcceleratedHardwareReady,NetworkingReady,StorageReady,KernelReady.

nodeUnhealthyReason

Le code de raison spécifique de l'état insalubre. Par exemple   NvidiaXID31Error, IPAMDNotRunning.

minRepairWaitTimeMins

Durée minimale, en minutes, pendant laquelle la condition doit persister avant que le nœud puisse être réparé. Utilisez-le pour éviter de réparer les nœuds pour des problèmes temporaires.

repairAction

L'action à entreprendre lorsque les conditions sont réunies. Valeurs valides : Replace (arrêt et remplacement du nœud), Reboot (redémarrage du nœud) ou NoAction (aucune action de réparation).

L'exemple de AWS CLI suivant crée un groupe de nœuds avec des paramètres de réparation personnalisés.

aws eks create-nodegroup \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --node-role arn:aws:iam::111122223333:role/NodeRole \ --subnets subnet-0123456789abcdef0 \ --node-repair-config '{ "enabled": true, "maxUnhealthyNodeThresholdPercentage": 10, "maxParallelNodesRepairedCount": 3, "nodeRepairConfigOverrides": [ { "nodeMonitoringCondition": "AcceleratedHardwareReady", "nodeUnhealthyReason": "NvidiaXID64Error", "minRepairWaitTimeMins": 5, "repairAction": "Replace" }, { "nodeMonitoringCondition": "AcceleratedHardwareReady", "nodeUnhealthyReason": "NvidiaXID31Error", "minRepairWaitTimeMins": 15, "repairAction": "NoAction" } ] }'

Cette configuration effectue les opérations suivantes :

  • Permet la réparation automatique des nœuds

  • Arrête les actions de réparation lorsque plus de 10 % des nœuds ne sont pas sains

  • Répare jusqu'à 3 nœuds à la fois

  • Annule les erreurs XID 64 (échec du remappage de la mémoire du GPU) pour remplacer le nœud au bout de 5 minutes. La valeur par défaut est le redémarrage au bout de 10 minutes.

  • Annule les erreurs XID 31 (erreur de page de mémoire du GPU) pour ne rien faire. La valeur par défaut est le redémarrage au bout de 10 minutes.