Kubernetes 资源限制要不要限制 CPU

2023-04-11 09:08:05 +08:00
 seagull7558
硬件资源: 一台超融合服务器 虚拟了很多很多非常多 CPU 出来,作为某个 node 节点

问题 1: 所有应用不限制 CPU,但是 springboot 应用启动的非常慢 我本地 docker --cpuset-cpus="1" 测试了下 只需要一分钟 但是服务器上需要三分钟才能运行起来

解决: 没解决

问题 2: 所有应用不限制 CPU 调度的时候死摁着某一个配置较好的 node 薅

解决: 应用添加 CPU 限制 node 节点配置 CPU 限制 并配置预留资源

问题 3: 所有应用在限制 CPU 之后 整个节点的 CPU 利用率较低 20% 这也是我感觉矛盾的一个点 配置了限制就会有浪费 不配置限制 就会造成调度不均衡

注: 我是开发 k8s 只用在开发和测试环境方便我们使用 helm 随时拉起来一套环境并在不需要的时候随时回收 没有很深入学习过
1893 次点击
所在节点    Kubernetes
8 条回复
dayeye2006199
2023-04-11 09:10:10 +08:00
没有 limit 也是有个默认值的
Aumujun
2023-04-11 09:23:25 +08:00
先不要限制,把 metrics 弄出来监控一段时间取峰值,不要随意设置 limits 。
MonkeyJon
2023-04-11 09:30:57 +08:00
我们项目发现,限制资源小于 0.5 会导致服务启动巨慢
billzhuang
2023-04-11 09:51:28 +08:00
我一般 CPU 是 requests 设置一个合适的值,limits 设置很大。
zhoudaiyu
2023-04-11 09:52:50 +08:00
可以先限制宽松一点,然后跑一段观察 Prometheus 的 CPU 使用时间和被 Throttle 时间去决定分配多少 Core 合适
nicholasxuu
2023-04-11 10:12:59 +08:00
request 决定 pod 被分配到哪个 node 上,32 核的机器,cpu request 之和到 32 就不会编排新 pod 了。
limit 决定单个 pod 最多能用多少。
cpu limit 建议至少 1 ,不然相当于被强制限速。
然后用 CPU request 来设计 pod 的分布,一般是按启动后稳定下来的 CPU 使用量估算,防止把 node 撑爆。
hyperdak288
2023-04-11 10:21:04 +08:00
按 cpu throttling 按分配
hzfyjgw
2023-04-11 10:28:41 +08:00
cpu 资源属于可压缩资源,建议只分配 requests, 不设置 limits

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/931432

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX