请问 k8s 如何将 pod 均匀调度到每个 node 上

2020-08-20 10:04:52 +08:00
 ropon

请问 k8s 如何将 pod 均匀调度到每个 node 上? 目前遇到问题,node 负载不均?

4511 次点击
所在节点    Kubernetes
12 条回复
lixia625
2020-08-20 10:08:09 +08:00
pod affinity?
whileFalse
2020-08-20 10:22:29 +08:00
首先,你的 deployment 给 pod 设置了资源需求 /资源限制吗?
SkyYu822
2020-08-20 10:41:46 +08:00
做个软性的 pod anti affinity
StarUDream
2020-08-20 10:53:28 +08:00
ropon
2020-08-20 12:38:24 +08:00
@StarUDream
你说的亲和性及污点调度
有具体思路吗?目前无头绪
pwli
2020-08-20 12:59:18 +08:00
自己反自己可以不 :)
napsterwu
2020-08-20 13:12:37 +08:00
如果每个 node 有且仅有一个 pod,用 daemonset 。如果只是要均匀分布,就用 anti affinity 。讲真不一定有很大意义,而且可能干扰到 rollingUpdate
hwdef
2020-08-20 14:29:14 +08:00
6 楼的想法比较正确,pod 打个 label,如果 node 上有这个 label 的 pod 了,就反亲和
ManjusakaL
2020-08-20 14:45:35 +08:00
1. 确保资源能够满足需求

2. 给节点打上 Label,可以做亲和性调度

3. Pod 带 Label,用反亲和来做 Pod 打散

4. 亲和和反亲和中具体是用 **requiredDuringSchedulingIgnoredDuringExecution** 还是 **preferredDuringSchedulingIgnoredDuringExecution** 看你自己场景
594duck
2020-08-20 17:21:07 +08:00
你是几台机器做的 K8s 呀。亲和和反亲和是有上限的,这不是解决问题的良药。

良药是什么呢,你现在是 30 台物理服务器跑的 Docker 你把 30 台扩充成 60 台,你会发现问题就解决多了。


那所谓的云原生优势在哪里呢,大佬们会告诉你,你不应该自己安装 K8s,你应该用我们的 K8s 服务,我们有 2000 台服务器帮你做调度。

所以我们选择不搞 K8s,就一个萝卜一个坑蛮好的。萝卜不够了,就临时开机器 加坑。一个月不会比 K8s 反复折腾贵的
dreamusername
2020-08-27 08:58:42 +08:00
楼主的问题是,发现 node 节点的资源利用率不均,这个问题一般用两种方法去尝试解决:
- 亲和性与反亲和性,每个 node 上只存在一个 deploy/sts 的 pod
- 严格的 resources,每个 deploy/sts 均设置 limits 与 requests
但是这两种都上线了以后,还会发现 node 资源利用率不均。
只能换个角度看待这个问题,scheduler 是自带的,如果你已经设置完以上两步,是已经可以满足服务的稳定性了,这时候的问题是成本问题,而不是服务的稳定性问题了。
yuzhiquan
2020-09-16 10:19:27 +08:00
`topologySpreadConstraints`

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

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

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

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

© 2021 V2EX