Rileva i problemi di integrità dei nodi con l'agente di monitoraggio dei nodi EKS - Amazon EKS

Contribuisci a migliorare questa pagina

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Rileva i problemi di integrità dei nodi con l'agente di monitoraggio dei nodi EKS

Questo argomento descrive in dettaglio i problemi di integrità dei nodi rilevati dall'agente di monitoraggio dei nodi EKS, come tali problemi vengono rilevati sotto forma di condizioni o eventi del nodo e come configurare l'agente di monitoraggio dei nodi.

L'agente di monitoraggio dei nodi EKS può essere utilizzato con o senza la riparazione automatica dei nodi EKS. Per ulteriori informazioni sulla riparazione automatica dei nodi EKS, vedereRipara automaticamente i nodi nei cluster EKS.

Il codice sorgente dell'agente di monitoraggio dei nodi EKS è pubblicato GitHub nel repository aws/ eks-node-monitoring-agent.

Problemi di integrità dei nodi

Le tabelle seguenti descrivono i problemi di integrità dei nodi che possono essere rilevati dall’agente di monitoraggio dei nodi. Esistono due tipi di problemi:

  • Condizione: un problema del terminale che richiede un’azione di riparazione come la sostituzione o il riavvio dell’istanza. Quando la riparazione automatica è abilitata, Amazon EKS eseguirà un’azione di riparazione, sostituendo o riavviando il nodo. Per ulteriori informazioni, consulta Condizioni dei nodi.

  • Evento: un problema temporaneo o una configurazione non ottimale del nodo. Non sarà effettuata alcuna operazione di riparazione automatica. Per ulteriori informazioni, consulta Eventi dei nodi.

AcceleratedHardware problemi di salute dei nodi

La condizione di monitoraggio riguarda AcceleratedHardwareReady per i problemi riportati nella tabella seguente con una gravità pari a “Condizione”. Gli eventi e le condizioni nella tabella seguente riguardano i problemi di salute dei nodi relativi a NVIDIA e Neuron.

Name Gravità Description Azione di riparazione

DCGMDiagnosticFallimento

Condizione

Un caso di test della suite di test della diagnostica attiva DCGM non è riuscito.

Nessuno

DCGMError

Condizione

La connessione al processo host DCGM è stata interrotta o non è stato possibile stabilirla.

Nessuno

DCGMFieldErrore [Codice]

Event

DCGM ha rilevato un deterioramento della GPU tramite un identificatore di campo.

Nessuno

DCGMHealthCodice [Codice]

Event

Un controllo sanitario DCGM non è riuscito in modo non fatale.

Nessuno

DCGMHealthCodice [Codice]

Condizione

Un controllo sanitario DCGM non è riuscito in modo fatale.

Nessuno

Un neurone DMAError

Condizione

Un motore DMA ha rilevato un errore irreversibile.

Replace (Sostituisci)

Errore HBMUncorrectable neuronale

Condizione

Un HBM ha riscontrato un errore non correggibile e ha prodotto risultati errati.

Replace (Sostituisci)

Errore NCUncorrectable neuronale

Condizione

È stato rilevato un errore di memoria non correggibile di Neuron Core.

Replace (Sostituisci)

Errore SRAMUncorrectable neuronale

Condizione

Una SRAM su chip ha rilevato un errore di parità e ha prodotto risultati errati.

Replace (Sostituisci)

NvidiaDeviceCountMismatch

Event

Il numero di dispositivi GPUs visibili tramite NVML non è coerente con il numero di dispositivi NVIDIA sul file system.

Nessuno

NvidiaDoubleBitError

Condizione

Un errore a doppio bit è stato prodotto dal driver della GPU.

Replace (Sostituisci)

Nvidia NCCLError

Event

Si è verificato un errore di sicurezza nella libreria NVIDIA Collective Communications (). libnccl

Nessuno

Errore Nvidia NVLink

Condizione

NVLink gli errori sono stati segnalati dal driver della GPU.

Replace (Sostituisci)

Errore Nvidia PCIe

Event

PCIe i replay sono stati attivati per ripristinare gli errori di trasmissione.

Nessuno

NvidiaPageRetirement

Event

Il driver della GPU ha contrassegnato una pagina di memoria come ritirata. Ciò può verificarsi se si riscontra un singolo errore a doppio bit o due errori a singolo bit nello stesso indirizzo.

Nessuno

NvidiaPowerError

Event

L'utilizzo dell'energia ha GPUs superato le soglie consentite.

Nessuno

NvidiaThermalError

Event

Stato termico del superamento delle soglie consentite GPUs .

Nessuno

Errore nvidiaXID [Code]

Condizione

Si è verificato un errore critico della GPU.

Sostituisci o riavvia

NvidiaXID[Code]Warning

Event

Si è verificato un errore non critico della GPU.

Nessuno

Codici di errore NVIDIA XID

L'agente di monitoraggio dei nodi rileva gli errori NVIDIA XID dai log del kernel della GPU. Gli errori XID si dividono in due categorie:

  • Codici XID noti: errori critici che impostano una condizione del nodo (AcceleratedHardwareReady=False) e attivano la riparazione automatica quando abilitati. Il formato del codice motivo èNvidiaXID[Code]Error. I noti codici XID rilevati dall'agente di monitoraggio dei nodi EKS potrebbero non rappresentare l'elenco completo dei codici XID NVIDIA che richiedono azioni di riparazione.

  • Codici XID sconosciuti: registrati solo come eventi Kubernetes. Questi non attivano la riparazione dell'auto. Il formato del codice motivo èNvidiaXID[Code]Warning. Per verificare gli errori XID sconosciuti, controllate i log del kernel con. dmesg | grep -i nvrm

Per ulteriori informazioni sugli errori XID, consulta Errori Xid nella Documentazione di implementazione e gestione delle GPU NVIDIA. Per ulteriori informazioni sui singoli messaggi XID, consulta Comprensione dei messaggi Xid nella Documentazione di implementazione e gestione delle GPU NVIDIA.

La tabella seguente elenca i codici XID più diffusi, il loro significato e l'azione di riparazione dei nodi predefinita, se abilitata.

Codice XID Description Azione di riparazione

13

Eccezione del motore grafico: si è verificato un errore del motore grafico della GPU, in genere causato da problemi software o bug del driver.

Riavvio

31

Errore nella pagina di memoria della GPU: un'applicazione ha tentato di accedere alla memoria della GPU che non è mappata o accessibile.

Riavvio

48

Errore ECC a doppio bit: si è verificato un errore a doppio bit non correggibile nella memoria della GPU, che indica un potenziale degrado dell'hardware.

Riavvio

63

Evento di rimappatura della memoria GPU: il driver GPU ha rimappato una parte della memoria GPU a causa di errori rilevati. Questo problema è spesso recuperabile.

Riavviare

64

Errore di rimappatura della memoria della GPU: la GPU non è riuscita a rimappare la memoria difettosa, il che indica problemi hardware.

Riavvio

74

NVLink Errore: si è verificato un errore nell' NVLink interconnessione ad alta velocità tra. GPUs

Replace (Sostituisci)

79

La GPU è caduta dal bus: la GPU non è più accessibile tramite PCIe, il che in genere indica un guasto hardware o un problema di alimentazione.

Replace (Sostituisci)

94

Errore di memoria contenuta: si è verificato un errore di memoria ma era contenuto e non ha influito sulle altre applicazioni.

Riavvio

95

Errore di memoria non contenuta: si è verificato un errore di memoria che potrebbe aver influito su altre applicazioni o sulla memoria di sistema.

Riavvio

119

Timeout GSP RPC: la comunicazione con il processore di sistema GPU è scaduta, probabilmente a causa di problemi del firmware.

Replace (Sostituisci)

120

Errore GSP: si è verificato un errore nel processore di sistema GPU.

Replace (Sostituisci)

121

Errore C2C: si è verificato un errore nell' chip-to-chipinterconnessione (utilizzata in multi-die). GPUs

Replace (Sostituisci)

140

Errore ECC non recuperato: un errore ECC è sfuggito al contenimento e potrebbe aver danneggiato i dati.

Replace (Sostituisci)

Per visualizzare le condizioni correnti del nodo relative allo stato della GPU, esegui il comando seguente.

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

Per visualizzare gli eventi relativi a XID sul tuo cluster, esegui uno dei seguenti comandi.

