k8s 里多个 pods 能共享一套 cpu/内存限制吗?

2021-07-11 00:12:20 +08:00
 felixin

比如我有 100 个 pods,总共给它们分配 8c/32g,有什么手段可以办到吗?

这些 pods 大部分时间只有少部分活动,其他的都在待机状态,只耗内存不耗 cpu

3201 次点击
所在节点    Kubernetes
20 条回复
felixin
2021-07-11 00:13:14 +08:00
不能在一个 pod 里装多个 container,因为端口,文件系统会冲突
515576745
2021-07-11 02:59:09 +08:00
pod 模板指定 resource request 和 limit
kaikai5601
2021-07-11 10:04:45 +08:00
在一个 namespace 下面可以,分配 ns 限制
vhui
2021-07-11 11:57:59 +08:00
resourcequota ?
liuxu
2021-07-11 13:40:41 +08:00
ns 限制是正解
felixin
2021-07-11 20:48:26 +08:00
@kaikai5601 这个好像是指该 ns 下的 pod 的资源 limit 总和,也就是说比如创建 100 个 pod 的话,每个 pod 上写的 limit 不能超过总数 8c/100=0.08c ,这样他们加起来才是总数 8c 。

但我需要的是每一个 pod 的 limit 都是 8c,100 个 pod 的总 limit 也是 8c,这个好像是做不到的?

也就是如果有前面一个 pod 占用了全部的 8c,那么后面的 pod 可以完全无响应。最差情况下允许有 99 个完全无法运行的 pod 。
kaikai5601
2021-07-12 00:25:11 +08:00
@felixin 做不到,你 limit 不够,apiserver 不会接受你创建 pod 的请求了。你这样做的意义是啥。?
littlezzll
2021-07-12 00:44:17 +08:00
limitrange default? Pod 不指定 resource 就走默认的 limitrange
turingli
2021-07-12 07:12:46 +08:00
不限制 pod 只限制 ns
Abirdcfly
2021-07-12 09:05:22 +08:00
miaoshixuan
2021-07-12 09:38:48 +08:00
k8s 做不到的
lvzhiqiang
2021-07-12 10:42:22 +08:00
共享一套限制可以从 NS 层级去控制,POD 设置一个默认的限制,但是目前没办法根据应用 POD 的状态去调整 POD 的内存用量,内存你一旦分配出去,除非杀掉,否则内存是回收不回来,除非你应用如果不重要的话,通过流量请求唤醒,我觉得有可能实现,但是这又会引生其它问题。
felixin
2021-07-12 11:18:39 +08:00
@kaikai5601 就是一套插件系统允许用户上传自己的容器镜像生成 pod,但是大多数 pod 只有个位数的请求量,长期占用 cpu 资源太浪费了
felixin
2021-07-12 11:20:18 +08:00
@lvzhiqiang 流量唤醒这个思路可以试试
kaikai5601
2021-07-12 11:58:22 +08:00
@felixin 建议直接 pod 限制,如果用户有操作的话配置 HPA,自动扩容,用户操作结束自动缩
salmon5
2021-07-12 11:59:19 +08:00
可以配置,这种是 Burstable level 的 pod
limit > request,可以大很多;
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 8000m
memory: 16Gi
可以运行 160 个 pod
noahzh
2021-07-12 14:50:00 +08:00
不限制不就完了。
salmon5
2021-07-13 09:24:39 +08:00
@noahzh 不限制不行,它有默认值
felixin
2021-07-13 09:27:09 +08:00
@salmon5 谢谢,找了点资料

https://www.weave.works/blog/kubernetes-pod-resource-limitations-and-quality-of-service
felixin
2021-07-13 09:29:47 +08:00

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

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

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

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

© 2021 V2EX