Operador de GPU de NVIDIA
Al activar el complemento de cluster Operador de GPU NVIDIA, puede transferir los siguientes pares clave/valor como argumentos.
| 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:
Posibles equivalentes:
|
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 Formato JSON en texto sin formato o codificado en Base64. No utilizado por:
Posibles equivalentes:
|
Opcional | nulo | {"foo":"bar", "foo2": "bar2"}El pod solo se ejecutará en nodos que tengan la etiqueta |
numOfReplicas |
Número de réplicas | Número de réplicas del despliegue del complemento. No utilizado por:
Posibles equivalentes:
|
Obligatorio | 1Crea una réplica del despliegue del complemento por cluster. |
2Crea 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:
Posibles equivalentes:
|
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 Formato JSON en texto sin formato o codificado en Base64. Posibles equivalentes:
|
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 |
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:
|
Opcional | nulo | nulo |
| 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 |
|
|
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 |
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 |
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:
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:
|
|
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:
|
|
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:
|
|
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:
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:
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:
|
|
cdi.enabled
|
Y |
Activa la interfaz de dispositivo de contenedor. |
|
Si la interfaz de dispositivo de contenedor está desactivada, la integración de tiempo de ejecución anterior podría:
|
|
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:
|
|
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:
|
|
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. |
|
|
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:
|
|
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:
|
Desactive el plugin de dispositivo de GPU NVIDIA independiente cuando utilice el operador de GPU NVIDIA. |