

 **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
<a name="node-health-nma"></a>

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, vedere[Ripara automaticamente i nodi nei cluster EKS](node-repair.md).

Il codice sorgente dell'agente di monitoraggio dei nodi EKS è pubblicato GitHub nel repository [aws/eks-node-monitoring-agent](https://github.com/aws/eks-node-monitoring-agent).

## Problemi di integrità dei nodi
<a name="node-health-issues"></a>

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](learn-status-conditions.md#status-node-conditions).
+ 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](learn-status-conditions.md#status-node-events).

## AcceleratedHardware problemi di salute dei nodi
<a name="node-health-AcceleratedHardware"></a>

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.


| Nome | Gravità | Description | Azione di riparazione | 
| --- | --- | --- | --- | 
| DCGMDiagnosticFailure | 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 | 
| DCGMFieldError[Codice] | Event | DCGM ha rilevato il degrado della GPU tramite un identificatore di campo. | Nessuno | 
| DCGMHealthCode[Codice] | Event | Un controllo sanitario DCGM non è riuscito in modo non fatale. | Nessuno | 
| DCGMHealthCode[Codice] | Condizione | Un controllo sanitario DCGM non è riuscito in modo fatale. | Nessuno | 
| NeuronDMAError | Condizione | Un motore DMA ha rilevato un errore irreversibile. | Replace (Sostituisci) | 
| NeuronHBMUncorrectableError | Condizione | Un HBM ha riscontrato un errore non correggibile e ha prodotto risultati errati. | Replace (Sostituisci) | 
| NeuronNCUncorrectableError | Condizione | È stato rilevato un errore di memoria non correggibile di Neuron Core. | Replace (Sostituisci) | 
| NeuronSRAMUncorrectableError | Condizione | Una SRAM su chip ha rilevato un errore di parità e ha prodotto risultati errati. | Replace (Sostituisci) | 
| NvidiaDeviceCountMismatch | Event | Il numero di GPU 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) | 
| Errore NVIDIAN CCL | Event | Si è verificato un errore segfault nella libreria NVIDIA Collective Communications (). `libnccl` | Nessuno | 
| NvidiaNVLinkError | Condizione | Gli errori NVLink sono stati segnalati dal driver della GPU. | Replace (Sostituisci) | 
| NvidiaPCIeError | Event | I replay PCIe sono stati attivati per il ripristino dagli 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 energetico delle GPU ha superato le soglie consentite. | Nessuno | 
| NvidiaThermalError | Event | Lo stato termico delle GPU ha superato le soglie consentite. | 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
<a name="nvidia-xid-codes"></a>

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:
+  **Well-known Codici XID**: 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 indagare sugli errori XID sconosciuti, controllate i log del kernel con. `dmesg | grep -i nvrm`

Per ulteriori informazioni sugli errori XID, consulta [Errori Xid](https://docs.nvidia.com/deploy/xid-errors/index.html#topic_5_1) nella *Documentazione di implementazione e gestione delle GPU NVIDIA*. Per ulteriori informazioni sui singoli messaggi XID, consulta [Comprensione dei messaggi Xid](https://docs.nvidia.com/deploy/gpu-debug-guidelines/index.html#understanding-xid-messages) 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 | Errore NVLink: si è verificato un errore nell'interconnessione NVLink ad alta velocità tra le GPU. | Replace (Sostituisci) | 
| 79 | La GPU è caduta dal bus: la GPU non è più accessibile tramite PCIe, 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'interconnessione chip-chip (utilizzata nelle GPU multi-die). | 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 XID-related gli eventi sul tuo cluster, esegui uno dei seguenti comandi.

```
kubectl get events | grep -i "NvidiaXID"
```

## ContainerRuntime problemi di salute dei nodi
<a name="node-health-ContainerRuntime"></a>

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


| Nome | 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
<a name="node-health-Kernel"></a>

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


| Nome | 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 PID disponibili per l'`kernel.pid_max`impostazione 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 per via dell’esaurimento degli ID di processo o della memoria del sistema, il che può essere causato da processi zombie 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
<a name="node-health-Networking"></a>

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


| Nome | 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 | 
| EFAErrorMetric | Event | Le metriche dei driver EFA mostrano che esiste un'interfaccia con un peggioramento delle prestazioni. | Nessuno | 
| IPAMDInconsistentState | Event | Lo stato del checkpoint IPAMD su disco non riflette gli IP nel runtime del contenitore. | Nessuno | 
| IPAMDNoIPs | Event | IPAMD ha esaurito gli indirizzi IP. | Nessuno | 
| IPAMDNotReady | Condizione | IPAMD non riesce a connettersi al server API. | Replace (Sostituisci) | 
| IPAMDNotRunning | Condizione | Il processo CNI di Amazon VPC non è stato trovato in esecuzione. | Replace (Sostituisci) | 
| IPAMDRepeatedlyRestart | 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 | 
| Routes IP mancanti | Event | Mancano percorsi per gli IP dei Pod. | Nessuno | 
| Regole IP mancanti | Event | Mancano delle regole per gli IP dei Pod. | 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
<a name="node-health-Storage"></a>

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


| Nome | 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
<a name="node-monitoring-agent-configure"></a>

L'agente di monitoraggio dei nodi EKS viene distribuito come DaemonSet. Quando lo si distribuisce come componente aggiuntivo EKS, è possibile 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.](https://github.com/aws/eks-node-monitoring-agent/blob/main/charts/eks-node-monitoring-agent/values.yaml)


| 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 delle GPU NVIDIA. `nv-hostengine` [Questo componente funziona solo su nodi che sono tipi di istanze GPU NVIDIA, come mostrato nel grafico Helm dell'agente. `nodeAffinity`](https://github.com/aws/eks-node-monitoring-agent/blob/main/charts/eks-node-monitoring-agent/values.yaml) 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](https://github.com/aws/containers-roadmap/issues/2763) \#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
```