Détectez les problèmes de santé des nœuds avec l'agent de surveillance des nœuds 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.

Détectez les problèmes de santé des nœuds avec l'agent de surveillance des nœuds EKS

Cette rubrique détaille les problèmes de santé des nœuds détectés par l'agent de surveillance des nœuds EKS, la manière dont ces problèmes apparaissent sous forme de conditions ou d'événements sur les nœuds, et comment configurer l'agent de surveillance des nœuds.

L'agent de surveillance des nœuds EKS peut être utilisé avec ou sans réparation automatique des nœuds EKS. Pour plus d'informations sur la réparation automatique des nœuds EKS, consultezRéparer automatiquement les nœuds dans les clusters EKS.

Le code source de l'agent de surveillance des nœuds EKS est publié GitHub dans le eks-node-monitoring-agent référentiel aws/.

Problèmes d’état du nœud

Les tableaux suivants décrivent les problèmes d’état des nœuds que l’agent de surveillance des nœuds peut détecter. Il existe deux types de problèmes :

  • Condition : problème terminal qui nécessite une action corrective, telle que le remplacement d’une instance ou un redémarrage. Lorsque la réparation automatique est activée, Amazon EKS effectue une action de réparation, soit en remplaçant le nœud, soit en le redémarrant. Pour de plus amples informations, veuillez consulter Conditions des nœuds.

  • Événement : problème temporaire ou configuration sous-optimale du nœud. Aucune action de réparation automatique n’est effectuée. Pour de plus amples informations, veuillez consulter Événements des nœuds.

AcceleratedHardware problèmes de santé des nœuds

La condition de surveillance est AcceleratedHardwareReady pour les problèmes du tableau suivant qui ont une sévérité « Condition ». Les événements et conditions décrits dans le tableau ci-dessous concernent les problèmes de santé des nœuds liés à NVIDIA et Neuron.

Nom Sévérité Description Action de réparation

DCGMDiagnosticDéfaillance

Condition

Un cas de test de la suite de tests de diagnostic actif DCGM a échoué.

Aucune

DCGMError

Condition

La connexion au processus hôte DCGM a été perdue ou n'a pas pu être établie.

Aucune

DCGMFieldErreur [Code]

Événement

Le DCGM a détecté une dégradation du GPU grâce à un identifiant de champ.

Aucune

DCGMHealthCode [Code]

Événement

Un bilan de santé du DCGM a échoué de manière non fatale.

Aucune

DCGMHealthCode [Code]

Condition

Un bilan de santé du DCGM a échoué de manière fatale.

Aucune

Neurone DMAError

Condition

Un moteur DMA a rencontré une erreur irrécupérable.

Remplacez

Erreur neuronale HBMUncorrectable

Condition

Une mémoire HBM a rencontré une erreur incorrigible et a produit des résultats incorrects.

Remplacez

Erreur neuronale NCUncorrectable

Condition

Une erreur mémoire incorrigible du cœur Neuron a été détectée.

Remplacez

Erreur neuronale SRAMUncorrectable

Condition

Une mémoire SRAM sur puce a rencontré une erreur de parité et a produit des résultats incorrects.

Remplacez

NvidiaDeviceCountMismatch

Événement

Le nombre de périphériques GPUs visibles via NVML ne correspond pas au nombre de périphériques NVIDIA présents sur le système de fichiers.

Aucune

NvidiaDoubleBitError

Condition

Le pilote GPU a généré une erreur double bit.

Remplacez

Nvidia NCCLError

Événement

Une erreur de segmentation s'est produite dans la bibliothèque NVIDIA Collective Communications (libnccl).

Aucune

NVLinkErreur Nvidia

Condition

NVLink des erreurs ont été signalées par le pilote du GPU.

Remplacez

PCIeErreur Nvidia

Événement

PCIe des rediffusions ont été déclenchées pour remédier à des erreurs de transmission.

Aucune

NvidiaPageRetirement

Event

Le pilote GPU a marqué une page mémoire pour mise hors service. Cela peut se produire si une seule erreur double bit ou deux erreurs simple bit sont détectées à la même adresse.

Aucune

NvidiaPowerError

Event

La consommation d'énergie GPUs a dépassé les seuils autorisés.

Aucune

NvidiaThermalError

Event

