Operador de red NVIDIA

Al activar el complemento de cluster de operador de red 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
operator.nodeSelectors nvidia-network-operator nodeSelectores Selectores de nodos en los pods del operador de red NVIDIA. Opcional null
operator.tolerations Tolerancias nvidia-network-operator Tolerancias en los pods del operador de red NVIDIA. Opcional null
nicClusterPolicy.tolerations Tolerancias de nicClusterPolicy Tolerancias para DaemonSets gestionados por NicClusterPolicy. Opcional null
nicClusterPolicy.deploymentTolerations Tolerancias de despliegue de nicClusterPolicy Tolerancias para despliegues gestionadas por NicClusterPolicy. Opcional null
operator.affinity afinidad nvidia-network-operator Reglas de programación de afinidad para el operador de red NVIDIA. Formato JSON en texto sin formato. Opcional null
operator.resources Recursos de contenedor de nvidia-network-operator Los recursos del operador de red NVIDIA controlan los límites de recursos y las solicitudes para el contenedor nvidia-network-operator. Formato JSON en texto sin formato. Opcional
{"limits": {"cpu": "500m", "memory": "128Mi"}, "requests": {"cpu": "5m", "memory": "64Mi"}}
operator.cniBinDirectory Directorio de cniBin Directorio binario CNI para el operador de red NVIDIA. Opcional /opt/cni/bin
operator.cniNetworkDirectory Directorio de cniNetwork Directorio de red CNI para el operador de red NVIDIA. Opcional /etc/cni/net.d
operator.admissionControllers.enabled operator.admissionControllers.enabled Active los controladores de admisión para el operador de red NVIDIA. Opcional false
sriovNetworkOperator.enabled sriovNetworkOperator.activado Active el operador de red NVIDIA SR-IOV. Opcional false
sriov-network-operator.operator.resourcePrefix sriov-network-operator.operator.resourcePrefix Prefijo de recurso para recursos creados por el operador de red SR-IOV. Opcional nvidia.com
sriov-network-operator.operator.admissionControllers.enabled sriov-network-operator.operator.admissionControllers.enabled Active los controladores de admisión para el operador de red SR-IOV. Opcional false
sriov-network-operator.operator.sriovOperatorConfig.configDaemonNodeSelectors sriov-network-operator.operator.sriovOperatorConfig.configDaemonNodeSelectors Configure configDaemonNodeSelector para sriovOperatorConfig. Opcional
{"beta.kubernetes.io/os": "linux", "network.nvidia.com/operator.mofed.wait": "false"}
vfCreationMode Modo de creación de vf Modo para la creación de VF. Los valores válidos son sriovNetworkOperator y custom. Opcional custom
customizeVfCreationConfigMap personalizarVfCreationConfigMap Especifique si desea omitir la creación del mapa de configuración vf-shape-config. Opcional false
skipNodeFeatureDiscoveryDependencyCheck omitir comprobación de dependencia de NFD Omita la comprobación de dependencia de detección de funciones de nodo. 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
operator.nodeSelectors Y

Controla dónde están programados los pods del operador de red NVIDIA.

  • Mantiene al operador en nodos estables de infraestructura o plano de control.
  • Impide que el operador compita con cargas de trabajo en nodos de trabajador ocupados.
  • Ayuda a mantener el bucle de control de red predecible cuando el cluster tiene muchos nodos y frecuentes cambios de estado de nodo.

Si este argumento está mal configurado:

  • El operador puede ejecutarse en nodos de trabajador sobrecargados.
  • El pod de operador puede permanecer en el estado Pending si el selector es demasiado restrictivo o incorrecto.
  • La conciliación relacionada con la red puede ser lenta o incoherente si el operador es inestable.
  • Programe el operador en nodos de infraestructura dedicados.
  • Utilice un selector simple y fiable.
  • Mantenga al operador alejado de los grupos de trabajadores con cambios frecuentes en la carga de trabajo.
operator.tolerations Y

Controla las tolerancias para los pods del operador de red NVIDIA y DaemonSets relacionados.

  • Permite que el operador y sus DaemonSets se ejecuten en nodos de infraestructura contaminados.
  • Evita fallos de colocación en el plano de control o en nodos de red dedicados.
  • Admite el aislamiento cuando los nodos de red o GPU están contaminados.

Si este argumento está mal configurado:

  • El operador o sus DaemonSets pueden permanecer en el estado Pending en los nodos contaminados.
  • Es posible que los componentes SR-IOV, controlador o CNI no se ejecuten en los nodos necesarios.
  • Es posible que algunos nodos nunca reciban las funciones de red necesarias.
  • Coincidencia de tolerancias con los contaminantes utilizados en los pools de nodos.
  • Utilice tolerancias consistentes en DaemonSets gestionados por el operador.
  • Vuelva a probar la configuración después de cambiar las políticas de retención de nodos.
