Detección de funciones de nodo

Al activar el complemento de cluster de detección de funciones de nodo, 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
master.tolerations tolerancias para el maestro nfd Tolerancias personalizadas para aplicar a pods maestros de NFD. Opcional
[{"key":"node-role.kubernetes.io/master","operator":"Equal","effect":"NoSchedule"},{"key":"node-role.kubernetes.io/control-plane","operator":"Equal","effect":"NoSchedule"}]
master.affinity afinidad para el maestro nfd Reglas de afinidad de nodos para programar pods de NFD. Opcional
{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":1,"preference":{"matchExpressions":[{"key":"node-role.kubernetes.io/master","operator":"In","values":[""]}]}},{"weight":1,"preference":{"matchExpressions":[{"key":"node-role.kubernetes.io/control-plane","operator":"In","values":[""]}]}}]}}
master.config configuración para maestro nfd

Configuración maestra adicional para fusionar en nfd-master.conf.

Formato YAML o JSON en texto sin formato.

Opcional null
master.resources recursos para nfd master Solicitudes de recursos y límites para el contenedor maestro de NFD. Formato JSON en texto sin formato. Opcional null
master.replicaCount replicaCount para maestro nfd Recuento de réplicas para el despliegue maestro NFD. Opcional null
master.extraArgs extraArgs para nfd master

Argumentos de línea de comandos adicionales para el contenedor maestro NFD.

Formato de matriz JSON en texto sin formato.

Opcional null
master.annotations anotaciones para nfd master pods Anotaciones para fusionar en la plantilla de pod maestro de NFD. Opcional null
priorityClassName priorityClassName para despliegues de nfd PriorityClassName para los despliegues maestro y de CC de NFD. Opcional null
worker.config configuración para trabajador nfd

Configuración de trabajador adicional para fusionar en nfd-worker.conf.

Formato YAML o JSON en texto sin formato.

Opcional null
worker.resources recursos para el trabajador nfd Solicitudes de recursos y límites para el contenedor de trabajador de NFD. Formato JSON en texto sin formato. Opcional null
worker.tolerations tolerancias para el trabajador nfd Tolerancias adicionales para agregar a los pods de trabajador de NFD. Opcional null
worker.nodeSelector nodeSelector para trabajador nfd Etiquetas de selector de nodos para fusionar en el DaemonSet de trabajador de NFD. Opcional null
worker.priorityClassName priorityClassName para trabajadores nfd PriorityClassName para el DaemonSet de trabajador de NFD. Opcional null
worker.extraArgs extraArgs para el trabajador nfd

Argumentos de línea de comandos adicionales para el contenedor de trabajo de NFD.

Formato de matriz JSON en texto sin formato.

Opcional null
worker.annotations anotaciones para pods de trabajador nfd Anotaciones para fusionar en la plantilla de pod de trabajador de NFD. Opcional null
master.customConfigData Datos de configuración maestra de NFD personalizados

Proporcione contenido para node-feature-discovery-master-custom-conf ConfigMap.

Si se proporciona, se montará automáticamente.

Opcional ""
worker.customConfigData Datos de configuración de trabajador de NFD personalizados

Proporcione contenido para node-feature-discovery-worker-custom-conf ConfigMap.

Si se proporciona, se montará automáticamente.

Opcional ""
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
master.tolerations Y

Controla si los pods maestros de detección de funciones de nodo se pueden ejecutar en un plano de control contaminado o en nodos de infraestructura.

  • Garantiza que el maestro de detección de funciones de nodo se ejecute en nodos estables de infraestructura o plano de control.
  • Impide que el maestro se ejecute en nodos de trabajador con alta actividad de carga de trabajo.
  • Mejora la fiabilidad del etiquetado de nodos en todo el cluster.

Si este argumento está mal configurado:

  • El pod maestro puede permanecer en el estado Pending porque no puede tolerar los contaminantes del nodo.
  • El pod maestro puede ejecutarse en nodos de trabajador y volverse inestable.
  • Es posible que las actualizaciones de etiquetas en el cluster se retrasen o sean incoherentes.
  • Incluya siempre tolerancias para los contaminantes del plano de control.
  • Asegúrese de que el maestro se ejecute en nodos estables.
  • Combine tolerancias con reglas de afinidad para controlar la colocación de pods.
master.affinity Y

Define la ubicación de nodos preferida para los pods maestros de detección de funciones de nodo.

  • Mantiene el maestro en nodos de infraestructura o plano de control dedicados.
  • Reduce las interferencias de las cargas de trabajo de las aplicaciones.
  • Mejora la coherencia de las operaciones de etiquetado de nodos.

Si este argumento está mal configurado:

  • El maestro se puede ejecutar en nodos de trabajador.
  • Es posible que se ejecuten varias réplicas en el mismo nodo, lo que reduce la alta disponibilidad.
  • El etiquetado de nodos puede ser más lento o incoherente.
  • Utilice reglas de afinidad para preferir nodos de plano de control o infraestructura.
  • Agregue reglas anti-afinidad al utilizar varias réplicas.
  • Tratar la ubicación maestra como parte del diseño del plano de control del cluster.
master.customConfigData N

Activa la configuración personalizada para el maestro de detección de funciones de nodo.

La configuración controla cómo se procesan y etiquetan las funciones del nodo. Afecta a:

  • Número de etiquetas generadas
  • Frecuencia de actualizaciones de etiquetas

Si este argumento está mal configurado:

  • Se pueden generar etiquetas excesivas o incorrectas.
  • Los cambios frecuentes en las etiquetas pueden aumentar la carga en el servidor de API de Kubernetes.
  • La detección de funciones puede ser inconsistente entre los nodos.
  • Mantenga la configuración mínima.
  • Configure solo las funciones necesarias.
  • Valide la configuración en un pequeño subjuego de nodos antes de aplicarla en todo el cluster.
worker.customConfigData N

Controla la lógica personalizada de detección de funciones en cada nodo.

El trabajador de detección de funciones de nodo se ejecuta en cada nodo como DaemonSet. Por lo tanto, cualquier lógica de detección adicional se ejecuta en cada nodo.

La lógica de detección personalizada puede afectar a:

  • Uso de CPU de nodo
  • Frecuencia de etiquetado
  • Consistencia de etiquetado en todo el cluster

Si este argumento está mal configurado:

  • El uso de CPU puede aumentar en los nodos.
  • Las etiquetas pueden ser incorrectas o incoherentes.
  • Las actualizaciones frecuentes de etiquetas pueden aumentar la presión sobre el servidor de API de Kubernetes.
  • La programación de la carga de trabajo puede verse afectada.
  • Mantenga la configuración del trabajador ligera.
  • Evite la lógica de detección que utiliza muchos recursos.
  • Valide las etiquetas antes de activar la configuración en todo el cluster.
  • Supervisar el uso de recursos del nodo.