L'état thermique GPUs a dépassé les seuils autorisés.

Aucune

Erreur NvidiaXid [Code]

Condition

Une erreur critique du processeur graphique s'est produite.

Remplacer ou redémarrer

NvidiaXID[Code]Warning

Événement

Une erreur GPU non critique s'est produite.

Aucune

Codes d'erreur NVIDIA XID

L'agent de surveillance des nœuds détecte les erreurs NVIDIA XID dans les journaux du noyau du GPU. Les erreurs XID se répartissent en deux catégories :

  • Codes XID connus : erreurs critiques qui définissent la condition d'un nœud (AcceleratedHardwareReady=False) et déclenchent une réparation automatique lorsqu'ils sont activés. La raison pour laquelle le format du code estNvidiaXID[Code]Error. Les codes XID bien connus détectés par l'agent de surveillance des nœuds EKS ne représentent peut-être pas la liste complète des codes XID NVIDIA nécessitant des actions de réparation.

  • Codes XID inconnus : enregistrés uniquement en tant qu'événements Kubernetes. Ils ne déclenchent pas la réparation auto. La raison pour laquelle le format du code estNvidiaXID[Code]Warning. Pour rechercher des erreurs XID inconnues, consultez les journaux de votre noyau avecdmesg | grep -i nvrm.

Pour plus d’informations sur les erreurs XID, consultez Erreurs XID dans la Documentation sur le déploiement et la gestion des GPU NVIDIA. Pour plus d’informations sur les messages XID individuels, consultez Comprendre les messages XID dans la Documentation sur le déploiement et la gestion des GPU NVIDIA.

Le tableau suivant répertorie les codes XID connus, leur signification et l'action de réparation des nœuds par défaut si elle est activée.

Code XID Description Action de réparation

13

Exception relative au moteur graphique : une erreur du moteur graphique du processeur graphique s'est produite, généralement en raison de problèmes logiciels ou de bogues du pilote.

Redémarrer

31

Erreur de page de mémoire du processeur graphique : une application a tenté d'accéder à la mémoire du processeur graphique qui n'est ni mappée ni accessible.

Redémarrer

48

Erreur ECC double bit — Une erreur double bit non corrigible s'est produite dans la mémoire du GPU, indiquant une dégradation matérielle potentielle.

Redémarrer

63

Événement de remappage de la mémoire du GPU : le pilote du GPU a remappé une partie de la mémoire du GPU en raison d'erreurs détectées. Cela est souvent récupérable.

Redémarrer

64

Échec du remappage de la mémoire du processeur graphique : le processeur graphique n'a pas pu remapper la mémoire défectueuse, ce qui indique des problèmes matériels.

Redémarrer

74

NVLink Erreur — Une erreur s'est produite lors de l' NVLink interconnexion haut débit entre GPUs.

Remplacez

79

Le GPU est tombé du bus — Le GPU n'est plus accessible via PCIe, ce qui indique généralement une panne matérielle ou un problème d'alimentation.

Remplacez

94

Erreur de mémoire contenue : une erreur de mémoire s'est produite mais elle est restée confinée et n'a pas affecté les autres applications.

Redémarrer

95

Erreur de mémoire non confinée : une erreur de mémoire s'est produite et peut avoir affecté d'autres applications ou la mémoire du système.

Redémarrer

119

Délai d'expiration du GSP RPC : le délai de communication avec le processeur du système GPU a expiré, probablement en raison de problèmes liés au microprogramme.

Remplacez

120

Erreur GSP — Une erreur s'est produite dans le processeur du système GPU.

Remplacez

121

Erreur C2C — Une erreur s'est produite sur l' chip-to-chipinterconnexion (utilisée en GPUs multipuce).

Remplacez

140

Erreur ECC non récupérée — Une erreur ECC a échappé au confinement et a peut-être endommagé les données.

Remplacez

Pour afficher l'état actuel du nœud lié à l'état du GPU, exécutez la commande suivante.

kubectl get nodes -o custom-columns='NAME:.metadata.name,ACCELERATOR_READY:.status.conditions[?(@.type=="AcceleratedHardwareReady")].status,REASON:.status.conditions[?(@.type=="AcceleratedHardwareReady")].reason'

Pour afficher les événements liés au XID sur votre cluster, exécutez l'une des commandes suivantes.

