Mengonfigurasi batas kapasitas pengelola pengontrol
Halaman ini menjelaskan cara mengonfigurasi batas kapasitas keseluruhan (kapasitas token bucket ) untuk pengelola pengontrol di Config Connector.
Batas kapasitas mengontrol jumlah permintaan yang dikirim Config Connector ke Kubernetes API. Ada dua setelan:
Setelan
qps
(kueri per detik) menentukan tingkat rata-rata di mana Config Connector dapat membuat permintaan ke Kubernetes API.Nilai
burst
memungkinkan lebih banyak permintaan daripada batasqps
dalam waktu singkat. Hal ini membantu Config Connector dapat merekonsiliasi dengan cepat, bahkan selama masa yang memerlukan lebih banyak kueri ke Kubernetes Server API, seperti saat menerapkan batch konfigurasi baru menggunakan GitOps.
Anda dapat menganggap
"bucket token" algoritme untuk pembatasan kapasitas seperti ini:
bayangkan bucket berisi token burst
dengan kapasitas, sedang diisi ulang pada qps
besar. Setiap permintaan memerlukan satu token dari bucket. Jika bucket kosong,
ditunda sampai token tersedia.
Mengonfigurasi batas kapasitas untuk pengelola pengontrol dengan namespace
Jika Config Connector dikonfigurasi untuk dijalankan di
mode namespace, Anda dapat
gunakan resource khusus NamespacedControllerReconciler
untuk mengonfigurasi tarif
batas klien Kubernetes pengontrol cnrm-controller-manager
dalam namespace yang ditentukan. Anda dapat mengonfigurasi batas kapasitas untuk
di Config Connector versi 1.119 dan yang lebih baru.
Buat file bernama
configure-rate-limit.yaml
, lalu salin berikut YAML ke dalamnya: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
Ganti
NAMESPACE
dengan nama namespace Anda.Gunakan
kubectl apply
untuk menerapkan konfigurasi batas kapasitas ke cluster Anda:kubectl apply -f configure-rate-limit.yaml
Pastikan bahwa konfigurasi berhasil dengan menjalankan perintah berikut:
kubectl get namespacedcontrollerreconciler cnrm-controller-manager -n NAMESPACE -o jsonpath='{.status.healthy}'
Output akan menampilkan kolom
status.healthy
yang disetel ketrue
.Pastikan flag
--qps
dan--burst
ditambahkan ke Penampung pengelola pengontrolcnrm-controller-manager
dengan menjalankan perintah berikut:kubectl describe statefulsets -n cnrm-system -l "cnrm.cloud.google.com/scoped-namespace=NAMESPACE"
Output-nya harus berisi hal berikut:
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