Configura il limite di frequenza del gestore controller
Questa pagina descrive come configurare il limite di frequenza complessivo (limite di frequenza del bucket di token) per il gestore del controller in Config Connector.
Il limite di frequenza controlla il numero di richieste inviate da Config Connector al server API Kubernetes. Esistono due impostazioni:
L'impostazione
qps
(query al secondo) determina la frequenza media con cui Config Connector può inviare richieste al server API Kubernetes.Il valore
burst
consente più richieste rispetto al limiteqps
per brevi periodi. In questo modo, Config Connector può eseguire la riconciliazione rapidamente, anche durante i periodi che richiedono più query al server dell'API Kubernetes, ad esempio quando viene applicato un nuovo batch di configurazione utilizzando GitOps.
Puoi pensare al "token bucket" algoritmo per la limitazione di frequenza come questo:
immagina un bucket con burst
token di capacità, che viene ricaricato presso qps
di conversione. Ogni richiesta richiede un token dal bucket. Se il bucket è vuoto,
le richieste vengono ritardate fino a quando i token non diventano disponibili.
Configura il limite di velocità per il gestore del controller con spazio dei nomi
Se Config Connector è configurato per l'esecuzione in
con spazio dei nomi, puoi
usa la risorsa personalizzata NamespacedControllerReconciler
per configurare la tariffa
limite del client Kubernetes del controller cnrm-controller-manager
nello spazio dei nomi designato. Puoi configurare la limitazione di frequenza
in Config Connector versione 1.119 e successive.
Crea un file denominato
configure-rate-limit.yaml
e copia seguenti YAML al suo interno: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
Sostituisci
NAMESPACE
con il nome del tuo spazio dei nomi.Utilizza
kubectl apply
per applicare la configurazione della limitazione di frequenza al tuo cluster:kubectl apply -f configure-rate-limit.yaml
Verifica che la configurazione sia riuscita eseguendo questo comando:
kubectl get namespacedcontrollerreconciler cnrm-controller-manager -n NAMESPACE -o jsonpath='{.status.healthy}'
L'output dovrebbe mostrare il campo
status.healthy
impostato sutrue
.Verifica che i flag
--qps
e--burst
siano aggiunti al file il container gestore del controllercnrm-controller-manager
eseguendo questo comando:kubectl describe statefulsets -n cnrm-system -l "cnrm.cloud.google.com/scoped-namespace=NAMESPACE"
L'output dovrebbe contenere quanto segue.
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