컨트롤러 관리자 비율 제한 구성
이 페이지에서는 구성 커넥터의 컨트롤러 관리자에 대한 전체 비율 한도(토큰 버킷 비율 제한)를 구성하는 방법을 설명합니다.
비율 제한은 구성 커넥터가 Kubernetes API 서버에 보내는 요청 수를 제어합니다. 다음 두 가지 설정이 있습니다.
qps
(초당 쿼리 수) 설정은 구성 커넥터가 Kubernetes API 서버에 요청할 수 있는 평균 속도를 결정합니다.burst
값을 사용하면 단기간에qps
한도보다 더 많은 요청을 할 수 있습니다. 이렇게 하면 GitOps를 사용하여 새 구성 일괄을 적용할 때와 같이 Kubernetes API 서버에 더 많은 쿼리를 실행해야 하는 경우에도 구성 커넥터가 빠르게 조정할 수 있습니다.
비율 제한을 위한 '토큰 버킷' 알고리즘은 다음과 같이 생각할 수 있습니다. 용량 burst
토큰의 버킷이 qps
속도로 다시 채워진다고 가정해 보겠습니다. 각 요청에는 버킷의 토큰 1개가 필요합니다. 버킷이 비어 있으면 토큰을 사용할 수 있을 때까지 요청이 지연됩니다.
네임스페이스 컨트롤러 관리자에 대한 비율 제한 구성
구성 커넥터가 네임스페이스 모드에서 실행되도록 구성된 경우 NamespacedControllerReconciler
커스텀 리소스를 사용하여 지정된 네임스페이스에서 cnrm-controller-manager
컨트롤러의 Kubernetes 클라이언트의 속도 제한을 구성할 수 있습니다. 구성 커넥터 버전 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