operator.affinity Y

Controla las reglas de afinidad de nodos para los pods del operador de red NVIDIA.

  • Mantiene al operador en la clase adecuada de nodos.
  • Reduce la probabilidad de que el operador se vea afectado por la rotación de nodos de trabajador.
  • Permite al operador ejecutar cerca de una infraestructura de red estable.

Si este argumento está mal configurado:

  • Es posible que el operador esté programado en nodos inadecuados.
  • Si la regla es demasiado restrictiva, el operador puede permanecer en el estado Pending .
  • Si la regla es demasiado amplia, es posible que la colocación no proporcione la resiliencia deseada.
  • Utilice reglas de afinidad para preferir nodos estables.
  • Mantenga las reglas simples, a menos que se requieran restricciones de varias zonas o de varias agrupaciones.
  • Combine reglas de afinidad con tolerancias cuando sea necesario.
operator.resources Y

Define las solicitudes de CPU y memoria y los límites para el contenedor de operador de red NVIDIA.

El operador coordina los recursos de red en todo el cluster. A medida que aumenta el número de nodos, debe procesar más objetos, cambios de estado de nodo y operaciones de conciliación.

El operador también depende de las etiquetas de detección de funciones de nodo para determinar qué nodos necesitan componentes de red.

Si los recursos tienen un tamaño insuficiente:

  • La reconciliación puede ser lenta.
  • Las implementaciones de software de red pueden retrasarse.
  • El operador puede volverse inestable durante los cambios frecuentes en los nodos o las actualizaciones de configuración.
  • Aumentar los recursos de CPU y memoria para clusters con cambios frecuentes en los nodos o con muchos recursos personalizados de red.
  • Supervise el uso de CPU del operador, el uso de memoria y la latencia de conciliación.
  • Trate este argumento como una configuración de tamaño de plano de control.
operator.cniBinDirectory N

Controla el directorio en los nodos donde se despliegan los binarios CNI.

Los binarios CNI se deben desplegar en el directorio que utiliza el tiempo de ejecución del contenedor. Una ruta incorrecta puede afectar a muchos nodos al mismo tiempo.

Si este argumento está mal configurado:

  • Es posible que se creen pods, pero es posible que la red no esté disponible.
  • Los binarios CNI se pueden desplegar en la ruta de host incorrecta.
  • El cluster puede aparecer configurado aunque la red no funcione.
  • Mantenga el valor alineado con el valor por defecto de tiempo de ejecución del nodo.
  • Cambie el valor solo cuando el tiempo de ejecución del contenedor utilice un directorio binario CNI diferente.
  • Valide la ruta de acceso en un único pool de nodos antes de aplicarla ampliamente.
operator.cniNetworkDirectory N

Controla el directorio de host donde se despliegan los archivos de configuración de CNI.

Los archivos de configuración de CNI deben colocarse en el directorio leído por kubelet o el tiempo de ejecución del contenedor. Un directorio incorrecto puede afectar a todos los nodos que utilizan la configuración.

Si este argumento está mal configurado:

  • Los archivos de configuración de CNI se pueden desplegar en un directorio que el tiempo de ejecución de kubelet o contenedor no lee.
  • Los nodos pueden aparecer configurados aunque la red secundaria no funcione.
  • La resolución de problemas puede ser difícil porque el operador puede aparecer en buen estado a pesar de que la ruta no coincide.
  • Alinee el valor con el directorio de configuración de CNI que utiliza el tiempo de ejecución del nodo.
  • Tratar el argumento como una configuración de tiempo de ejecución de host en lugar de una configuración de política de cluster.
  • Valide la colocación de archivos en una única GPU o nodo de red antes de aplicarlos ampliamente.
operator.admissionControllers.enabled N

Controla si el operador de red de NVIDIA despliega su controlador de admisión.

El controlador de admisión ayuda a evitar que la configuración no válida entre en el cluster. Esto se vuelve más importante cuando muchos usuarios o sistemas de automatización crean recursos personalizados de red.

Si el controlador de admisión está desactivado:

  • Es posible que se acepte una configuración de SR-IOV, política de red o NIC no válida.
  • Es posible que se aplique una configuración no válida a muchos nodos antes de que se detecte el problema.
  • El riesgo operativo aumenta en grandes clusters.
  • Active el controlador de admisión en entornos de producción.
  • Asegúrese de que Certificate Manager se mantiene en buen estado si el webhook utiliza certificados generados.
sriovNetworkOperator.enabled N

Controla si se implementa el operador de red SR-IOV.

El operador de red SR-IOV proporciona los componentes SR-IOV necesarios para redes de alto rendimiento basadas en funciones virtuales, incluidas algunas configuraciones de RDMA y GPUDirect RDMA.

