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 del bucket de tokens) para el administrador de controladores en Config Connector.

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

  • La configuración de qps (consultas por segundo) determina la tasa promedio a la que Config Connector puede realizar solicitudes al servidor de la API de Kubernetes.

  • El valor burst permite más solicitudes que el límite qps durante períodos breves. Esto ayuda a Config Connector a reconciliarse rápidamente, incluso durante períodos que 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 el límite de frecuencia de la siguiente manera: Imagina un bucket de tokens de capacidad burst que se vuelve a llenar a la tasa de qps. Cada solicitud requiere un token del bucket. Si el bucket está vacío, las solicitudes se retrasan hasta que los tokens estén disponibles.

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

Si Config Connector está configurado para ejecutarse modo con espacio de nombres, puedes usa el recurso personalizado NamespacedControllerReconciler para configurar la frecuencia límite 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 YAML en él:

    apiVersion: customize.core.cnrm.cloud.google.com/v1alpha1
    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 al clúster:

    kubectl apply -f configure-rate-limit.yaml
  3. Ejecuta el siguiente comando para verificar que la configuración se realice de forma correcta:

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

    El resultado debe mostrar el campo status.healthy configurado como 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