各位工作的公司生产 k8s 是怎么维护应用的 request 和 limit 的?

2025 年 1 月 24 日
 zhoudaiyu
首次上线的时候怎么定?靠压力测试?后续应用不停上线、甚至改配置可能会导致内存、cpu 的变化,如何持续迭代更新每个应用的 request 和 limit 呢?
4106 次点击
所在节点    Kubernetes
15 条回复
mooyo
2025 年 1 月 25 日
我印象中 request 还不能太小,忘了啥原因。

我们之前是所有 pod 固定的 request 和 limit ( request:2 limit:8 ),靠 pod 数量来伸缩,极个别特殊的 pod 手动调整。
zhoudaiyu
2025 年 1 月 25 日
@mooyo 当机器的 cpu 打满了,会按这台机器的 pod 的 request 比例去分 cpu
vkillwucy
2025 年 1 月 25 日
用不明白,就设置一样😁
looplj
2025 年 1 月 25 日
初始化一般业务评估就行,业务对自己的业务量应该有点数。
然后监控使用率,使用率太低,推进调低,使用率高,推荐提高。
xavi818
2025 年 1 月 25 日
用 vpa 给你推荐下资源配置
zhoudaiyu
2025 年 1 月 25 日
@xavi818 这个可以,但是第一次上线的时候好像推荐不出来吧
@vkillwucy 我们就是差不多都一样的,但是其实资源使用率差的挺多的
@ZSeptember 业务根本不懂这些,也不管,所以都得靠我们运维推,太难了
stormtrooperx5
2025 年 1 月 25 日
很难搞,我们还因为 req 设置不合理出过线上故障
billzhuang
2025 年 1 月 25 日
设置好 hpa 和 autoscaler
xiaogu2014
2025 年 1 月 25 日
刚上线的时候会设置一个大概的 request 和 limit 。(自己决定哦。同时得配合 hpa )
后续有一个 tuned request 和 limit 会附加上去。(这块应该是 infra 组来做的。来根据历史来帮你调整。能节省不少资源)
同时后续应用不停上线 cpu 也不会急剧上升。👆会自己帮你调整。当然你得设置好 hpa 来应对突发情况。
7h0m25
2025 年 1 月 26 日
之前维护的比较多的是 Java 项目,Java 项目很多启动的时候会给你一个默认的资源需求参数,稍稍加大一点设置为 request 就好。Limit 的就得看你自己的经验和在测试环境里的压测评估结果来预估了。
之前公司的开发都是外包给三方团队的,代码很垃圾,最夸张的一个 Java 项目启动要四分半才能起来。一开始是让那些开发自己估(毕竟开发才是最清楚自己写的是一堆什么 shit ),结果估了几次给出的参数都是非常离谱的。
NaVient
2025 年 1 月 26 日
这个在每个公司都是难点,可以一开始设置大一些,后续看监控数据再慢慢缩
IndexOutOfBounds
2025 年 1 月 26 日
limit 一般是 Request 的两倍到四倍,太高超卖谁也用不高
Request 大概估个范围 + HPA
IndexOutOfBounds
2025 年 1 月 26 日
HPA 还可以基于自定义指标,比如 QPS ,这样后续维护只需要关注每个请求的资源变化就可以了
westlife66
2025 年 1 月 27 日
Limit 一般可不用设置。设置了会影响瞬时处理器资源分配。特别是对于有低延迟需求的服务来说,会极大拉长 p95 以上的延迟。这方面有很多文档在讲解,可以谷歌看看
Request 一般是跑压力测试综合性能指标评估下单 pod 负载。找到一个合理的,适合扩容缩容的资源。
westlife66
2025 年 1 月 27 日
刚说的是 cpu 的配置,如果有个别服务处理器资源占用比较厉害的,可能影响整个集群其它服务的,还是需要限制,具体问题具体分析。

至于内存配置看情况,limit 一定要设置,而且多数情况 Request = Limit ,这样能保证内存分配可用性。具体多少还是压力测试来

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

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

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

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

© 2021 V2EX