How Do I Configure the Add-on Resource Quotas Based on Cluster Scale?

After changing the cluster scale, adjust the add-on resource quotas based on the cluster scale to ensure that the add-on pods can run properly. For example, if you expand the cluster scale from 50 worker nodes to 200 worker nodes or more, increase the CPU and memory quotas of the add-on pods to avoid exceptions such as OOM caused by too many nodes required for scheduling the add-on pods.

Configuring Resource Quotas for coredns

Queries per Second (QPS) of the coredns add-on is positively correlated with the CPU consumption. If the number of nodes or containers in the cluster grows, the coredns pod will bear heavier workloads. Adjust the number of the coredns pods and their CPU and memory quotas based on the cluster scale.

Table 1 Recommended values for coredns

Node

Recommended Configuration

Pod

CPU Request

CPU Limit

Memory Request

Memory Limit

50

2500 QPS

2

500m

500m

512Mi

512Mi

200

5000 QPS

2

1000m

1000m

1024Mi

1024Mi

1000

10,000 QPS

2

2000m

2000m

2048Mi

2048Mi

2,000

20,000 QPS

4

2000m

2000m

2048Mi

2048Mi

Configuring Resource Quotas for everest

After the cluster scale is adjusted, the everest specifications need to be modified based on the cluster scale and the number of PVCs. The requested CPU and memory can be increased based on the number of nodes and PVCs. For details, see Table 2.

In non-typical scenarios, the formulas for estimating the limit values are as follows:

Table 2 Recommended configuration limits in typical scenarios

Configuration Scenario

everest-csi-controller

everest-csi-driver

Nodes

PVs/PVCs

Add-on Instances

vCPUs (Limit = Requested)

Memory (Limit = Requested)

vCPUs (Limit = Requested)

Memory (Limit = Requested)

50

1000

2

250m

600 MiB

300m

300 MiB

200

1000

2

250m

1 GiB

300m

300 MiB

1000

1000

2

350m

2 GiB

500m

600 MiB

1000

5000

2

450m

3 GiB

500m

600 MiB

2000

5000

2

550m

4 GiB

800m

900 MiB

2000

10000

2

650m

5 GiB

800m

900 MiB

Configuring Resource Quotas for autoscaler

autoscaler automatically adjusts the number of nodes in a cluster based on workloads. Adjust the number of add-on pods and their CPU and memory quotas based on the cluster scale.

Table 3 Recommended values for autoscaler

Node

Pod

CPU Request

CPU Limit

Memory Request

Memory Limit

50

2

1000m

1000m

1000Mi

1000Mi

200

2

4000m

4000m

2000Mi

2000Mi

1,000

2

8000m

8000m

8000Mi

8000Mi

2,000

2

8000m

8000m

8000Mi

8000Mi

Configuring Resource Quotas for volcano

After the cluster scale is increased, the resource quotas required by volcano need to be modified based on the cluster scale.

Table 4 Recommended values for volcano-controller and volcano-scheduler

Nodes/Pods in a Cluster

Requested vCPUs (m)

vCPU Limit (m)

Requested Memory (MiB)

Memory Limit (MiB)

50/5000

500

2000

500

2000

100/10,000

1000

2500

1500

2500

200/20,000

1500

3000

2500

3500

300/30,000

2000

3500

3500

4500

400/40,000

2500

4000

4500

5500

500/50,000

3000

4500

5500

6500

600/60,000

3500

5000

6500

7500

700/70,000

4000

5500

7500

8500

Configuring Resource Quotas for Other Add-ons

Resource quotas of other add-ons may also be insufficient due to cluster scale expansion. If, for example, the CPU or memory usage of the add-on pods increases and even OOM occurs, modify the resource quotas as required.

For example, the resources occupied by the kube-prometheus-stack add-ons are related to the number of pods in the cluster. If the cluster scale is expanded, the number of pods may also grow. In this case, increase the resource quotas of the prometheus pods.