kubectl get events | grep -i "NvidiaXID"

ContainerRuntime problemi di salute dei nodi

La condizione di monitoraggio riguarda ContainerRuntimeReady per i problemi riportati nella tabella seguente con una gravità pari a “Condizione”.

Name Gravità Description Azione di riparazione

ContainerRuntimeFailed

Event

Il runtime del container non è riuscito a creare un container, probabilmente correlato a eventuali problemi segnalati se si verificano ripetutamente.

Nessuno

DeprecatedContainerdConfiguration

Event

Un'immagine del contenitore che utilizza il manifesto dell'immagine obsoleta versione 2, schema 1, è stata recentemente inserita nel nodo. containerd

Nessuno

KubeletFailed

Event

Il kubelet è entrato in uno stato di errore.

Nessuno

LivenessProbeFailures

Event

È stato rilevato un errore della sonda liveness, che potrebbe indicare problemi nel codice dell’applicazione o nei valori di timeout insufficienti se si verificano ripetutamente.

Nessuno

PodStuckTerminating

Condizione

Un pod è o è rimasto bloccato nella terminazione per un periodo di tempo eccessivo, il che può essere causato da errori CRI che impediscono la progressione dello stato del pod.

Replace (Sostituisci)

ReadinessProbeFailures

Event

È stato rilevato un errore della sonda di preparazione, che potrebbe indicare problemi nel codice dell’applicazione o nei valori di timeout insufficienti se si verificano ripetutamente.

Nessuno

[Nome] RepeatedRestart

Event

Un'unità systemd si riavvia frequentemente.

Nessuno

ServiceFailedToStart

Event

Impossibile avviare un’unità systemd.

Nessuno

Problemi di integrità dei nodi del kernel

La condizione di monitoraggio riguarda KernelReady per i problemi riportati nella tabella seguente con una gravità pari a “Condizione”.

Name Gravità Description Azione di riparazione

AppBlocked

Event

L’attività è stata bloccata per un lungo periodo di tempo dalla pianificazione, in genere a causa del blocco in ingresso o in uscita.

Nessuno

AppCrash

Event

Un’applicazione sul nodo si è bloccata.

Nessuno

ApproachingKernelPidMax

Event

Il numero di processi si sta avvicinando al numero massimo di PIDs processi disponibili per l'kernel.pid_maximpostazione corrente, dopo di che non è possibile avviare altri processi.

Nessuno

ApproachingMaxOpenFiles

Event

Il numero di file aperti è simile al numero massimo di file aperti possibili date le impostazioni correnti del kernel, dopodiché l’apertura di nuovi file avrà esito negativo.

Nessuno

ConntrackExceededKernel

Event

Il rilevamento delle connessioni ha superato il valore massimo per il kernel e non è stato possibile stabilire nuove connessioni, il che può causare la perdita di pacchetti.

Nessuno

ExcessiveZombieProcesses

Event

I processi che non possono essere recuperati completamente si accumulano in gran numero, il che indica problemi di applicazione e può portare al raggiungimento dei limiti dei processi di sistema.

Nessuno

ForkFailedOutOfPIDs

Condizione

Una chiamata fork o exec non è riuscita a causa dell'esaurimento del processo IDs o della memoria del sistema, che può essere causato da processi zombi o dall'esaurimento della memoria fisica.

Replace (Sostituisci)

KernelBug

Event

Un bug del kernel è stato rilevato e segnalato dal kernel Linux stesso, sebbene a volte ciò può essere causato da nodi con un elevato utilizzo della CPU o della memoria, con conseguente ritardo nell’elaborazione degli eventi.

Nessuno

LargeEnvironment

Event

Il numero di variabili di ambiente per questo processo è maggiore del previsto, potenzialmente causato da molti servizi enableServiceLinks impostati su true, il che può causare problemi di prestazioni.

Nessuno

RapidCron

Event

Un cron job è eseguito più velocemente di ogni cinque minuti su questo nodo, il che può influire sulle prestazioni se il processo consuma risorse significative.

Nessuno

SoftLockup

Event

La CPU si è bloccata per un periodo di tempo specificato.

Nessuno

Problemi di integrità dei nodi di rete

