Plugin de GPU de AMD

Al activar el complemento de cluster de AMD 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 AMD no se interrumpan inesperadamente, le recomendamos que elija la versión del complemento de plugin de GPU AMD que desplegar, en lugar de especificar que desea que Oracle actualice el complemento automáticamente.

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 con 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 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 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 con 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 numOfReplicas 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 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:
  • 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 con 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 topologySpreadConstraints

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

Formato JSON en texto sin formato o codificado con 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
amd-gpu-device-plugin.ContainerResources Recursos de contenedor amd-gpu-device-plugin

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.

pulse Activar comprobaciones de estado

Intervalo de tiempo en segundos para que el plugin actualice el kubelet con el estado del dispositivo.

Defina esta opción en 0 para desactivar la comprobación del sistema.

Opcional 0
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
amd-gpu-device-plugin.ContainerResources Y

Define las solicitudes de CPU y memoria y los límites para los contenedores del plugin de GPU de AMD.

El plugin se ejecuta en todos los nodos de GPU.

El uso total de recursos crece linealmente con el número de nodos de GPU.

Las siguientes actividades aumentan:

  • Supervisión del estado de la GPU
  • Informes de estado del dispositivo al kubelet
  • Interacciones con el tiempo de ejecución del contenedor

Si los recursos tienen un tamaño insuficiente:

  • El plugin puede volverse inestable en los nodos.
  • Es posible que las GPU no se expongan correctamente como recursos amd.com/gpu .
  • Los pod que solicitan GPU pueden permanecer en el estado Pending .
  • Es posible que los recursos se informen incorrectamente al programador.

Aumente la memoria y la CPU asignadas en cada nodo en función de los siguientes factores:

  • Número de GPU en el nodo
  • Intensidad de Carga de Trabajo

Supervise los logs de kubelet y el uso de CPU y memoria del plugin.

nodeSelectors/affinity Y

Controla en qué nodos se ejecuta el plugin mediante etiquetas.

Garantiza que el plugin se ejecute solo en nodos de GPU AMD.

Evita la programación innecesaria en nodos de solo CPU.

Si no se especifica ningún selector, el plugin se ejecuta en todos los nodos y desperdicia recursos.

Si se especifica un selector incorrecto, el plugin no se ejecuta en nodos de GPU y las GPU no son visibles para Kubernetes.

Incluso un pequeño error de configuración que afecta al 1-2% de los nodos puede provocar cientos de nodos configurados incorrectamente, disponibilidad incoherente de la GPU y fallos de programación impredecibles.

Utilice el etiquetado estricto de nodos.

tolerations Y

Controla si el plugin se puede ejecutar en nodos de GPU contaminados.

Si no se configura correctamente, es posible que el DaemonSet de plugin de GPU de AMD no se pueda programar en nodos de GPU con daños, lo que impide que se detecten recursos de GPU y hace que las GPU no estén disponibles para la programación de la carga de trabajo.

Si las tolerancias están mal configuradas, el plugin no se puede ejecutar en nodos de GPU y las GPU no se pueden utilizar.

Asegúrese de que las tolerancias coincidan con los contaminantes aplicados a los nodos de GPU.

pulse Y

Controla con qué frecuencia el plugin informa la información de estado de la GPU al kubelet.

Una mayor frecuencia de generación de informes proporciona una mejor visibilidad del estado de la GPU, pero genera más tráfico de kubelet y API.

Una menor frecuencia de generación de informes reduce los gastos generales, pero retrasa la detección de fallos.

Si las actualizaciones son demasiado frecuentes, la sobrecarga de CPU en cada nodo y la carga de kubelet aumentan.

Si las actualizaciones son demasiado infrecuentes o están desactivadas, la información de estado de la GPU puede quedar obsoleta y el programador puede asignar cargas de trabajo a GPU que no estén en buen estado.

Utilice un intervalo moderado que equilibre la visibilidad del estado con los gastos generales.

Evite las encuestas excesivamente agresivas.

rollingUpdate N

Controla el comportamiento de actualización.

En clusters grandes, es posible que muchos nodos se actualicen simultáneamente, lo que afecta a la disponibilidad de la GPU durante las actualizaciones.

  • Es posible que se interrumpan las cargas de trabajo de GPU.
  • Es posible que las GPU no estén disponibles temporalmente.

Utilice actualizaciones continuas controladas para evitar interrupciones generalizadas.

numOfReplicas N

Este argumento no lo utiliza el plugin de GPU de AMD.

No aplicable No aplicable No aplicable