Configurer la limite de débit du gestionnaire de contrôleurs
Cette page explique comment configurer la limite de débit globale (taux de seau ) pour le gestionnaire de contrôleurs dans Config Connector.
La limite de débit contrôle le nombre de requêtes envoyées par Config Connector au Serveur d'API Kubernetes. Il existe deux paramètres :
Le paramètre
qps
(requêtes par seconde) détermine la fréquence moyenne à laquelle Config Connector peut envoyer des requêtes au Serveur d'API Kubernetes.La valeur
burst
permet d'envoyer plus de requêtes que la limiteqps
pendant de courtes périodes. Cela permet à Config Connector rapidement, même pendant les périodes où il faut plus de requêtes au système Kubernetes serveur d'API, par exemple lors de l'application d'un nouveau lot de configuration à l'aide de GitOps.
Vous pouvez considérer l'algorithme de "token bucket" pour la limitation de débit comme suit : imaginez un seau de jetons de capacité burst
, qui est rempli au débit qps
. Chaque requête nécessite un jeton du bucket. Si le bucket est vide,
requêtes sont retardés jusqu'à ce que les jetons soient disponibles.
Configurer la limite de débit pour le gestionnaire de contrôleurs avec espace de noms
Si Config Connector est configuré pour s'exécuter dans
mode espace de noms, vous pouvez
utilisez la ressource personnalisée NamespacedControllerReconciler
pour configurer le tarif
limite du client Kubernetes du contrôleur cnrm-controller-manager
dans l'espace de noms désigné. Vous pouvez configurer la limitation du débit pour
dans Config Connector 1.119 et versions ultérieures.
Créez un fichier nommé
configure-rate-limit.yaml
et copiez-y le YAML ci-dessous :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
Remplacez
NAMESPACE
par le nom de votre espace de noms.Utilisez
kubectl apply
pour appliquer la configuration de la limite de débit à votre cluster :kubectl apply -f configure-rate-limit.yaml
Vérifiez que la configuration a réussi en exécutant la commande suivante :
kubectl get namespacedcontrollerreconciler cnrm-controller-manager -n NAMESPACE -o jsonpath='{.status.healthy}'
Le résultat doit afficher le champ
status.healthy
défini surtrue
.Vérifiez que les options
--qps
et--burst
sont ajoutées au le conteneur du gestionnaire du contrôleurcnrm-controller-manager
en exécutant la commande suivante:kubectl describe statefulsets -n cnrm-system -l "cnrm.cloud.google.com/scoped-namespace=NAMESPACE"
La sortie doit contenir les éléments suivants :
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