ACK utiliza el componente ack-node-problem-detector (ACK NPD) para monitorear el estado de las GPU. Cuando un nodo con GPU presenta una excepción, como un error XID o SXID, ACK NPD detecta automáticamente la GPU defectuosa y colabora con el componente ACK NVIDIA Device Plugin para aislarla. Este proceso mantiene disponibles las GPU en buen estado para atender las cargas de trabajo, lo que minimiza el impacto en el negocio y mejora la confiabilidad y eficiencia del clúster.
ack-node-problem-detector (ACK NPD) es un componente de monitoreo para anomalías en los nodos del clúster. ACK lo adaptó y mejoró a partir del proyecto de código abierto node-problem-detector. Ofrece un amplio conjunto de comprobaciones para anomalías específicas de GPU, con el fin de mejorar la detección de fallas en cargas de trabajo que usan GPU. Cuando el componente detecta una anomalía, genera un Kubernetes Event and Node Condition según el tipo de anomalía.
Notas de uso
-
Si se aísla una tarjeta GPU defectuosa, es posible que las tareas no se programen cuando las GPU restantes del nodo no cubran sus requisitos. Por ejemplo, una tarea que necesita ocho tarjetas GPU no se ejecuta si solo hay siete disponibles. Esto puede dejar recursos de GPU inactivos. El aislamiento automático de GPU no equivale a una reparación automática, por lo que la facturación de la instancia del nodo continúa. Usted debe reparar el nodo. Se recomienda configurar GPU exception alerts para garantizar una remediación oportuna. El aislamiento se levanta automáticamente cuando el estado de la GPU vuelve a la normalidad.
También puede enable or disable automatic GPU isolation según los requisitos de su negocio. Algunas versiones del componente NVIDIA Device Plugin admiten el aislamiento automático de tarjetas GPU defectuosas, pero el procedimiento para deshabilitar esta función varía. Para obtener instrucciones detalladas, consulte How to disable the native GPU isolation capability of the NVIDIA Device Plugin .
El controlador de GPU escribe los XID y SXID de NVIDIA en
/var/log/messageso/var/log/syslogmediante el mecanismo de eventos NVRM. ACK NPD lleva un registro de si cada XID y SXID ya se procesó. Si el nodo se reinicia después de detectar un XID o SXID, ACK NPD considera que el problema se resolvió y no genera un Event ni un Node Condition al respecto. Esto ocurre incluso si el problema subyacente persiste. Por ejemplo, un error XID 79 requiere reemplazar el dispositivo GPU para solucionarse, pero ACK NPD lo marca como resuelto tras reiniciar el nodo.ACK NPD detecta los NVIDIA XID o NVIDIA SXID al revisar el archivo
/var/log/messageso/var/log/syslogdel nodo. Si el registro dmesg se redirige a otro archivo, ACK NPD no detecta los NVIDIA XID ni SXID.A partir de la versión 1.2.29 de ACK NPD, el plugin de detección de fallas de GPU se despliega como un DaemonSet independiente llamado ack-accel-health-monitor.
En algunos casos, una falla de GPU en un nodo impide crear nuevos contenedores de GPU. Esto puede provocar que el propio contenedor de detección de fallas de GPU no inicie, lo cual evita que el proceso de detección se ejecute correctamente.
-
El Pod del plugin de detección de GPU de ACK NPD requiere privilegios elevados, como
privileged=true, para detectar el estado de los dispositivos y componentes de GPU. Consulte los detalles en la siguiente tabla.Permisos RBAC del clúster
Permisos del contenedor
Node: get
Node/Status: update
Events: create
privileged: trueMonta el archivo
/dev/kmsgdel host en modo de solo lectura.Monta el directorio
/usr/libdel host en modo de solo lecturaMonta el directorio
/etcdel host en modo de solo lectura.Monta el directorio
/usr/lib64del host en modo de solo lectura.Monta el directorio
/procdel host en modo de solo lectura.
Aislamiento automático de GPU
A partir de la versión 1.2.35 del componente ACK Node Problem Detector (ACK NPD) y de la versión 0.7.0 del componente ACK NVIDIA Device Plugin, el mecanismo de aislamiento automático de GPU pasó de activarse de forma predeterminada a activarse según la configuración. Para obtener más información, consulte [[Product Change] Announcement on Changes to the Automatic GPU Isolation Feature](t3223577.xdita#).
-
Mecanismo anterior (activación predeterminada)
Cuando el componente ACK Node Problem Detector detecta una falla de GPU, genera un archivo de aislamiento de GPU. Luego, el componente ACK NVIDIA Device Plugin aísla todos los dispositivos GPU listados en ese archivo. De forma predeterminada, el sistema aísla automáticamente las GPU tras detectar ciertas fallas. Puede habilitar o deshabilitar esta función al configurar si se genera el archivo de aislamiento de GPU.
-
Nuevo mecanismo (activación basada en configuración)
Cuando el componente ACK Node Problem Detector detecta una falla de GPU, genera un informe de detección de fallas. El componente ACK NVIDIA Device Plugin decide si aísla la GPU con base en este informe y en los elementos de comprobación de NPD que usted configura como desencadenantes de aislamiento. De forma predeterminada, el componente ACK NVIDIA Device Plugin no tiene elementos de comprobación configurados como desencadenantes, por lo que el aislamiento automático de GPU está deshabilitado. Configure estos elementos de comprobación para especificar qué fallas activan el aislamiento automático de GPU.
Para conocer la aplicabilidad de cada mecanismo, consulte GPU automatic isolation behavior.
Por compatibilidad con versiones anteriores, la nueva versión del componente ACK NPD sigue generando el archivo de aislamiento de GPU en el formato anterior. Sin embargo, la nueva versión del componente ACK NVIDIA Device Plugin ya no lee este archivo. Ahora, el comportamiento de aislamiento depende únicamente de su propia configuración.
Comportamiento del aislamiento automático de GPU
El nuevo mecanismo solo aplica a clústeres de ACK que ejecutan Kubernetes 1.32 o versiones posteriores.
En los clústeres con versiones de Kubernetes anteriores a la 1.32, el aislamiento automático de GPU sigue utilizando el mecanismo anterior.
A continuación se resume el comportamiento del aislamiento automático de GPU según las versiones de los componentes:
|
Versión de ACK NPD |
Versión de ACK NVIDIA Device Plugin |
Comportamiento del aislamiento automático de GPU |
Acciones |
|
Versión de ACK NPD < 1.2.24 |
No aplica |
No es compatible con la detección de anomalías de GPU. |
No aplica |
|
Versión de ACK NPD ≥ 1.2.24 |
Versión de ACK NVIDIA Device Plugin < 0.7.0 |
El aislamiento sigue el legacy mechanism. |
Siga el legacy procedure. |
|
1.2.24 ≤ Versión de ACK NPD < 1.2.35 |
Versión de ACK NVIDIA Device Plugin ≥ 0.7.0 |
El aislamiento automático de GPU no surte efecto , pero las demás funciones operan con normalidad. Las versiones anteriores de ACK NPD no generan informes de detección de anomalías. Por lo tanto, el nuevo ACK NVIDIA Device Plugin no identifica las GPU defectuosas y no ejecuta el aislamiento automático. |
No aplica Actualice ACK NPD a la versión más reciente para usar el nuevo mecanismo. |
|
Versión de ACK NPD ≥ 1.2.35 Esta versión se encuentra en lanzamiento canary. Envíe un ticket para obtener acceso mediante lista de permitidos. |
Versión de ACK NVIDIA Device Plugin ≥ 0.7.0 Esta versión se encuentra en lanzamiento canary. Envíe un ticket para obtener acceso mediante lista de permitidos. |
El aislamiento sigue el new mechanism. |
Siga el new procedure. |
Para consultar las instrucciones sobre cómo comprobar y actualizar los componentes ACK NPD y ACK NVIDIA Device Plugin, consulte Check or upgrade the ACK NPD version y Check or upgrade the NVIDIA Device Plugin version .
Habilitar o deshabilitar el aislamiento automático de GPU
Si deshabilita el aislamiento automático de GPU o si la función no opera correctamente, solo se afecta dicho aislamiento. Cuando ACK NPD detecta una excepción de GPU, sigue activando Node Conditions, Kubernetes Events y alarmas según el ACK NPD check items, pero no aísla automáticamente la GPU defectuosa.
Método nuevo
Cuando esta opción está habilitada, una GPU defectuosa se aísla automáticamente si activa un ACK NPD check item configurado. El aislamiento automático no equivale a una reparación automática. La facturación de la instancia del nodo con la GPU aislada continúa. Usted debe reparar el nodo. Se recomienda configurar GPU exception alarms para atenderlo de inmediato. Si no selecciona ningún elemento de comprobación, el aislamiento automático no se activa.
Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Add-ons .
En la página de gestión de componentes, busque el componente ack-nvidia-device-plugin y haga clic en Configuration en su tarjeta.
-
En el cuadro de diálogo que aparece, habilite o deshabilite el aislamiento automático de GPU.
Habilitar: seleccione la casilla Enable GPU Automatic Isolation y luego elija los NPD check items to trigger GPU automatic isolation.
Deshabilitar: desmarque la casilla Enable GPU Automatic Isolation o no seleccione ningún elemento de comprobación.
Método anterior
Cuando se detecta una excepción de GPU, el componente ack-node-problem-detector genera un archivo de aislamiento de GPU de NVIDIA según la directiva de aislamiento predeterminada. Después, el componente ack-nvidia-device-plugin aísla automáticamente la GPU defectuosa con base en el contenido de ese archivo. Esto evita que nuevas cargas de trabajo se programen en la GPU defectuosa, mientras que las demás GPU sanas del nodo siguen disponibles para atender cargas de trabajo. Sin embargo, el aislamiento automático no realiza una reparación automática. La facturación de la instancia del nodo con la GPU aislada continúa. Usted debe reiniciar o reparar el nodo manualmente. Se recomienda configurar GPU exception alarms para atenderlo de inmediato.
Para ack-node-problem-detector v1.2.30 o posterior, utilice el parámetro
generateNvidiaGpuIsolationFileen la gestión de componentes para controlar el aislamiento automático de GPU defectuosas.Después de actualizar el componente, consulte GPU automatic isolation behavior para determinar cómo habilitar o deshabilitar el aislamiento automático de GPU en la nueva versión.
Habilitar: en el mecanismo anterior, el aislamiento automático de GPU está habilitado de forma predeterminada. Vuelva a habilitarlo al establecer
generateNvidiaGpuIsolationFile(para v1.2.30 o posterior) oEnabledIsolateGPU(para v1.2.24 a v1.2.29) entrue.-
Deshabilitar:
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Components and Add-ons .
-
En la pestaña Logs and Monitoring, busque el componente ack-node-problem-detector y siga los pasos correspondientes a su versión:
v1.2.24 a v1.2.29: haga clic en Upgrade para instalar la versión más reciente.
v1.2.30 y posteriores: haga clic en Configuration.
-
En la página de actualización o configuración del componente, establezca el parámetro
generateNvidiaGpuIsolationFileenfalsey haga clic en OK.NotaSi anteriormente deshabilitó el aislamiento automático de GPU en las versiones 1.2.24 a 1.2.29 al modificar
ack-node-problem-detector-daemonsety establecer el parámetroEnabledIsolateGPUenfalse, esta configuración se conserva automáticamente al actualizar el componente ACK NPD. Si desea volver a habilitar el aislamiento automático de GPU, establezcagenerateNvidiaGpuIsolationFileentrue.
Para revertir un aislamiento de GPU existente, inicie sesión en el nodo donde ocurrió el error XID y elimine el archivo
/etc/nvidia-device-plugin/unhealthyDevices.json. Para evitar que la GPU se aísle de nuevo, deshabilite la función como se describió anteriormente.
Detecciones y corrección
Si se detecta una excepción de GPU, consulte Nvidia Xid Errors para conocer las soluciones. También puede revisar la consola del producto de nube correspondiente (como ECS o Lingjun) para buscar eventos de operación y mantenimiento relacionados, o bien usar una herramienta de autodiagnóstico para solucionar excepciones de hardware.
En la siguiente tabla, Auto-isolate Faulty GPU es el comportamiento de aislamiento predeterminado del mecanismo anterior. En el nuevo mecanismo, las GPU se aíslan según su configuración personalizada. Para más detalles, consulte automatic GPU isolation mechanism.
Otros eventos relacionados
En los escenarios de dedicated GPU, el mecanismo anterior aísla automáticamente las GPU defectuosas, mientras que el nuevo mecanismo requiere que configure los activadores en la administración de componentes. Después del aislamiento, los nuevos pods de aplicación de GPU no se programan en la tarjeta GPU. Para comprobar el aislamiento, revise la cantidad de recursos nvidia.com/gpu que reporta el nodo de Kubernetes. Una vez que la tarjeta GPU se recupera, ACK la libera automáticamente del aislamiento.
|
Motivo del activador |
Contenido del evento |
Descripción |
|
Aislamiento de GPU |
Sí
|
El sistema aísla la tarjeta GPU tras detectar un problema. |
|
Liberación de GPU del aislamiento |
Sí
|
La tarjeta GPU se recupera y ACK la libera del aislamiento. |