Si el operador de red SR-IOV está desactivado cuando es necesario:

  • Las capacidades SR-IOV no se implementan.
  • Es posible que los nodos no proporcionen los recursos de red necesarios para las cargas de trabajo.
  • Es posible que las rutas de red de GPU y RDMA permanezcan incompletas.
  • Active el operador de red SR-IOV solo cuando el cluster requiera SR-IOV.
  • Deje desactivada en los clusters que no utilizan redes basadas en funciones virtuales.
  • Cuando está activada, trátela como un componente de red fundamental.
sriov-network-operator.operator.resourcePrefix N

Define el prefijo utilizado para los recursos creados por el operador de red SR-IOV.

El prefijo determina los nombres de recursos ampliados que utilizan Kubernetes y las cargas de trabajo. El cambio del prefijo requiere que todos los manifiestos de carga de trabajo utilicen los nuevos nombres de recursos.

Si este argumento está mal configurado:

  • Las cargas de trabajo pueden solicitar un nombre de recurso ampliado incorrecto.
  • Los pods pueden permanecer en el estado Pending porque el programador no puede coincidir con el recurso solicitado.
  • Las convenciones de nomenclatura de recursos antiguas y nuevas se pueden utilizar de forma inconsistente.
  • Mantenga el valor por defecto a menos que se requiera una política de nomenclatura alternativa.
  • No cambie el prefijo de forma casual en un cluster en ejecución.
  • Asegúrese de que los manifiestos de carga de trabajo utilicen el mismo prefijo.
sriov-network-operator.operator.admissionControllers.enabled Y

Controla los controladores de admisión del operador de red SR-IOV.

Los controladores de admisión detectan una configuración SR-IOV no válida antes de que llegue a los nodos y ayudan a mantener la coherencia de la configuración de NIC y función virtual a medida que aumenta el número de políticas y grupos de nodos.

Si los controladores de admisión están desactivados:

  • Se puede aplicar una configuración SR-IOV no válida.
  • La configuración incorrecta puede extenderse a varios nodos.
  • La recuperación de errores de configuración puede ser más difícil.
  • Activar los controladores de admisión en entornos de producción.
  • Asegúrese de que el gestor de certificados y el manejo de certificados de webhook permanecen en buen estado.
  • Desactive los controladores de admisión solo cuando haya una razón específica para evitar webhooks de admisión.
sriov-network-operator.operator.sriovOperatorConfig.configDaemonNodeSelectors Y

Selecciona los nodos que configura el daemon de configuración de SR-IOV.

El selector determina qué nodos reciben la configuración de SR-IOV. En un cluster grande, un selector incorrecto puede afectar a cientos o miles de nodos.

Si este argumento está mal configurado:

  • Es posible que la configuración de SR-IOV se aplique a los nodos incorrectos.
  • Es posible que los nodos previstos no reciban la configuración.
  • Las capacidades de red pueden volverse inconsistentes entre los pools de nodos.
  • Alinee el selector estrechamente con las etiquetas de nodo producidas por la detección de funciones de nodo.
  • Pruebe el selector en un grupo de nodos pequeño antes de aplicarlo ampliamente.
vfCreationMode N

Determina si la creación de funciones virtuales es gestionada automáticamente por el operador o por la lógica personalizada.

Un proceso de creación automatizado y consistente de funciones virtuales reduce las diferencias de configuración entre los nodos. La lógica de creación personalizada proporciona más flexibilidad, pero aumenta la probabilidad de que la configuración de nodos sea inconsistente.

Si este argumento está mal configurado:

  • Es posible que no se creen funciones virtuales en los nodos esperados.
  • Los pools de nodos pueden comportarse de forma diferente.
  • La configuración de red puede variar con el tiempo.
  • Utilice la creación de funciones virtuales gestionadas por el operador a menos que se necesite una lógica personalizada.
  • Evite mezclar modos de creación dentro del mismo dominio operativo.
  • Valide la creación de funciones virtuales en un único pool de nodos antes de aplicarla ampliamente.
skipNodeFeatureDiscoveryDependencyCheck Y

Determina si el operador omite la comprobación de dependencia de detección de funciones de nodo.

Al omitir la comprobación, se evita la validación de dependencias redundantes cuando la detección de funciones de nodo se gestiona por separado. Sin embargo, el administrador del cluster se hace responsable de garantizar que las etiquetas de nodo necesarias estén disponibles y sigan siendo correctas.

Si este argumento está mal configurado:

  • El operador puede depender de la detección de funciones de nodo aunque no esté instalado o en buen estado.
  • Es posible que falten etiquetas necesarias.
  • El direccionamiento incorrecto de nodos para SR-IOV y los componentes relacionados puede afectar a muchos nodos.
  • Omita la comprobación de dependencia solo cuando la detección de funciones de nodo ya esté desplegada y verificada.
  • Confirme que las etiquetas necesarias existen en los nodos previstos antes de activar el operador de red NVIDIA.