Gestor de certificados

Al activar el complemento de cluster de Certificate Manager, 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 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
cert-manager-cainjector.ContainerResources recursos de contenedor cert-manager-cainjector

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.

cert-manager-controller.ContainerResources recursos de contenedor cert-manager-controller

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.

cert-manager-webhook.ContainerResources recursos de contenedor cert-manager-webhook

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.

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
cert-manager-cainjector.ContainerResources Y

Define los recursos de CPU y memoria para el inyector de CA.

CA Injector agrega datos de CA a webhooks, definiciones de recursos personalizadas y servicios de API.

A medida que aumenta el tamaño del cluster:

  • El número de definiciones de recursos personalizados y configuraciones de webhook puede aumentar.
  • El número de operaciones de parches y actualizaciones puede aumentar.
  • Las interacciones del servidor de API aumentan.

La carga de trabajo crece moderadamente y suele ser inferior a la carga de trabajo del controlador de Certificate Manager.

Si los recursos tienen un tamaño insuficiente:

  • La inyección del paquete de CA podría retrasarse.
  • Los webhooks pueden fallar porque faltan datos de CA.

Aumente los recursos moderadamente a medida que aumenta el tamaño del cluster. El inyector de CA normalmente requiere una escala de recursos menos agresiva que el controlador de Certificate Manager.

numOfReplicas N

Controla el número de réplicas para los componentes del gestor de certificados.

Las réplicas adicionales mejoran la disponibilidad y la tolerancia a fallos.

El webhook puede escalar horizontalmente para manejar un mayor volumen de solicitudes de admisión.

  • El rendimiento del controlador no aumenta linealmente con el número de réplicas.
  • Algunos componentes utilizan la elección de líderes, por lo que solo el líder activo realiza ciertas operaciones.
  • Utilice al menos dos o tres réplicas.
  • Aumente el número de réplicas de webhook cuando el volumen de solicitud de API es alto.
affinity / nodeSelectors / tolerations N

Controlar la colocación de los componentes del gestor de certificados.

Certificate Manager es un componente crítico para el plano de control y puede verse afectado por la rotación de nodos y la contención de recursos.

Si estos argumentos no están configurados correctamente:

  • Los pods pueden ejecutarse en nodos inestables o sobrecargados.
  • Los componentes se pueden reiniciar.
  • Las operaciones de certificado se pueden retrasar.
  • Ejecute los componentes de Certificate Manager en nodos estables o en pools de nodos del sistema o de infraestructura dedicada.
  • Configure tolerancias cuando los nodos de destino estén contaminados.
rollingUpdate N

Controla la estrategia de actualización del despliegue.

Durante un cambio de versión:

  • El tiempo de inactividad del controlador detiene la conciliación de certificados.
  • El tiempo de inactividad de Webhook puede provocar que las solicitudes de API fallen.
  • Es posible que todas las réplicas se reinicien al mismo tiempo.
  • Las operaciones de certificado pueden estar temporalmente en pausa.
  • Defina maxUnavailable en 0 o en el valor práctico más bajo.
  • Mantener la disponibilidad continua de los componentes durante las actualizaciones.
topologySpreadConstraints N

Controla cómo se distribuyen los pods entre nodos y dominios de disponibilidad.

  • 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.

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

  • Todos los pods pueden ejecutarse en el mismo nodo o en el mismo dominio de disponibilidad.
  • Un único fallo puede hacer que el webhook o el controlador no estén disponibles.

Distribuya las réplicas entre diferentes nodos y dominios de disponibilidad.

cert-manager-controller.ContainerResources Y

Define los recursos de CPU y memoria para el pod del controlador de Certificate Manager.

A medida que aumenta el tamaño del cluster, puede aumentar el número de los siguientes recursos:

  • Certificados
  • Solicitudes de certificados
  • Secretos

El controlador experimenta:

  • Una caché de informador más grande
  • Más eventos de observación
  • Reconciliación más frecuente
  • Más interacciones con el servidor API

Si los recursos tienen un tamaño insuficiente:

  • Es posible que se termine el controlador porque supera el límite de memoria.
  • La conciliación de certificados puede ser lenta.
  • La emisión y renovación del certificado podrían retrasarse.
  • Es posible que se produzcan retrasos en la cola de eventos.
  • Aumente la memoria para soportar la caché de informador más grande.
  • Aumente la CPU para soportar la actividad de conciliación adicional.

Este es el argumento de escala de recursos más importante de Certificate Manager.

cert-manager-webhook.ContainerResources Y

Define los recursos de CPU y memoria para el webhook de Certificate Manager.

El webhook valida y modifica los recursos de Certificate Manager.

A medida que aumenta el tamaño del cluster:

  • El número de solicitudes de API puede aumentar.
  • El número de llamadas de webhook de admisión puede aumentar.
  • La carga de solicitudes en este componente sensible a la latencia aumenta.

Si los recursos tienen un tamaño insuficiente:

  • La latencia de las solicitudes de admisión puede aumentar.
  • Las operaciones del servidor de API de Kubernetes pueden ralentizarse.
  • La creación de recursos puede fallar.
  • Asigne suficiente CPU para el procesamiento de solicitudes.
  • Utilice un tamaño de memoria moderado.