配置控制器管理器速率限制
本页面介绍了如何配置总体速率限制(令牌桶速率) 限制)。
速率限制用于控制 Config Connector 向 Kubernetes API 服务器发出的请求数量。有两种设置:
qps
(每秒查询次数)设置决定了 Config Connector 可以向 Kubernetes API 服务器发出请求的平均速率。burst
值允许超出qps
限制的请求数量 。这有助于 Config Connector 协调 即使在需要更多查询时 Kubernetes API 服务器,例如使用 GitOps 应用新批次的配置时。
您可以将“令牌桶”视为速率限制的算法,如下所示:
想象一下有一桶容量为 burst
的令牌,在qps
。每个请求都需要从令牌桶中获取一个令牌。如果令牌桶为空,系统会延迟请求,直到有令牌可用。
为命名空间型控制器管理器配置速率限制
如果将 Config Connector 配置为在
命名空间型模式
使用NamespacedControllerReconciler
自定义资源配置费率
cnrm-controller-manager
控制器的 Kubernetes 客户端的上限
指定命名空间您可以为这种资源配置速率限制
控制器(位于 Config Connector 1.119 及更高版本中)。
创建名为
configure-rate-limit.yaml
的文件并将以下 YAML 复制到其中: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
将
NAMESPACE
替换为您的命名空间名称。使用
kubectl apply
将速率限制配置应用于您的集群:kubectl apply -f configure-rate-limit.yaml
运行以下命令来验证配置是否成功:
kubectl get namespacedcontrollerreconciler cnrm-controller-manager -n NAMESPACE -o jsonpath='{.status.healthy}'
输出应显示
status.healthy
字段已设置为true
。通过运行以下命令,验证
--qps
和--burst
标志是否已添加到cnrm-controller-manager
控制器的管理器容器中:kubectl describe statefulsets -n cnrm-system -l "cnrm.cloud.google.com/scoped-namespace=NAMESPACE"
输出应该包含以下内容:
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