更新时间:2024-10-14 GMT+08:00

如何根据集群规格调整插件配额?

当您的集群规格调整后,可能需要根据集群规格相应地调整插件资源配额,以确保插件实例能够正常运行。例如,如果您将集群规格从50节点调整为200节点或以上,则需要增加插件CPU、内存配额,防止插件实例因需要调度过多的节点而出现OOM等异常。因此,在调整集群规格后,请您同时考虑调整插件资源配额。

CoreDNS域名解析

CoreDNS所能提供的域名解析QPS与CPU消耗成正相关,集群中的节点/容器数量增加时,CoreDNS实例承受的压力也会同步增加。请根据集群的规模,合理调整插件实例数和容器CPU/内存配额。

表1 CoreDNS插件配额建议

节点数量

推荐配置

实例数

CPU申请值

CPU限制值

内存申请值

内存限制值

50

2500QPS

2

500m

500m

512Mi

512Mi

200

5000QPS

2

1000m

1000m

1024Mi

1024Mi

1000

10000QPS

2

2000m

2000m

2048Mi

2048Mi

2000

20000QPS

4

2000m

2000m

2048Mi

2048Mi

CCE 容器存储(Everest)

集群规格调整后,Everest插件规格需要根据集群的规模和PVC数量进行自定义调整。其中,插件组件的CPU和内存申请值可根据集群节点规模和PVC数量不同进行调整,配置建议请参见表2

非典型场景下,限制值一般估算公式如下:

  • everest-csi-controller:
    • CPU限制值:200及以下节点规模设置为250m;1000节点规模设置为350m;2000节点规模设置为500m。
    • 内存限制值 = (200Mi + 节点数 * 1Mi + PVC数 * 0.2Mi)* 1.2
  • everest-csi-driver:
    • CPU限制值:200及以下节点规模设置为300m;1000节点规模设置为500m;2000节点规模设置为800m。
    • 内存限制值:200及以下节点规模设置为300Mi;1000节点规模设置为600Mi;2000节点规模设置为900Mi。
表2 典型场景组件限制值建议

配置场景

everest-csi-controller组件

everest-csi-driver组件

节点数量

PV/PVC数量

插件实例数

CPU(限制值同申请值)

内存(限制值同申请值)

CPU(限制值同申请值)

内存(限制值同申请值)

50

1000

2

250m

600Mi

300m

300Mi

200

1000

2

250m

1Gi

300m

300Mi

1000

1000

2

350m

2Gi

500m

600Mi

1000

5000

2

450m

3Gi

500m

600Mi

2000

5000

2

550m

4Gi

800m

900Mi

2000

10000

2

650m

5Gi

800m

900Mi

CCE集群弹性引擎

CCE集群弹性引擎插件可根据Pod资源运行的节点负载,自动调整集群中的节点数量。请根据集群的规模,合理调整插件实例数和容器CPU/内存配额。

表3 CCE集群弹性引擎插件配额建议

节点数量

实例数

CPU申请值

CPU限制值

内存申请值

内存限制值

50

2

1000m

1000m

1000Mi

1000Mi

200

2

4000m

4000m

2000Mi

2000Mi

1000

2

8000m

8000m

8000Mi

8000Mi

2000

2

8000m

8000m

8000Mi

8000Mi

Volcano调度器

集群规格调整后,Volcano调度器所需的资源需要根据集群的规模进行自定义调整。

  • 小于100个节点,可使用默认配置,即CPU的申请值为500m,限制值为2000m;内存的申请值为500Mi,限制值为2000Mi。
  • 高于100个节点,每增加100个节点(10000个Pod),建议CPU的申请值增加500m,内存的申请值增加1000Mi;CPU的限制值建议比申请值多1500m,内存的限制值建议比申请值多1000Mi。

    申请值推荐计算公式:

    • CPU申请值:计算“目标节点数 * 目标Pod规模”的值,并在表4中根据“集群节点数 * Pod规模”的计算值进行插值查找,向上取最接近规格的申请值及限制值。

      例如2000节点和2w个Pod的场景下,“目标节点数 * 目标Pod规模”等于4000w,向上取最接近的规格为700/7w(“集群节点数 * Pod规模”等于4900w),因此建议CPU申请值为4000m,限制值为5500m。

    • 内存申请值:建议每1000个节点分配2.4G内存,每1w个Pod分配1G内存,二者叠加进行计算。(该计算方法相比表4中的建议值会存在一定的误差,通过查表或计算均可)

      即:内存申请值 = 目标节点数/1000 * 2.4G + 目标Pod规模/1w * 1G。

      例如2000节点和2w个Pod的场景下,内存申请值 = 2 * 2.4G + 2 * 1G = 6.8G

表4 volcano-controller和volcano-scheduler的建议值

集群节点数/Pod规模

CPU Request(m)

CPU Limit(m)

Memory Request(Mi)

Memory Limit(Mi)

50/5k

500

2000

500

2000

100/1w

1000

2500

1500

2500

200/2w

1500

3000

2500

3500

300/3w

2000

3500

3500

4500

400/4w

2500

4000

4500

5500

500/5w

3000

4500

5500

6500

600/6w

3500

5000

6500

7500

700/7w

4000

5500

7500

8500

其他插件

除上述插件外,其他插件也可能因为集群规模调整而出现分配资源不足的情况,如您发现插件实例CPU或内存使用率明显增加,甚至出现OOM或无法运行的状况,请根据情况调整资源配额。

例如CCE容器监控插件占用的资源与集群中的容器数量相关,当集群规模调整后,容器数量可能同步增加,需要适当调大插件实例的资源配额。