Configure o limite de taxa do gestor de comandos
Estas páginas descrevem como configurar o limite de taxa geral (limite de taxa do contentor de tokens) para o gestor do controlador no Config Connector.
O limite de taxa controla quantos pedidos o Config Connector faz ao servidor da API Kubernetes. Existem duas definições:
A definição
qps
(consultas por segundo) determina a taxa média à qual o Config Connector pode fazer pedidos ao servidor da API Kubernetes.O valor
burst
permite mais pedidos do que o limite deqps
durante períodos curtos. Isto ajuda o Config Connector a reconciliar rapidamente, mesmo durante períodos que requerem mais consultas ao servidor da API Kubernetes, como quando aplica um novo lote de configuração através do GitOps.
Pode pensar no algoritmo de "token bucket" para limitar a taxa da seguinte forma:
imagine um balde com capacidade para burst
tokens, que é reabastecido à taxa de qps
. Cada pedido requer um token do conjunto. Se o depósito estiver vazio, os pedidos são atrasados até que os tokens fiquem disponíveis.
Configure o limite de velocidade para o gestor do controlador com espaço de nomes
Se o Config Connector estiver configurado para ser executado no modo com espaço de nomes, pode usar o recurso personalizado NamespacedControllerReconciler
para configurar o limite de taxa do cliente Kubernetes do controlador cnrm-controller-manager
no seu espaço de nomes designado. Pode configurar o limite de taxa para este controlador na versão 1.119 e posterior do Config Connector.
Crie um ficheiro com o nome
configure-rate-limit.yaml
e copie o seguinte YAML para o mesmo: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
Substitua
NAMESPACE
pelo nome do seu espaço de nomes.Use
kubectl apply
para aplicar a configuração do limite de taxa ao seu cluster:kubectl apply -f configure-rate-limit.yaml
Para verificar se a configuração foi bem-sucedida, execute o seguinte comando:
kubectl get namespacedcontrollerreconciler cnrm-controller-manager -n NAMESPACE -o jsonpath='{.status.healthy}'
O resultado deve apresentar o campo
status.healthy
definido comotrue
.Verifique se as flags
--qps
e--burst
foram adicionadas ao contentor do gestor do controladorcnrm-controller-manager
executando o seguinte comando:kubectl describe statefulsets -n cnrm-system -l "cnrm.cloud.google.com/scoped-namespace=NAMESPACE"
O resultado deve conter o seguinte:
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
Configure o limite de taxa no modo de cluster
A partir da versão 1.125, se o Config Connector estiver configurado para ser executado no modo de cluster, pode configurar o limite de taxa do cliente Kubernetes do controlador cnrm-controller-manager
através do recurso personalizado ControllerReconciler
.
A utilização é semelhante à do modo com espaço de nomes, mas, neste caso, deve usar a CR ControllerReconciler
em vez de NamespacedControllerReconciler
, como no exemplo seguinte:
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