La condizione di monitoraggio riguarda NetworkingReady per i problemi riportati nella tabella seguente con una gravità pari a “Condizione”.

Name Gravità Description Azione di riparazione

BandwidthInExceeded

Event

I pacchetti accodati o rilasciati perché la larghezza di banda aggregata in ingresso ha superato il valore massimo per l’istanza.

Nessuno

BandwidthOutExceeded

Event

I pacchetti sono stati accodati o rilasciati perché la larghezza di banda aggregata in uscita ha superato il valore massimo per l’istanza.

Nessuno

ConntrackExceeded

Event

Il rilevamento delle connessioni ha superato il valore massimo per l’istanza e non è stato possibile stabilire nuove connessioni, il che può determinare la perdita di pacchetti.

Nessuno

EFAErrorParametro

Event

Le metriche dei driver EFA mostrano che esiste un'interfaccia con la riduzione delle prestazioni.

Nessuno

IPAMDInconsistentStato

Event

Lo stato del checkpoint IPAMD su disco non riflette il runtime del contenitore. IPs

Nessuno

IPAMDNoIPs

Event

IPAMD ha esaurito gli indirizzi IP.

Nessuno

IPAMDNotPronto

Condizione

IPAMD non riesce a connettersi al server API.

Replace (Sostituisci)

IPAMDNotCorrere

Condizione

Il processo CNI di Amazon VPC non è stato trovato in esecuzione.

Replace (Sostituisci)

IPAMDRepeatedlyRiavvia

Event

Si sono verificati più riavvii del servizio IPAMD.

Nessuno

InterfaceNotRunning

Condizione

Questa interfaccia sembra non essere in esecuzione o ci sono problemi di rete.

Replace (Sostituisci)

InterfaceNotUp

Condizione

Questa interfaccia sembra non essere avviata o ci sono problemi di rete.

Replace (Sostituisci)

KubeProxyNotReady

Event

Kube-proxy non è riuscito a controllare o elencare le risorse.

Nessuno

LinkLocalExceeded

Event

I pacchetti sono stati accodati o rilasciati perché il PPS del traffico verso i servizi proxy locali ha superato il valore massimo per l’interfaccia di rete.

Nessuno

MACAddressPolicyMisconfigured

Event

La configurazione del link systemd-networkd ha un valore errato. MACAddressPolicy

Nessuno

MissingDefaultRoutes

Event

Mancano le regole di routing predefinite.

Nessuno

Mancante IPRoutes

Event

Mancano alcune rotte per Pod IPs.

Nessuno

Mancante IPRules

Event

Mancano delle regole per Pod IPs.

Nessuno

MissingLoopbackInterface

Condizione

L’interfaccia di loopback non è presente in questa istanza, il che causa l’interruzione dei servizi a seconda della connettività locale.

Replace (Sostituisci)

NetworkSysctl

Event

Le sysctl impostazioni di rete di questo nodo sono potenzialmente errate.

Nessuno

PPSExceeded

Event

I pacchetti sono stati accodati o rilasciati perché il PPS bidirezionale ha superato il valore massimo per l’istanza.

Nessuno

PortConflict

Event

Se un Pod utilizza HostPort, può scrivere iptables regole che sovrascrivono le porte già associate dell'host, impedendo potenzialmente l'accesso al server API. kubelet

Nessuno

UnexpectedRejectRule

Event

È stata rilevata una DROP regola REJECT o imprevista nel traffico iptables previsto che potrebbe bloccare.

Nessuno

Problemi di integrità dei nodi di storage

La condizione di monitoraggio riguarda StorageReady per i problemi riportati nella tabella seguente con una gravità pari a “Condizione”.

Name Gravità Description Azione di riparazione

EBSInstanceIOPSExceeded

Event

È stato superato il numero massimo di IOPS per l'istanza.

Nessuno

EBSInstanceThroughputExceeded

Event

Il throughput massimo per l'istanza è stato superato.

Nessuno

EBSVolumeIOPSExceeded

Event

È stato superato il numero massimo di IOPS per un determinato volume EBS.

Nessuno

EBSVolumeThroughputExceeded

Event

È stato superato il throughput massimo per un determinato volume Amazon EBS.

Nessuno

EtcHostsMountFailed

Event

