Operador de GPU de NVIDIA

Al activar el complemento de cluster Operador de GPU NVIDIA, puede transferir los siguientes pares clave/valor como argumentos.

Argumentos de configuración comunes a todos los complementos del cluster
Clave (API y CLI) Nombre mostrado de clave (consola) Descripción Necesario/Opcional Valor por defecto Valor de ejemplo
affinity afinidad

Grupo de reglas de programación de afinidad.

Formato JSON en texto sin formato o codificado en Base64.

No utilizado por:
  • Operador de GPU de Nvidia
Posibles equivalentes:
  • Detección de funciones de nodo, utilice master.affinity
  • Operador de red NVIDIA, utilice operator.affinity
  • SMB de controlador CSI, utilice contoller.affinity
Opcional nulo nulo
nodeSelectors selectores de nodos

Puede utilizar selectores de nodos y etiquetas de nodos para controlar los nodos de trabajador en los que se ejecutan los pods complementarios.

Para que un pod se ejecute en un nodo, el selector de nodos del pod debe tener la misma clave/valor que la etiqueta del nodo.

Defina nodeSelectors en un par clave/valor que coincida con el selector de nodos del pod y la etiqueta del nodo de trabajador.

Formato JSON en texto sin formato o codificado en Base64.

No utilizado por:
  • Operador de GPU de NVIDIA
  • SMB de controlador CSI
Posibles equivalentes:
  • Detección de funciones de nodo, utilice worker.nodeSelector
  • Operador de red NVIDIA, utilice operator.nodeSelectors
Opcional nulo {"foo":"bar", "foo2": "bar2"}

El pod solo se ejecutará en nodos que tengan la etiqueta foo=bar o foo2=bar2.

numOfReplicas Número de réplicas Número de réplicas del despliegue del complemento.
No utilizado por:
  • Plugin de GPU de AMD
  • Operador de GPU de NVIDIA
  • Operador de red NVIDIA
  • SMB de controlador CSI
Posibles equivalentes:
  • CoreDNS, utilice nodesPerReplica
  • Detección de funciones de nodo, utilice master.replicaCount
Obligatorio 1

Crea una réplica del despliegue del complemento por cluster.

2

Crea dos réplicas del despliegue del complemento por cluster.

rollingUpdate actualización continua

Controla el comportamiento deseado de la actualización continua por maxSurge y maxUnavailable.

Formato JSON en texto sin formato o codificado en Base64.

No utilizado por:
  • Detección de funciones de nodo
  • Operador de red NVIDIA
  • SMB de controlador CSI
Posibles equivalentes:
  • Operador de GPU de NVIDIA, utilice daemonsets.rollingUpdate.maxUnavailable
Opcional nulo nulo
tolerations tolerancias

Puede utilizar contaminantes y tolerancias para controlar los nodos de trabajador en los que se ejecutan los pods de complementos.

Para que un pod se ejecute en un nodo que tenga un tinte, el pod debe tener una tolerancia correspondiente.

Defina tolerations en un par clave/valor que coincida con la tolerancia del pod y el mantenimiento del nodo de trabajador.

Formato JSON en texto sin formato o codificado en Base64.

Posibles equivalentes:
  • Detección de funciones de nodo, utilice master.tolerations y/o worker.tolerations
  • Operador de GPU de NVIDIA, utilice daemonsets.tolerations
  • Operador de red NVIDIA, utilice operator.tolerations
  • SMB de controlador CSI, utilice controller.tolerations
