Plugin de GPU de NVIDIA
Al activar el complemento de clúster NVIDIA GPU Plugin, puede transferir los siguientes pares clave/valor como argumentos.
Tenga en cuenta que, para asegurarse de que las cargas de trabajo que se ejecutan en nodos de trabajador de GPU NVIDIA no se interrumpan de forma inesperada, le recomendamos que seleccione la versión del complemento de plugin de GPU NVIDIA que desea desplegar, en lugar de especificar que desea que Oracle actualice el complemento automáticamente.
| 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 con 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 de complementos. 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 con Base64. No utilizado por:
Posibles equivalentes:
|
Opcional | nulo | {"foo":"bar", "foo2": "bar2"}El pod solo se ejecutará en nodos que tengan la etiqueta |
numOfReplicas |
numOfReplicas | 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 |
rollingUpdate |
Controla el comportamiento deseado de la actualización sucesiva mediante maxSurge y maxUnavailable. Formato JSON en texto sin formato o codificado con 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 con 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 |
topologySpreadConstraints |
Cómo difundir vainas coincidentes entre la topología dada. Formato JSON en texto sin formato o codificado con 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 |
|---|---|---|---|---|---|
deviceIdStrategy
|
Estrategia de ID de dispositivo |
Estrategia que se debe utilizar para transferir ID de dispositivo al tiempo de ejecución subyacente. Uno de los siguientes:
|
Opcional |
uuid
|
|
deviceListStrategy
|
Estrategia de lista de dispositivos |
Estrategia que se debe utilizar para transferir la lista de dispositivos al tiempo de ejecución subyacente. Valores soportados:
Se admiten varios valores en una lista separada por comas. |
Opcional |
envvar
|
|
driverRoot
|
Raíz del controlador | La ruta raíz para la instalación del controlador NVIDIA. | Opcional |
/
|
|
failOnInitError
|
FailOnInitError |
Si se debe fallar el plugin si se encuentra un error durante la inicialización. Cuando se define en |
Opcional |
true
|
|
migStrategy
|
Estrategia MIG |
Qué estrategia utilizar para exponer los dispositivos MIG (GPU de varias instancias) en las GPU que lo admiten. Uno de los siguientes:
|
Opcional |
none
|
|
nvidia-gpu-device-plugin.ContainerResources
|
Recursos de contenedor de plugin de dispositivo-gpu-nvidia |
Puede especificar las cantidades de recursos que solicitan los contenedores complementarios y establecer límites de uso de recursos que los contenedores complementarios no pueden superar. Formato JSON en texto sin formato o codificado con Base64. |
Opcional | nulo |
{"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}
Cree contenedores complementarios que soliciten 100 millicores de CPU y 100 mebibytes de memoria. Limite los contenedores complementarios a 500 millicores de CPU y 200 mebibytes de memoria. |
passDeviceSpecs
|
Pasar especificaciones de dispositivo | Si se deben transferir las rutas y los permisos de nodo de dispositivo deseados para cualquier dispositivo NVIDIA que se asigne al contenedor. | Opcional |
false
|
|
useConfigFile
|
Usar archivo de configuración desde ConfigMap |
Si se debe utilizar un archivo de configuración para configurar el plugin de dispositivo Nvidia para Kubernetes. El archivo de configuración se deriva de ConfigMap. Si se define en El daemonset |
Opcional |
false
|
Ejemplo de nvidia-device-plugin-config ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: nvidia-device-plugin-config
namespace: kube-system
data:
config.yaml: |
version: v1
flags:
migStrategy: "none"
failOnInitError: true
nvidiaDriverRoot: "/"
plugin:
passDeviceSpecs: false
deviceListStrategy: envvar
deviceIDStrategy: uuidEn 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 |
|---|---|---|---|---|---|
nvidia-gpu-device-plugin.ContainerResources
|
Y |
Define las solicitudes de CPU y memoria y los límites para los pods del plugin de GPU NVIDIA. |
El plugin se ejecuta en cada nodo de GPU como DaemonSet, por lo que el uso total de recursos aumenta con el número de nodos de GPU. Aumentan los nodos de GPU adicionales:
|
Si los recursos tienen un tamaño insuficiente:
|
|
affinity / nodeSelectors / tolerations
|
Y |
Controle los nodos en los que se ejecutan los pods del plugin de GPU NVIDIA. |
|
Si estos argumentos están mal configurados:
|
|
topologySpreadConstraints
|
N |
Controla cómo los pods del plugin de GPU NVIDIA se distribuyen entre nodos y dominios de disponibilidad. |
Las restricciones de distribución de topología ayudan a mantener una distribución uniforme en clusters y clusters de varios dominios con pools de nodos de GPU heterogéneos. |
Si no se configuran las restricciones de distribución de topología:
|
Utilice restricciones de distribución de topología para clusters de GPU grandes que abarquen varios dominios de disponibilidad o que contengan pools de nodos de GPU heterogéneos. |
numOfReplicas
|
N |
Controla el número de réplicas de los componentes que soportan la ampliación basada en réplicas. |
El plugin de GPU NVIDIA se ejecuta como DaemonSet con un pod en cada nodo de GPU elegible. No se escala cambiando el recuento de réplicas. |
No aplicable | No aplicable |
rollingUpdate
|
N |
Controla cómo se actualizan los pods del plugin de GPU de NVIDIA. |
En clusters grandes, una actualización puede afectar a muchos nodos de GPU y reducir temporalmente la disponibilidad de GPU. |
|
|
failOnInitError
|
Y |
Controla el comportamiento del plugin cuando falla la inicialización. |
Es más probable que se produzcan fallos de inicialización en algún lugar del cluster a medida que aumenta el número de nodos de GPU. |
|
|
deviceListStrategy / deviceIdStrategy
|
N |
Controle cómo se identifican y exponen los dispositivos GPU a los contenedores. |
Las estrategias seleccionadas afectan a la integración de tiempo de ejecución de contenedores y a la eficiencia de asignación de GPU en los nodos de GPU. |
Si se configuran incorrectamente, es posible que los dispositivos de GPU no se identifiquen ni se inyecten de manera coherente en los contenedores. Esto puede provocar fallos de carga de trabajo de GPU, asignaciones de dispositivos incorrectas o problemas de programación en los nodos de GPU. |
Configure deviceListStrategy y deviceIdStrategy para que coincidan con el entorno de tiempo de ejecución y GPU del contenedor y utilice la estrategia de identificación de dispositivos uuid por defecto, a menos que un caso de uso validado requiera lo contrario. |
migStrategy
|
N |
Controla cómo los recursos de GPU de múltiples instancias de NVIDIA están expuestos a Kubernetes. |
La GPU de varias instancias puede mejorar el uso compartido y la utilización de la GPU a medida que aumenta el número de cargas de trabajo de GPU. |
Si este argumento está mal configurado:
|
Utilice la GPU de varias instancias solo cuando se necesite la partición de GPU. |