Ayude a mejorar esta página
Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.
El estado del nodo hace referencia a su funcionamiento operativo y a su capacidad para ejecutar cargas de trabajo de manera eficiente. Un nodo en buen estado mantiene la conectividad esperada, cuenta con recursos suficientes y puede ejecutar los pods correctamente sin interrupciones. Para obtener información sobre cómo obtener detalles sobre los nodos, consulte Cómo ver el estado de los nodos y Recuperación de los registros de nodos de un nodo administrado mediante kubectl y S3.
Para ayudar a mantener los nodos en buen estado, Amazon EKS ofrece el agente de supervisión de nodos y la reparación automática de nodos.
Agente de supervisión de nodos
El agente de supervisión de nodos lee automáticamente los registros de los nodos para detectar ciertos problemas de estado. Analiza los registros de los nodos para detectar fallas y muestra diversa información de estado sobre los nodos de trabajo. Se aplica una NodeCondition
específica a los nodos de trabajo para cada categoría de problemas detectados, como los relacionados con almacenamiento o redes. Las descripciones de los problemas de estado detectados están disponibles en el panel de observabilidad. Para obtener más información, consulte Problemas de estado de los nodos.
El agente de supervisión de nodos se incluye como una capacidad para todos los clústeres del modo automático de Amazon EKS. Para otros tipos de clústeres, puede agregar el agente de supervisión como complemento de Amazon EKS. Para obtener más información, consulte Cómo crear un complemento de Amazon EKS.
Reparación automática de nodos
La reparación automática de nodos es una característica adicional que supervisa continuamente el estado de los nodos, reacciona automáticamente a los problemas detectados y reemplaza los nodos cuando es posible. Esto contribuye a mantener la disponibilidad general del clúster con una intervención manual mínima. Si se produce un error en una comprobación de estado, el nodo se acordona automáticamente para que no se programen nuevos pods en este.
Por sí sola, la reparación automática de nodos puede reaccionar ante la condición Ready
del kubelet
y cualquier objeto de nodo que sea eliminado manualmente. Cuando se combina con el agente de supervisión de nodos, la reparación automática de nodos puede reaccionar ante más condiciones que de otro modo no se detectarían. Algunas de estas condiciones adicionales son KernelReady
, NetworkingReady
y StorageReady
.
Esta recuperación automatizada de nodos aborda automáticamente problemas intermitentes de los nodos, como fallos al unirse al clúster, kubelets no receptivos y un aumento en los errores de aceleradores (dispositivos). La confiabilidad mejorada ayuda a reducir el tiempo de inactividad de las aplicaciones y a mejorar las operaciones del clúster. La reparación automática de nodos no puede solucionar ciertos problemas que se reportan, como DiskPressure
, MemoryPressure
y PIDPressure
. Amazon EKS espera 10 minutos antes de actuar sobre las NodeConditions
AcceleratedHardwareReady
y 30 minutos para todas las demás condiciones.
Los grupos de nodos administrados también desactivarán automáticamente las reparaciones de nodos por motivos de seguridad en dos circunstancias. Cualquier operación de reparación que ya esté en curso continuará en ambas circunstancias.
-
Si el controlador de recuperación de aplicaciones (ARC) ha provocado un cambio de zona en el clúster, se detendrán todas las operaciones de reparación posteriores.
-
Si el grupo de nodos tiene más de cinco nodos y más del 20 % de los nodos del grupo de nodos están en mal estado, se detendrán las operaciones de reparación.
Puede habilitar la reparación automática de nodos al crear o editar un grupo de nodos administrado.
-
Cuando utilice la consola Amazon EKS, active la casilla de verificación Habilitar la reparación automática de nodos para el grupo de nodos administrado. Para obtener más información, consulte Creación de un grupo de nodos administrados para un clúster.
-
Al utilizar AWS CLI, agregue
--node-repair-config enabled=true
al comandoeks create nodegroup
oeks update-nodegroup-config
. -
Para una
ClusterConfig
deeksctl
que usa un grupo de nodos administrado con reparación automática de nodos, consulte 44-node-repair.yamlen GitHub.
Problemas de estado de los nodos
En las siguientes tablas se describen los problemas de estado de los nodos que el agente de supervisión de nodos puede detectar. Existen dos tipos de problemas:
-
Condición: un problema terminal que requiere una acción correctiva, como la sustitución o el reinicio de la instancia. Cuando la reparación automática está habilitada, Amazon EKS realizará una acción de reparación, ya sea la sustitución o el reinicio del nodo. Para obtener más información, consulte Condiciones de nodos.
-
Evento: un problema temporal o una configuración de nodo subóptima. No se realizará ninguna acción de reparación automática. Para obtener más información, consulte Eventos de nodos.
Problemas de estado de los nodos del núcleo
Nombre | Gravedad | Descripción |
---|---|---|
ForkFailedOutOfPID |
Condición |
Una llamada a fork o exec ha fallado debido a que el sistema se ha quedado sin identificadores de proceso o memoria, lo cual podría ser causado por procesos zombis o agotamiento de la memoria física. |
AppBlocked |
Evento |
La tarea ha estado bloqueada durante un largo período para su programación, generalmente debido a estar bloqueada en la entrada o salida. |
AppCrash |
Evento |
Se colapsó una aplicación del nodo. |
ApproachingKernelPidMax |
Evento |
La cantidad de procesos está próxima a alcanzar la cantidad máxima de identificadores de proceso (PID) disponibles según la configuración actual de kernel.pid_max. Una vez alcanzado este límite, no se podrán inicializar más procesos. |
ApproachingMaxOpenFiles |
Evento |
La cantidad de archivos abiertos está próxima a la cantidad máxima de archivos abiertos posibles dada la configuración actual del núcleo. Una vez alcanzado este límite, no se podrán abrir nuevos archivos. |
ConntrackExceededKernel |
Evento |
El seguimiento de conexiones excedió el límite máximo del núcleo, lo que impidió el establecimiento de nuevas conexiones y podría ocasionar la pérdida de paquetes. |
ExcessiveZombieProcesses |
Evento |
Los procesos que no pueden ser completamente recuperados se acumulan en grandes cantidades, lo que indica problemas en la aplicación y podría llevar a alcanzar los límites de procesos del sistema. |
KernelBug |
Evento |
Se detectó un error en el núcleo y fue reportado por el propio núcleo de Linux, aunque esto a veces puede ser causado por nodos con un alto uso de CPU o memoria que provocan retrasos en el procesamiento de eventos. |
LargeEnvironment |
Evento |
La cantidad de variables de entorno de este proceso es mayor de lo esperado, lo que se podría deber a la existencia de muchos servicios con enableServiceLinks configurado en verdadero, lo que podría provocar problemas de rendimiento. |
RapidCron |
Evento |
Un trabajo cron se ejecuta con una frecuencia inferior a cinco minutos en este nodo, lo que podría afectar el rendimiento si el trabajo consume recursos significativos. |
SoftLockup |
Evento |
La CPU se detuvo durante un periodo determinado. |
Problemas de estado de los nodos de red
Nombre | Gravedad | Descripción |
---|---|---|
InterfaceNotRunning |
Condición |
Esta interfaz parece no estar en ejecución o existen problemas de red. |
InterfaceNotUp |
Condición |
Parece que esta interfaz no está activa o que existen problemas de red. |
IPAMDNotReady |
Condición |
IPAMD no se puede conectar al servidor de la API. |
IPAMDNotRunning |
Condición |
El proceso |
MissingLoopbackInterface |
Condición |
La interfaz de bucle de retorno falta en esta instancia, lo que provoca fallos en los servicios que dependen de la conectividad local. |
BandwidthInExceeded |
Evento |
Los paquetes se han puesto en cola o se han descartado porque el ancho de banda agregado de entrada ha superado el máximo para la instancia. |
BandwidthOutExceeded |
Evento |
Los paquetes se han puesto en cola o se han descartado porque el ancho de banda agregado de salida ha superado el máximo para la instancia. |
ConntrackExceeded |
Evento |
El seguimiento de conexiones excedió el límite máximo de la instancia, lo que impidió el establecimiento de nuevas conexiones, lo que podría ocasionar la pérdida de paquetes. |
IPAMDNoIPs |
Evento |
IPAM-D se quedó sin direcciones IP. |
IPAMDRepeatedlyRestart |
Evento |
Se han producido múltiples reinicios en el servicio IPAMD. |
KubeProxyNotReady |
Evento |
Kube-proxy no pudo ver ni enumerar los recursos. |
LinkLocalExceeded |
Evento |
Se descartaron paquetes porque los paquetes por segundo (PPS) del tráfico hacia los servicios proxy locales excedieron el máximo de la interfaz de red. |
MissingDefaultRoutes |
Evento |
Faltan reglas de ruta predeterminadas. |
MissingIPRules, MissingIPRoutes |
Evento |
Faltan reglas de ruta para las siguientes IP de pods en la tabla de enrutamiento. |
NetworkSysctl |
Evento |
La configuración de sysctl de red de este nodo es potencialmente incorrecta. |
PortConflict |
Evento |
Si un pod utiliza hostPort, puede escribir reglas de iptables que sobrescriban los puertos ya asignados del host, lo que podría impedir el acceso del servidor de la API al |
PPSExceeded |
Evento |
Los paquetes han sido puestos en cola o descartados porque los paquetes por segundo (PPS) bidireccionales excedieron el máximo permitido para la instancia. |
UnexpectedRejectRule |
Evento |
Se encontró una regla inesperada de |
Problemas de estado de los nodos de Neuron
Nombre | Gravedad | Descripción |
---|---|---|
NeuronDMAError |
Condición |
Un motor de DMA encontró un error no recuperable. |
NeuronHBMUncorrectableError |
Condición |
Un HBM encontró un error no corregible y generó resultados incorrectos. |
NeuronNCUncorrectableError |
Condición |
Se detectó un error de memoria incorregible en Neuron Core. |
NeuronSRAMUncorrectableError |
Condición |
Una SRAM integrada en el chip encontró un error de paridad y generó resultados incorrectos. |
Problemas de estado de los nodos de NVIDIA
Si la reparación automática está habilitada, las acciones de reparación que aparecen en la lista comenzarán 10 minutos tras la detección del problema. Para obtener más información sobre los errores de XID, consulte Errores de Xid
Nombre | Gravedad | Descripción | Acción de reparación |
---|---|---|---|
NvidiaDoubleBitError |
Condición |
El controlador de la GPU produjo un error de doble bit. |
Reemplazar |
NvidiaNVLinkError |
Condición |
El controlador de la GPU notificó errores de NVLink. |
Reemplazar |
NvidiaXID13Error |
Condición |
Existe una excepción del motor gráfico. |
Reboot |
NvidiaXID31Error |
Condición |
Se sospecha que hay problemas de hardware. |
Reboot |
NvidiaXID48Error |
Condición |
El controlador notifica errores ECC de doble bit. |
Reboot |
NvidiaXID63Error |
Condición |
Hay un retiro de página o reasignación de fila. |
Reboot |
NvidiaXID64Error |
Condición |
Se producen errores al intentar retirar una página o reasignar un nodo. |
Reboot |
NvidiaXID74Error |
Condición |
Existe un problema con una conexión de la GPU a otra GPU o NVSwitch a través de NVLink. Esto puede indicar un error de hardware con el propio enlace o bien un problema con el dispositivo en el extremo remoto del enlace. |
Reemplazar |
NvidiaXID79Error |
Condición |
El controlador de la GPU intentó acceder a la GPU a través de su conexión PCI Express y descubrió que no se puede acceder a la GPU. |
Reemplazar |
NvidiaXID94Error |
Condición |
Existen errores de memoria ECC. |
Reboot |
NvidiaXID95Error |
Condición |
Existen errores de memoria ECC. |
Reboot |
NvidiaXID119Error |
Condición |
Se agotó el tiempo de espera del GSP al responder a las solicitudes de RPC de otros bits del controlador. |
Reemplazar |
NvidiaXID120Error |
Condición |
El GSP respondió a tiempo, pero con un error. |
Reemplazar |
NvidiaXID121Error |
Condición |
C2C es una interconexión entre chips. Permite compartir memoria entre CPU, aceleradores, etc. |
Reemplazar |
NvidiaXID140Error |
Condición |
Es posible que el controlador de la GPU haya observado errores que no se pueden corregir en la memoria de la GPU, de manera que interrumpió la capacidad del controlador para marcar las páginas para su desactivación dinámica o reasignación de filas. |
Reemplazar |
NvidiaPageRetirement |
Evento |
El controlador de la GPU ha marcado una página de memoria para su retirada. Esto puede ocurrir si hay un único error de doble bit o si se encuentran dos errores de bit único en la misma dirección. |
Ninguno |
NvidiaXID[Code]Warning |
Evento |
Cualquier ocurrencia de XID distinta a las definidas en esta lista da como resultado este evento. |
Ninguno |
Problemas de estado de los nodos en tiempo de ejecución
Nombre | Gravedad | Descripción |
---|---|---|
PodStuckTerminating |
Condición |
Un pod está o estuvo atascado al intentar terminar durante un tiempo excesivo, lo que puede ser causado por errores en CRI que impiden la progresión del estado del pod. |
%sRepeatedRestart |
Evento |
Reinicios de cualquier servicio systemd en el nodo (formateados con el nombre de la unidad en mayúsculas y minúsculas). |
ContainerRuntimeFailed |
Evento |
El tiempo de ejecución del contenedor no pudo crear un contenedor, lo que probablemente está relacionado con cualquier problema reportado si ocurre de manera repetida. |
KubeletFailed |
Evento |
El kubelet entró en un estado de fallo. |
LivenessProbeFailures |
Evento |
Se detectó una falla en la sonda de actividad, lo que podría indicar problemas en el código de la aplicación o valores de tiempo de espera insuficientes si ocurre de manera repetida. |
ReadinessProbeFailures |
Evento |
Se detectó una falla en la sonda de preparación, lo que podría indicar problemas en el código de la aplicación o valores de tiempo de espera insuficientes si ocurre de manera repetida. |
ServiceFailedToStart |
Evento |
No se pudo iniciar una unidad de systemd. |
Problemas de estado en el nodo de almacenamiento
Nombre | Gravedad | Descripción |
---|---|---|
XFSSmallAverageClusterSize |
Condición |
El tamaño promedio del clúster XFS es pequeño, lo que indica una fragmentación excesiva del espacio libre que puede impedir la creación de archivos a pesar de que haya nodos de indexación o espacio libre disponible. |
EtcHostsMountFailed |
Evento |
El montaje del |
IODelays |
Evento |
Se detectó un retraso en la entrada o salida de un proceso, lo que podría indicar un aprovisionamiento insuficiente de recursos de entrada y salida si es excesivo. |
KubeletDiskUsageSlow |
Evento |
Kubelet informa de un uso lento del disco al intentar acceder al sistema de archivos, lo que podría indicar insuficiencia de entrada y salida del disco o problemas con el sistema de archivos. |