servidor de métricas de Kubernetes

Al activar el complemento de cluster del servidor de métricas de Kubernetes, puede transferir los siguientes pares de clave/valor como argumentos

Tenga en cuenta que para utilizar el servidor de métricas de Kubernetes como complemento de cluster, también tiene que desplegar cert-manager (ya sea como un producto independiente o como un complemento de cluster). Si despliega cert-manager como un producto independiente, defina el argumento de configuración skipAddonDependenciesCheck en true.

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
metrics-server.ContainerResources recursos de contenedor de métricas-servidor

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.

skipAddonDependenciesCheck skipAddonDependenciesCheck Si se debe comprobar que se han desplegado otros complementos necesarios (como el complemento cert-manager). Opcional nulo true
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
metrics-server.ContainerResources Y

Define las solicitudes de CPU y memoria y los límites para el pod del servidor de métricas.

  • Las operaciones de desecho aumentan linealmente porque el servidor de métricas recopila métricas de cada nodo.
  • El uso de CPU aumenta para la recopilación y el procesamiento de métricas.
  • El uso de memoria aumenta para retener métricas agregadas.
  • Las métricas pueden tardar más en estar disponibles.

Si los recursos tienen un tamaño insuficiente:

  • El pod del servidor de métricas se puede terminar porque supera su límite de memoria.
  • La limitación de CPU puede causar raspaduras lentas o perdidas.
  • La API de métricas puede proporcionar datos obsoletos o dejar de estar disponible.
  • Las decisiones horizontales de la escala automática de pod pueden retrasarse o ser imprecisas.
  • Aumentar los recursos de CPU y memoria en proporción al número de nodos.
  • Aumente la CPU para soportar el desguace y el procesamiento de métricas.
  • Aumentar la memoria para soportar la agregación de métricas.
  • Valide el tamaño de los recursos mediante pruebas de carga para clusters con más de 5 000 nodos.
numOfReplicas N

Controla el número de pods del servidor de métricas.

Cada réplica raspa cada nodo. El servidor de métricas no divide la carga de trabajo de desguace entre réplicas, por lo que las réplicas adicionales proporcionan alta disponibilidad en lugar de capacidad de procesamiento adicional.

  • Las réplicas adicionales generan tráfico de desechos duplicado.
  • El aumento del número de réplicas no mejora el rendimiento de raspado.
  • Utilice dos o tres réplicas para proporcionar alta disponibilidad.
  • No aumente el número de réplicas para mejorar el rendimiento.
affinity / nodeSelectors / tolerations N

Controlar la ubicación de los pods del servidor de métricas.

El servidor de métricas es un componente crítico del plano de control. Su ubicación afecta a la estabilidad del servicio y a la disponibilidad de las métricas de recursos.

Si estos argumentos no están configurados correctamente:

  • Los pods pueden ejecutarse en nodos inestables o restringidos a recursos.
  • Los pods se pueden reiniciar.
  • El rendimiento puede reducirse.
  • Es posible que se produzcan intervalos intermitentes en la disponibilidad de las métricas.
  • Ejecute el servidor de métricas en nodos estables con baja rotación y recursos suficientes.
  • Preferir infraestructura dedicada o pools de nodos del sistema.
  • Configure tolerancias cuando los nodos de destino estén contaminados.
rollingUpdate N

Controla la estrategia de actualización de despliegue para el servidor de métricas.

El tiempo de inactividad del servidor de métricas hace que la API de métricas no esté disponible, impide que la escala automática de pod horizontal funcione correctamente y hace que fallen los comandos kubectl top .

Si este argumento no está configurado correctamente:

  • Es posible que todas las réplicas se reinicien al mismo tiempo.
  • Es posible que el pipeline de métricas deje de estar disponible temporalmente.
  • Configure maxUnavailable con cuidado.
  • Asegúrese de que al menos una réplica del servidor de métricas permanezca activa durante una actualización.
  • Utilizar una estrategia de implementación gradual.
topologySpreadConstraints N

Controla cómo los pods del servidor de métricas se distribuyen entre nodos, dominios de disponibilidad y otros dominios de fallos.

  • Impide que todas las réplicas se ejecuten en el mismo nodo o en el mismo dominio de disponibilidad.
  • Mejora la resiliencia ante fallos de nodo y de dominio de disponibilidad.
  • Agrega una pequeña cantidad de complejidad de programación.

Si no se configuran las restricciones de distribución de topología:

  • Todas las réplicas pueden ejecutarse en el mismo nodo o en el mismo dominio de disponibilidad.
  • Un único fallo puede provocar una interrupción completa de las métricas.
  • Distribuya las réplicas entre los dominios de disponibilidad cuando sea posible.
  • Ejecutar réplicas en diferentes nodos.
  • Mantenga una distribución uniforme para proporcionar alta disponibilidad.
skipAddonDependenciesCheck N

Controla si la validación de dependencias se omite durante la instalación del complemento.

Este argumento no tiene impacto directo en el rendimiento ni en la escalabilidad, pero afecta a la fiabilidad del despliegue. En OKE, el servidor de métricas depende de componentes como Certificate Manager.

Si se omite la validación de dependencia:

  • Es posible que el complemento esté instalado sin las dependencias necesarias.
  • Puede que el pipeline de métricas no funcione.
  • Se pueden producir fallos de tiempo de ejecución.
  • La resolución de problemas puede ser más difícil en un cluster grande.
  • Mantener la validación de dependencia activada.
  • Omita la validación solo en entornos controlados o de prueba, o cuando todas las dependencias se hayan validado manualmente.