kubectl get events | grep -i "NvidiaXID"

ContainerRuntime problèmes de santé des nœuds

La condition de surveillance est ContainerRuntimeReady pour les problèmes du tableau suivant qui ont une sévérité « Condition ».

Nom Sévérité Description Action de réparation

ContainerRuntimeFailed

Événement

L’exécution du conteneur n’a pas réussi à créer un conteneur, ce qui est probablement lié à des problèmes signalés s’ils se produisent de manière répétée.

Aucune

DeprecatedContainerdConfiguration

Event

Une image de conteneur utilisant le manifeste d'image obsolète version 2, schéma 1, a récemment été transférée sur le nœud via. containerd

Aucune

KubeletFailed

Event

Le kubelet est passé à l’état d’échec.

Aucune

LivenessProbeFailures

Event

Une défaillance de la sonde de vivacité a été détectée, ce qui peut indiquer des problèmes de code d’application ou des valeurs de délai d’expiration insuffisantes si cela se produit de manière répétée.

Aucune

PodStuckTerminating

Condition

Un pod est ou était bloqué pendant une durée excessive, ce qui peut être dû à des erreurs CRI empêchant la progression de l’état du pod.

Remplacez

ReadinessProbeFailures

Événement

Une défaillance de la sonde de disponibilité a été détectée, ce qui peut indiquer des problèmes de code d’application ou des valeurs de délai d’expiration insuffisantes si cela se produit de manière répétée.

Aucune

[Nom] RepeatedRestart

Événement

Une unité systemd redémarre fréquemment.

Aucune

ServiceFailedToStart

Event

Une unité systemd n’a pas pu démarrer.

Aucune

Problèmes d’état du nœud du noyau

La condition de surveillance est KernelReady pour les problèmes du tableau suivant qui ont une sévérité « Condition ».

Nom Sévérité Description Action de réparation

AppBlocked

Événement

La tâche a été bloquée pendant une longue période à partir de la planification, généralement en raison d’un blocage au niveau de l’entrée ou de la sortie.

Aucune

AppCrash

Event

Une application sur le nœud a planté.

Aucune

ApproachingKernelPidMax

Event

Le nombre de processus approche le nombre maximum de processus disponibles PIDs selon le kernel.pid_max paramètre actuel, après quoi aucun autre processus ne pourra être lancé.

Aucune

ApproachingMaxOpenFiles

Event

Le nombre de fichiers ouverts approche le nombre maximal de fichiers ouverts possibles selon les paramètres actuels du noyau, après quoi l’ouverture de nouveaux fichiers échouera.

Aucune

ConntrackExceededKernel

Event

Le suivi des connexions a dépassé le maximum pour le noyau et le système n’a pas pu établir de nouvelles connexions, ce qui peut entraîner une perte de paquets.

Aucune

ExcessiveZombieProcesses

Event

Les processus que le système ne peut pas entièrement récupérer s’accumulent en grand nombre, ce qui indique des problèmes d’application et peut conduire à atteindre les limites des processus du système.

Aucune

ForkFailedOutOfPIDs

Condition

Un appel fork ou exec a échoué en raison d'un manque de processus IDs ou de mémoire du système, ce qui peut être dû à des processus zombies ou à un épuisement physique de la mémoire.

Remplacez

KernelBug

Événement

Un bogue du noyau a été détecté et signalé par le noyau Linux lui-même, bien que cela puisse parfois être causé par des nœuds avec une utilisation élevée du processeur ou de la mémoire, entraînant un retard dans le traitement des événements.

Aucune

LargeEnvironment

Event

Le nombre de variables d'environnement associées à ce processus est supérieur aux prévisions, ce qui peut être dû au fait que de nombreux services sont enableServiceLinks définis sur true, ce qui peut entraîner des problèmes de performances.

Aucune

RapidCron

Event

Une tâche cron s’exécute plus rapidement que toutes les cinq minutes sur ce nœud, ce qui peut avoir un impact sur les performances si la tâche consomme des ressources importantes.

Aucune

SoftLockup

Event

Le CPU s’est bloqué pendant un certain temps.

Aucune

Problèmes d’état du nœud de réseau

La condition de surveillance est NetworkingReady pour les problèmes du tableau suivant qui ont une sévérité « Condition ».

Nom Sévérité Description Action de réparation