Opcional nulo [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Solo los pods que tienen esta tolerancia se pueden ejecutar en nodos de trabajador que tengan el mantenimiento tolerationKeyFoo=tolerationValBar:noSchedule.

topologySpreadConstraints topologíaSpreadConstraes

Cómo difundir vainas coincidentes entre la topología dada.

Formato JSON en texto sin formato o codificado en Base64.

No utilizado por:
  • Detección de funciones de nodo
  • Operador de GPU de NVIDIA
  • Operador de red NVIDIA
  • SMB de controlador CSI
Opcional nulo nulo
Argumentos de configuración específicos de este complemento de cluster
Clave (API y CLI) Nombre mostrado de clave (consola) Descripción Necesario/Opcional Valor por defecto Valor de ejemplo
skipNodeFeatureDiscoveryDependencyCheck skipNodeFeatureDiscoveryDependencyCheck Omitir comprobación de dependencia de detección de funciones de nodo. Opcional false
disableNvidiaGpuPlugin desactivarNvidiaGpuPlugin Desactive el complemento NvidiaDevicePlugin existente y los recursos relacionados. Opcional false
cdi.enabled Activar interfaz de dispositivo de contenedor Indicador para activar la interfaz de dispositivo de contenedor. Opcional

false para la versión 25.3.x.

true para la versión 25.10.x y posteriores.

cdi.default Habilitar CDI como predeterminado Indicador que permite que el tiempo de ejecución del contenedor utilice CDI como opción predeterminada para realizar la inyección de dispositivos. Opcional

false para la versión 25.3.x.

En desuso en la versión 25.10.x y posteriores.

daemonsets.labels Etiquetas de DaemonSets Etiquetas para todos los DaemonSets del operador de GPU. Texto JSON o mapa JSON codificado en Base64. Opcional null
daemonsets.annotations Anotaciones de DaemonSets Anotaciones para todos los DaemonSets del operador de GPU. Texto JSON o mapa JSON codificado en Base64. Opcional null
daemonsets.tolerations Tolerancias de DaemonSets Tolerancias para todos los DaemonSets de Operador de GPU. Texto JSON o matriz JSON codificada en Base64. Opcional null
daemonsets.rollingUpdate.maxUnavailable DaemonSets MaxNovailable Número máximo de pods no disponibles para la actualización sucesiva en DaemonSets del operador de GPU. Opcional 1
dcgm.enabled Activar DCGM Active NVIDIA DCGM Hostengine como un pod independiente. Opcional false
dcgm.args Argumentos de DCGM Argumentos para la Hostengina DCGM. Texto sin formato JSON o matriz JSON codificada en Base64. Opcional null
dcgm.env Entorno de DCGM Variables de entorno para DCGM Hostengine. Texto sin formato JSON o JSON codificado en Base64. Opcional null
dcgm.containerResources Recursos de DCGM Solicitudes de recursos y límites para el pod de Hostengine de DCGM. Texto sin formato JSON o JSON codificado en Base64. Opcional null
dcgmExporter.enabled Activar exportador de DCGM Active el DaemonSet de exportador de DCGM para las métricas. Opcional true
dcgmExporter.env Env exportador DCGM Variables de entorno para DCGM Exporter. Texto sin formato JSON o JSON codificado en Base64. Opcional null
dcgmExporter.resources Recursos de exportador de DCGM Solicitudes de recursos y límites para el pod de exportador de DCGM. Texto sin formato JSON o JSON codificado en Base64. Opcional null
dcgmExporter.service.internalTrafficPolicy Política de tráfico de servicio de exportador InternalTrafficPolicy para el servicio ClusterIP del exportador de DCGM. Opcional Cluster
dcgmExporter.serviceMonitor.enabled Activar ServiceMonitor Active un ServiceMonitor para el exportador de NVIDIA DCGM. Opcional false
dcgmExporter.serviceMonitor.interval Intervalo de supervisión de servicio Intervalo de desecho para el exportador de NVIDIA DCGM. Admite y, w, d, h, m, s y ms. Opcional 15s
dcgmExporter.serviceMonitor.honorLabels Etiquetas de Honor de ServiceMonitor Preferir etiquetas de métricas de destino en colisiones. Opcional false
dcgmExporter.serviceMonitor.additionalLabels Etiquetas adicionales de ServiceMonitor Etiquetas adicionales para ServiceMonitor. Texto sin formato JSON o mapa JSON codificado en Base64. Opcional null
dcgmExporter.serviceMonitor.relabelings Reetiquetado de ServiceMonitor Volver a etiquetar reglas para ServiceMonitor. Texto sin formato JSON o JSON codificado en Base64. Opcional null
dcgmExporter.config.name Nombre de asignación de configuración de exportador Nombre de ConfigMap que proporciona configuración de métricas personalizadas para el exportador de DCGM. Opcional null
migManager.enabled Activar MIG Manager Activar el despliegue de NVIDIA MIG Manager. Opcional false
migManager.resources Recursos de MIG Manager Solicitudes de recursos y límites para cada pod de MIG Manager. Texto sin formato JSON o JSON codificado en Base64. Opcional null
migManager.env Entorno de gestor de MIG Variables de entorno para MIG Manager. Texto sin formato JSON o JSON codificado en Base64. Opcional null
migManager.config.name Nombre de mapa de configuración de MIG Nombre de ConfigMap con la configuración mig-parted para MIG Manager. Opcional null
migManager.gpuClientsConfig.name Configuración de clientes de GPU MIG Nombre de ConfigMap con la configuración gpu-clients para MIG Manager. Opcional null
devicePlugin.enabled Activar plugin de dispositivo Activar el plugin de dispositivos de Kubernetes de NVIDIA. Opcional true
devicePlugin.args Argumentos del plugin del dispositivo Argumentos para el plugin de dispositivo. Texto sin formato JSON o matriz JSON codificada en Base64. Opcional null
devicePlugin.env Entorno de plugin de dispositivo Variables de entorno para el plugin de dispositivo. Texto sin formato JSON o JSON codificado en Base64. Opcional null
devicePlugin.resources Recursos de plugin de dispositivo Solicitudes de recursos y límites para cada pod de plugin de dispositivo. Texto sin formato JSON o JSON codificado en Base64. Opcional null
devicePlugin.config.name Nombre de ConfigMap de Plugin de Dispositivo Nombre de ConfigMap que proporciona la configuración del plugin de dispositivo, compartido con GFD cuando corresponde. Opcional null
devicePlugin.mps.root Raíz de MPS Ruta raíz de MPS en el host. Opcional /run/nvidia/mps
toolkit.enabled Activar Toolkit Activar el despliegue de NVIDIA Container Toolkit. Opcional true
toolkit.env Entorno de kit de herramientas Variables de entorno para el kit de herramientas de contenedor. Texto sin formato JSON o JSON codificado en Base64. Opcional null
toolkit.resources Recursos de Toolkit Solicitudes de recursos y límites para cada pod de Container Toolkit. Texto sin formato JSON o JSON codificado en Base64. Opcional null
toolkit.installDir Directorio de instalación del kit de herramientas Directorio de instalación de utilidades del kit de herramientas de contenedor en el host. Opcional /usr/local/nvidia
mig.strategy Estrategia MIG Estrategia MIG para GFD y Device Plugin. Los valores válidos son none, single y mixed. Opcional single
operator.logging.level Nivel de log de operador Nivel de registro Zap: debug, info, error o un entero > 0 para el detalle personalizado. Opcional info
operator.resources Recursos del operador Solicitudes de recursos y límites para el pod de operador de GPU. Texto sin formato JSON o JSON codificado en Base64. Opcional null
hostPaths.rootFS RootFS de host Ruta de sistema de archivos raíz del host. La ruta debe poder ser chroot. Opcional /
hostPaths.driverInstallDir Directorio de instalación del controlador Directorio raíz para los archivos del controlador NVIDIA en el host. Opcional /run/nvidia/driver
driver.rdma.enabled Activar RDMA en controlador Active la compatibilidad con RDMA para el controlador NVIDIA. Opcional false
driver.rdma.useHostMofed Usar host MOFED Utilice el Mellanox OFED proporcionado por el host en lugar del Mellanox OFED proporcionado por el contenedor. Opcional false
Consideraciones de cluster grande

En la siguiente tabla, se describen las consideraciones para configurar este complemento de cluster en clusters de gran tamaño.

Nombre del Argumento Número de nodos ordenado de roles Descripción A medida que aumenta el tamaño del cluster Riesgos Recomendación
devicePlugin.* Y

Controla el plugin del dispositivo NVIDIA que expone las GPU a Kubernetes.

El plugin del dispositivo se ejecuta en todos los nodos de GPU y es responsable de:

  • Publicidad nvidia.com/gpu recursos
  • Activación de la programación de GPU

La configuración afecta directamente las decisiones del programador y la colocación de la carga de trabajo de GPU.

Si este argumento está mal configurado:

  • Es posible que las GPU no sean visibles para Kubernetes.
  • Los pod que solicitan GPU pueden permanecer en el estado Pending .
  • La disponibilidad de GPU puede ser inconsistente entre los nodos.
  • Los fallos de programación pueden producirse a escala.
  • Defina devicePlugin.enabled en true .
  • Asigne recursos suficientes mediante devicePlugin.resources .
  • Utilice una configuración consistente en todos los nodos de GPU.
toolkit.* Y

Controla el kit de herramientas de contenedor NVIDIA, que proporciona acceso a GPU dentro de los contenedores.

El kit de herramientas se ejecuta en todos los nodos de GPU y es necesario para que las cargas de trabajo de GPU accedan a las GPU dentro de los contenedores.

Si este argumento no está configurado correctamente, es posible que los pods se programen correctamente pero:

  • Es posible que las cargas de trabajo de GPU no se inicien.
  • Es posible que los contenedores no puedan acceder a las GPU.
  • Los fallos de tiempo de ejecución pueden ser difíciles de diagnosticar.
  • Defina toolkit.enabled en true .
  • Asegúrese de que el kit de herramientas sea compatible con el tiempo de ejecución del contenedor.
  • Asigne recursos suficientes mediante toolkit.resources .
daemonsets.tolerations Y

Controla si los componentes del operador de GPU se pueden ejecutar en nodos de GPU.

Los nodos de GPU a menudo están contaminados. Todos los DaemonSets de Operador de GPU deben tolerar que esos contaminantes se ejecuten en los nodos de GPU.

Si faltan las tolerancias necesarias:

  • Los componentes del operador de GPU no se pueden ejecutar en nodos de GPU.
  • Es posible que las GPU no se puedan utilizar en todo el cluster.
  • Configure tolerancias que coincidan con los contaminantes aplicados a los nodos de GPU.
  • Valide las tolerancias para todos los pools de nodos de GPU.
daemonsets.rollingUpdate.maxUnavailable Y

Controla cuántos nodos se actualizan simultáneamente.

El valor afecta al número de nodos de GPU que no están disponibles temporalmente durante una actualización.

En un cluster grande, una actualización puede afectar a muchos nodos.

Si el valor es demasiado alto:

  • Es posible que demasiados nodos de GPU no estén disponibles al mismo tiempo.
  • Es posible que se interrumpan las cargas de trabajo de GPU.

Si el valor es demasiado bajo, la implementación de la actualización en miles de nodos puede tardar mucho tiempo.

Usa un valor equilibrado que no sea demasiado agresivo. Defina el valor en función del tamaño del cluster y la cantidad de interrupciones que las cargas de trabajo pueden tolerar.

operator.resources Y

Define los recursos de CPU y memoria para el controlador del operador de GPU.

El operador gestiona componentes que incluyen:

  • El plugin del dispositivo
  • El kit de herramientas de contenedor de NVIDIA
  • GPU de varias instancias
  • Gestor de GPU del centro de datos NVIDIA

A medida que aumenta el número de nodos, el operador gestiona más objetos y requiere más recursos.

Si los recursos tienen un tamaño insuficiente:

  • La reconciliación puede ser lenta.
  • El operador puede volverse inestable.
  • Es posible que los cambios de configuración y las implementaciones de componentes se retrasen.
  • Aumentar los recursos de CPU y memoria para clusters grandes.
  • Supervise los logs del operador y el uso de la memoria.
cdi.enabled Y

Activa la interfaz de dispositivo de contenedor.

  • Simplifica la inyección de GPU en contenedores.
  • Mejora la coherencia del tiempo de ejecución entre los nodos.

Si la interfaz de dispositivo de contenedor está desactivada, la integración de tiempo de ejecución anterior podría:

  • Causar inconsistencias.
  • Haga que la solución de problemas sea más compleja.
  • Defina cdi.enabled en true .
  • Utilice los valores por defecto a menos que tenga un requisito específico.
mig.strategy Y

Controla la partición de GPU de varias instancias.

La partición de GPU de varias instancias permite a las cargas de trabajo compartir GPU y afecta al comportamiento del programador.

Si este argumento está mal configurado:

  • Los recursos de GPU podrían fragmentarse.
  • Es posible que los pods no encuentren una partición de GPU coincidente.
  • El comportamiento puede ser inconsistente entre los nodos.
  • Utilice una estrategia de GPU de varias instancias consistente en todo el cluster.
  • Evite configuraciones mixtas a menos que sean necesarias.
dcgmExporter.* Y

Controla la recopilación de métricas de GPU.

El exportador genera métricas de GPU para cada nodo, aumentando la carga de Prometheus y el tráfico de red a medida que aumenta el número de nodos de GPU.

Si este argumento está mal configurado:

  • El desecho de métricas con demasiada frecuencia puede causar una sobrecarga alta.
  • El desecho de métricas con poca frecuencia puede proporcionar una visibilidad insuficiente.
  • Ajuste serviceMonitor.interval .
  • Asigne recursos suficientes mediante dcgmExporter.resources .
dcgm.* Y

Controla el motor host de NVIDIA Data Center GPU Manager.

El componente opcional realiza un seguimiento del estado de la GPU en todo el cluster.

  • Si el componente está desactivado, la visibilidad del estado de la GPU es limitada.
  • Si el componente está activado con recursos insuficientes, puede volverse inestable.
  • Active el componente solo cuando sea necesario.
  • Asignar recursos suficientes.
skipNodeFeatureDiscoveryDependencyCheck N

Controla la comprobación de dependencia para la detección de funciones de nodo.

La comprobación de dependencia afecta el etiquetado de nodos y la detección de GPU.

Si falta la detección de funciones de nodo:

  • Es posible que los nodos de GPU no estén etiquetados.
  • Es posible que el operador no detecte nodos de GPU.
  • Utilice este argumento sólo cuando la detección de funciones de nodo ya esté instalada.
  • Asegúrese de que las etiquetas de nodo necesarias estén presentes y sean correctas.
disableNvidiaGpuPlugin Y

Desactiva el plugin de dispositivo GPU NVIDIA independiente.

La desactivación del plugin independiente evita que se ejecuten plugins de dispositivos de GPU duplicados en el cluster.

Si este argumento está configurado incorrectamente:

  • Es posible que se ejecuten varios plugins de dispositivos de GPU.
  • Los plugins pueden entrar en conflicto.
  • Es posible que los recursos de GPU se informen incorrectamente.

Desactive el plugin de dispositivo de GPU NVIDIA independiente cuando utilice el operador de GPU NVIDIA.