Il montaggio del kubelet generato /etc/hosts non è riuscito a causa del rimontaggio dei dati utente durante il funzionamento. /var/lib/kubelet/pods kubelet-container

Nessuno

IODelays

Event

Ritardo di ingresso o uscita rilevato in un processo, che potrebbe indicare un approvvigionamento input-output insufficiente, se eccessivo.

Nessuno

KubeletDiskUsageSlow

Event

Segnala kubelet un utilizzo lento del disco durante il tentativo di accesso al filesystem. Ciò potrebbe indicare problemi di input-output del disco o problemi di file system insufficienti.

Nessuno

XFSSmallAverageClusterSize

Event

La dimensione media del cluster XFS è piccola, il che indica un'eccessiva frammentazione dello spazio libero. Ciò può impedire la creazione di file nonostante gli inode disponibili o lo spazio libero.

Nessuno

Configura l'agente di monitoraggio del nodo

L'agente di monitoraggio dei nodi EKS viene distribuito come DaemonSet. Quando lo distribuisci come componente aggiuntivo EKS, puoi personalizzare l'installazione con i seguenti valori di configurazione. Per le configurazioni predefinite, fate riferimento alla tabella Helm dell'agente di monitoraggio dei nodi EKS.

Opzione di configurazione Description

monitoringAgent.resources.requests.cpu

Richiesta di risorse CPU per l'agente di monitoraggio.

monitoringAgent.resources.requests.memory

Richiesta di risorse di memoria per l'agente di monitoraggio.

monitoringAgent.resources.limits.cpu

Limite di risorse della CPU per l'agente di monitoraggio.

monitoringAgent.resources.limits.memory

Limite di risorse di memoria per l'agente di monitoraggio.

monitoringAgent.tolerations

Tolleranze per la pianificazione dell'agente di monitoraggio sui nodi contaminati.

monitoringAgent.additionalArgs

Argomenti aggiuntivi della riga di comando da passare all'agente di monitoraggio.

Nota

È possibile configurare hostname-override e verbosity utilizzare i componenti aggiuntivi EKS o l'installazione di Helm. monitoringAgent.additionalArgs Al momento non è possibile personalizzare l'agente di monitoraggio del nodo probe-address (8002) o metrics-address (8003) tramite args aggiuntivi con componenti aggiuntivi EKS o l'installazione di Helm.

L'agente di monitoraggio del nodo include un componente server NVIDIA DCGM (Data Center GPU Manager) () per il monitoraggio di NVIDIA. nv-hostengine GPUs Questo componente funziona solo su nodi che sono tipi di istanze GPU NVIDIA, come mostrato nel grafico Helm dell'nodeAffinityagente. Non è possibile utilizzare un'installazione NVIDIA DCGM esistente con l'agente di monitoraggio dei nodi EKS. Se hai bisogno di questa funzionalità, fornisci un feedback sul GitHub numero #2763 della roadmap EKS.

Quando si implementa l'agente di monitoraggio dei nodi EKS come componente aggiuntivo EKS, è possibile personalizzare l'installazione NVIDIA DCGM con i seguenti valori di configurazione.

Opzione di configurazione Description

dcgmAgent.resources.requests.cpu

Richiesta di risorse CPU per l'agente DCGM.

dcgmAgent.resources.requests.memory

Richiesta di risorse di memoria per l'agente DCGM.

dcgmAgent.resources.limits.cpu

Limite di risorse CPU per l'agente DCGM.

dcgmAgent.resources.limits.memory

Limite di risorse di memoria per l'agente DCGM.

dcgmAgent.tolerations

Tolleranze per la pianificazione dell'agente DCGM sui nodi contaminati.

È possibile utilizzare i seguenti comandi AWS CLI per ottenere informazioni utili sulle versioni e sullo schema del componente aggiuntivo EKS dell'agente di monitoraggio dei nodi EKS.

Scarica l'ultima versione del componente aggiuntivo dell'agente per la tua versione di Kubernetes. Sostituiscila 1.35 con la tua versione di Kubernetes.

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

Scarica lo schema del componente aggiuntivo dell'agente supportato nei componenti aggiuntivi EKS. Sostituiscilo v1.5.1-eksbuild.1 con la tua versione per agenti.

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