Mengonfigurasi batas kecepatan pengelola pengontrol
Halaman ini menjelaskan cara mengonfigurasi batas frekuensi keseluruhan (batas frekuensi bucket token) untuk pengelola pengontrol di Config Connector.
Batas kapasitas mengontrol jumlah permintaan yang dibuat Config Connector ke server API Kubernetes. Ada dua setelan:
Setelan
qps(kueri per detik) menentukan kecepatan rata-rata Config Connector dapat membuat permintaan ke server Kubernetes API.Nilai
burstmemungkinkan lebih banyak permintaan daripada batasqpsuntuk jangka waktu singkat. Hal ini membantu Config Connector melakukan rekonsiliasi dengan cepat, bahkan selama waktu yang memerlukan lebih banyak kueri ke server API Kubernetes, seperti saat menerapkan batch konfigurasi baru menggunakan GitOps.
Anda dapat menganggap algoritma "token bucket" untuk pembatasan frekuensi seperti ini:
bayangkan bucket berkapasitas burst token, yang diisi ulang dengan kecepatan qps. Setiap permintaan memerlukan satu token dari bucket. Jika bucket kosong,
permintaan akan ditunda hingga token tersedia.
Mengonfigurasi batas kapasitas untuk pengelola pengontrol namespace
Jika Config Connector dikonfigurasi untuk berjalan dalam
mode namespace, Anda dapat
menggunakan resource kustom NamespacedControllerReconciler untuk mengonfigurasi batas
frekuensi klien Kubernetes pengontrol cnrm-controller-manager
di namespace yang ditentukan. Anda dapat mengonfigurasi batas kecepatan untuk pengontrol ini di Config Connector versi 1.119 dan yang lebih baru.
Buat file bernama
configure-rate-limit.yamldan salin YAML berikut ke dalamnya: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 30Ganti
NAMESPACEdengan nama namespace Anda.Gunakan
kubectl applyuntuk menerapkan konfigurasi batas kecepatan ke cluster Anda:kubectl apply -f configure-rate-limit.yaml
Verifikasi keberhasilan konfigurasi dengan menjalankan perintah berikut:
kubectl get namespacedcontrollerreconciler cnrm-controller-manager -n NAMESPACE -o jsonpath='{.status.healthy}'Output akan menampilkan kolom
status.healthyyang ditetapkan ketrue.Pastikan flag
--qpsdan--burstditambahkan ke container pengelola pengontrolcnrm-controller-managerdengan menjalankan perintah berikut:kubectl describe statefulsets -n cnrm-system -l "cnrm.cloud.google.com/scoped-namespace=NAMESPACE"
Output-nya harus berisi yang 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
Mengonfigurasi batas kecepatan dalam mode cluster
Mulai versi 1.125, jika Config Connector dikonfigurasi untuk berjalan dalam mode cluster, Anda dapat mengonfigurasi batas kecepatan klien Kubernetes pengontrol cnrm-controller-manager menggunakan resource kustom ControllerReconciler.
Penggunaannya mirip dengan mode namespace, tetapi dalam hal ini, Anda harus
menggunakan CR ControllerReconciler, bukan NamespacedControllerReconciler,
seperti dalam contoh berikut:
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