BandwidthInExceeded

Événement

La file d’attente ou la suppression de paquets s’explique par le dépassement du maximum de bande passante agrégée entrante pour l’instance.

Aucune

BandwidthOutExceeded

Event

La file d’attente ou la suppression de paquets s’explique par le dépassement du maximum de bande passante agrégée sortante pour l’instance.

Aucune

ConntrackExceeded

Event

Le suivi des connexions a dépassé le maximum pour l’instance et le système n’a pas pu établir de nouvelles connexions, ce qui peut entraîner une perte de paquets.

Aucune

EFAErrorMétrique

Événement

Les indicateurs du pilote EFA indiquent qu'il existe une interface présentant une dégradation des performances.

Aucune

IPAMDInconsistent État

Événement

L'état du point de contrôle IPAMD sur le disque ne reflète pas l'environnement d' IPs exécution du conteneur.

Aucune

IPAMDNoIPs

Event

Il n'y a plus d'adresses IP sur l'IPAMD.

Aucune

IPAMDNotPrêt

Condition

IPAMD ne parvient pas à se connecter au serveur API.

Remplacez

IPAMDNotCourir

Condition

Le processus Amazon VPC CNI n'a pas été détecté comme étant en cours d'exécution.

Remplacez

IPAMDRepeatedlyRedémarrer

Événement

Le service IPAMD s’est redémarré plusieurs fois.

Aucune

InterfaceNotRunning

Condition

Cette interface semble ne pas fonctionner ou il y a des problèmes de réseau.

Remplacez

InterfaceNotUp

Condition

Cette interface semble ne pas être active ou il y a des problèmes de réseau.

Remplacez

KubeProxyNotReady

Événement

Kube-proxy n’a pas réussi à surveiller ou à répertorier les ressources.

Aucune

LinkLocalExceeded

Event

Le système a supprimé des paquets car le PPS du trafic vers les services mandataires locaux a dépassé le maximum de l’interface réseau.

Aucune

MACAddressPolicyMisconfigured

Event

La valeur de la configuration du lien systemd-networkd est incorrecte. MACAddressPolicy

Aucune

MissingDefaultRoutes

Event

Il manque des règles de routage par défaut.

Aucune

Manquant IPRoutes

Événement

Il manque des itinéraires pour Pod IPs.

Aucune

Manquant IPRules

Événement

Il manque des règles pour Pod IPs.

Aucune

MissingLoopbackInterface

Condition

L’interface de bouclage est manquante dans cette instance, ce qui entraîne l’échec des services dépendant de la connectivité locale.

Remplacez

NetworkSysctl

Événement

Les sysctl paramètres réseau de ce nœud sont potentiellement incorrects.

Aucune

PPSExceeded

Event

Des paquets ont été mis en file d’attente ou supprimés car le PPS bidirectionnel a dépassé le maximum pour l’instance.

Aucune

PortConflict

Event

Si un Pod utilise HostPort, il peut écrire des iptables règles qui remplacent les ports déjà liés de l'hôte, empêchant potentiellement l'accès du serveur API à. kubelet

Aucune

UnexpectedRejectRule

Event

Une DROP règle REJECT ou un élément inattendu a été détecté dans leiptables, bloquant potentiellement le trafic attendu.

Aucune

Problèmes d’état du nœud de stockage

La condition de surveillance est StorageReady pour les problèmes du tableau suivant qui ont une sévérité « Condition ».

Nom Sévérité Description Action de réparation

EBSInstanceIOPSExceeded

Événement

Le nombre maximal d'IOPS pour l'instance a été dépassé.

Aucune

EBSInstanceThroughputExceeded

Event

Le débit maximal de l'instance a été dépassé.

Aucune

EBSVolumeIOPSExceeded

Event

Le nombre maximal d'IOPS pour un volume EBS donné a été dépassé.

Aucune

EBSVolumeThroughputExceeded

Event

Le débit maximal pour un volume Amazon EBS spécifique a été dépassé.

Aucune

EtcHostsMountFailed

Event

Le montage du kubelet généré /etc/hosts a échoué en raison du /var/lib/kubelet/pods remontage des données utilisateur pendant le fonctionnement. kubelet-container

Aucune

IODelays

Event

