基于负载测试环境计算Kubernetes Limit Range与Resource Quota配置
Kubernetes Limit Range与Resource Quota配置计算(基于负载测试环境)
我希望基于负载测试(LT)环境规模,计算Kubernetes中合适的Limit Range和Resource Quota配置,目标是保持LT环境的灵活性,以此摸索合理的资源限制设置,若我对其工作原理存在基础性误解,欢迎指正。
请问是否有考虑以下因素的计算公式或参考方案(无需绝对精确,仅作为起步参考):
- 容器CPU
- 容器内存
当前数据获取方式
目前我通过以下命令获取Pod的CPU限制(内存同理,搭配shell脚本完成完整计算):
kubectl get pods -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[].resource.limits.cpu}{"\n"}{end}' -n my-namespace
我们已确保所有容器都明确配置了CPU/内存请求,因此该命令可正常工作。
节点配置说明
节点机型由测试结果和单节点目标Pod数确定,我们使用nodeSelector隔离特定需求的服务,同时适配多种机型。
Limit Range初步配置思路
取单容器最大CPU/内存值 + 10%(确保节点机型可容纳2倍该计算值),配置示例如下:
apiVersion: v1 kind: LimitRange metadata: name: ns-my-namespace namespace: my-namespace spec: limits: - max: cpu: [calculation_from_above] memory: [calculation_from_above] type: Container
Resource Quota初步配置思路
取LT环境总CPU/内存值 + 50%以应对HPA紧急扩容溢出,配置示例如下(已修正语法错误):
apiVersion: v1 kind: ResourceQuota metadata: name: ns-my-namespace namespace: my-namespace spec: hard: limits.cpu: [calculation_from_above] limits.memory: [calculation_from_above]
原配置中嵌套的limits块写法不符合ResourceQuota的语法规范,正确写法是使用limits.cpu和limits.memory直接指定资源限制总和。
内容的提问来源于stack exchange,提问作者el n00b
相关产品推荐
相关产品推荐

