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.
| 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 |
|---|---|---|---|---|---|
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 |
Opcional |
0
|
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:
|
Si los recursos tienen un tamaño insuficiente:
|
Aumente la memoria y la CPU asignadas en cada nodo en función de los siguientes factores:
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. |
|
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 |