Un retard d’entrée ou de sortie a été détecté dans un processus, ce qui peut indiquer un provisionnement d’entrée-sortie insuffisant s’il est excessif.

Aucune

KubeletDiskUsageSlow

Event

Le signale kubelet une utilisation lente du disque lors de la tentative d'accès au système de fichiers. Cela peut indiquer une insuffisance des entrées-sorties du disque ou des problèmes de système de fichiers.

Aucune

XFSSmallAverageClusterSize

Event

La taille moyenne du cluster XFS est faible, ce qui indique une fragmentation excessive de l'espace libre. Cela peut empêcher la création de fichiers malgré les inodes disponibles ou l'espace libre.

Aucune

Configuration de l'agent de surveillance des nœuds

L'agent de surveillance des nœuds EKS est déployé en tant que DaemonSet. Lorsque vous le déployez en tant que module complémentaire EKS, vous pouvez personnaliser l'installation avec les valeurs de configuration suivantes. Pour les configurations par défaut, reportez-vous au diagramme Helm de l'agent de surveillance des nœuds EKS.

Option de configuration Description

monitoringAgent.resources.requests.cpu

Demande de ressources CPU pour l'agent de surveillance.

monitoringAgent.resources.requests.memory

Demande de ressource mémoire pour l'agent de surveillance.

monitoringAgent.resources.limits.cpu

Limite de ressources du processeur pour l'agent de surveillance.

monitoringAgent.resources.limits.memory

Limite de ressources de mémoire pour l'agent de surveillance.

monitoringAgent.tolerations

Tolérances pour la planification de l'agent de surveillance sur les nœuds contaminés.

monitoringAgent.additionalArgs

Arguments de ligne de commande supplémentaires à transmettre à l'agent de surveillance.

Note

Vous pouvez configurer hostname-override et verbosity comme monitoringAgent.additionalArgs pour les modules complémentaires EKS ou l'installation de Helm. Vous ne pouvez actuellement pas personnaliser l'agent de surveillance des nœuds probe-address (8002) ou metrics-address (8003) via des arguments supplémentaires avec les modules complémentaires EKS ou l'installation de Helm.

L'agent de surveillance des nœuds inclut un composant serveur NVIDIA DCGM (Data Center GPU Manager) (nv-hostengine) pour surveiller NVIDIA GPUs. Ce composant s'exécute uniquement sur les nœuds qui sont des types d'instances de GPU NVIDIA, comme indiqué nodeAffinity dans le graphique Helm de l'agent. Vous ne pouvez pas utiliser une installation NVIDIA DCGM existante avec l'agent de surveillance des nœuds EKS. Veuillez nous faire part de vos commentaires sur le GitHub numéro #2763 de la feuille de route EKS si vous avez besoin de cette fonctionnalité.

Lorsque vous déployez l'agent de surveillance des nœuds EKS en tant que module complémentaire EKS, vous pouvez personnaliser l'installation NVIDIA DCGM avec les valeurs de configuration suivantes.

Option de configuration Description

dcgmAgent.resources.requests.cpu

Demande de ressource CPU pour l'agent DCGM.

dcgmAgent.resources.requests.memory

Demande de ressource mémoire pour l'agent DCGM.

dcgmAgent.resources.limits.cpu

Limite de ressources du processeur pour l'agent DCGM.

dcgmAgent.resources.limits.memory

Limite de ressources de mémoire pour l'agent DCGM.

dcgmAgent.tolerations

Tolérances pour la planification de l'agent DCGM sur des nœuds contaminés.

Vous pouvez utiliser les commandes AWS CLI suivantes pour obtenir des informations utiles sur les versions et le schéma du module complémentaire EKS de l'agent de surveillance des nœuds EKS.

Téléchargez la dernière version du module complémentaire d'agent pour votre version de Kubernetes. 1.35Remplacez-le par votre version de Kubernetes.

aws eks describe-addon-versions \ --addon-name eks-node-monitoring-agent \ --kubernetes-version 1.35 \ --query='addons[].addonVersions[].addonVersion'

Obtenez le schéma des modules complémentaires d'agent pris en charge dans les modules complémentaires EKS. v1.5.1-eksbuild.1Remplacez-le par la version de votre agent.

aws eks describe-addon-configuration \ --addon-name eks-node-monitoring-agent \ --addon-version v1.5.1-eksbuild.1