Skip to content

Commit bb72543

Browse files
committed
Disable kube-controller-manager client-side rate limiting
1 parent 50bec3f commit bb72543

File tree

2 files changed

+4
-6
lines changed

2 files changed

+4
-6
lines changed

docs/evaluation.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ In the cluster itself, kyverno policies are used for scheduling the sharder and
125125
This makes sure that these components run on machines isolated from other system components and don't content for compute resources during load tests.
126126

127127
Furthermore, kyverno policies are added to the control plane to ensure a static size of etcd, kube-apiserver, and kube-controller-manager (requests=limits for guaranteed resources, disable vertical autoscaling, 4 replicas of kube-apiserver and disable horizontal autoscaling).
128+
Also, kube-controller-manager's client-side rate limiting is disabled (ref https://github.com/timebertt/kubernetes-controller-sharding/pull/610, [SIG api-machinery recommendation](https://kubernetes.slack.com/archives/C0EG7JC6T/p1680889646346859?thread_ts=1680791299.631439&cid=C0EG7JC6T)) and HTTP/2 is disabled so that API requests are distributed across API server instances (ref https://github.com/gardener/gardener/issues/8810).
128129
This is done to make load test experiments more stable and their results more reproducible.
129130

130131
## Measurements

hack/config/policy/controlplane/kube-controller-manager.yaml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ spec:
4646
spec:
4747
updatePolicy:
4848
updateMode: Off
49-
# increases kube-controller-manager's client-side rate limits to speed up garbage collection after executing load tests
50-
- name: increase-rate-limits
49+
# disable kube-controller-manager's client-side rate limits similar to webhosting-operator
50+
- name: disable-rate-limits
5151
match:
5252
any:
5353
- resources:
@@ -59,10 +59,7 @@ spec:
5959
patchesJson6902: |-
6060
- op: add
6161
path: /spec/template/spec/containers/0/command/-
62-
value: "--kube-api-qps=2000"
63-
- op: add
64-
path: /spec/template/spec/containers/0/command/-
65-
value: "--kube-api-burst=2200"
62+
value: "--kube-api-qps=-1"
6663
# disable HTTP2 in kube-controller-manager's so that API requests are distributed across API server instances
6764
- name: disable-http2
6865
match:

0 commit comments

Comments
 (0)