Configura el límite de frecuencia del administrador de controladores

En esta página, se describe cómo configurar el límite de frecuencia general (límite de frecuencia de bucket de tokens) para el administrador de controladores en Config Connector.

El límite de frecuencia controla la cantidad de solicitudes que Config Connector realiza al servidor de la API de Kubernetes. Existen dos parámetros de configuración:

  • El parámetro de configuración qps (consultas por segundo) determina la frecuencia promedio con la que Config Connector puede realizar solicitudes al servidor de la API de Kubernetes.

  • El valor de burst permite más solicitudes que el límite de qps durante períodos cortos. Esto ayuda a Config Connector a conciliar rápidamente, incluso en momentos en los que se requieren más consultas al servidor de la API de Kubernetes, como cuando se aplica un nuevo lote de configuración con GitOps.

Puedes pensar en el algoritmo de "bucket de tokens" para límite de frecuencia de esta manera: imagina un bucket con una capacidad de burst tokens que se vuelve a llenar a una frecuencia de qps. Cada solicitud requiere un token del bucket. Si el bucket está vacío, las solicitudes se retrasan hasta que haya tokens disponibles.

Configura el límite de frecuencia para el administrador de controladores con espacio de nombres

Si Config Connector está configurado para ejecutarse en modo con espacio de nombres, puedes usar el recurso personalizado NamespacedControllerReconciler para configurar el límite de frecuencia del cliente de Kubernetes del controlador cnrm-controller-manager en el espacio de nombres designado. Puedes configurar el límite de frecuencia para este controlador en Config Connector versión 1.119 y posteriores.

  1. Crea un archivo llamado configure-rate-limit.yaml y copia el siguiente archivo YAML en él:

    apiVersion: customize.core.cnrm.cloud.google.com/v1beta1
    kind: NamespacedControllerReconciler
    metadata:
      name: cnrm-controller-manager # name must not contain the namespace ID suffix
      namespace: NAMESPACE
    spec:
      rateLimit:
        qps: 80 # the default value is 20
        burst: 40 # the default value is 30
    

    Reemplaza NAMESPACE por el nombre de tu espacio de nombres.

  2. Usa kubectl apply para aplicar la configuración del límite de frecuencia a tu clúster:

    kubectl apply -f configure-rate-limit.yaml
  3. Ejecuta el siguiente comando para verificar que la configuración se haya realizado correctamente:

    kubectl get namespacedcontrollerreconciler cnrm-controller-manager -n NAMESPACE -o jsonpath='{.status.healthy}'

    El resultado debería mostrar el campo status.healthy establecido en true.

  4. Ejecuta el siguiente comando para verificar que las marcas --qps y --burst se agreguen al contenedor del administrador del controlador cnrm-controller-manager:

    kubectl describe statefulsets -n cnrm-system -l "cnrm.cloud.google.com/scoped-namespace=NAMESPACE"

    El resultado debería contener lo siguiente:

    Containers:
    manager:
      Image:      gcr.io/gke-release/cnrm/controller:fd4c42c
      Port:       23232/TCP
      Host Port:  0/TCP
      Command:
        /configconnector/manager
      Args:
        --qps=80
        --burst=40
        --scoped-namespace=config-control
        --prometheus-scrape-endpoint=:8888
    

Configura el límite de frecuencia en el modo de clúster

A partir de la versión 1.125, si Config Connector está configurado para ejecutarse en modo de clúster, puedes configurar el límite de frecuencia del cliente de Kubernetes del controlador de cnrm-controller-manager con el recurso personalizado ControllerReconciler. El uso es similar al modo con espacio de nombres, pero, en este caso, debes usar el CR ControllerReconciler en lugar de NamespacedControllerReconciler, como en el siguiente ejemplo:

apiVersion: customize.core.cnrm.cloud.google.com/v1alpha1
kind: ControllerReconciler
metadata:
  name: cnrm-controller-manager
spec:
  rateLimit:
    qps: 80 # the default value is 20
    burst: 40 # the default value is 30