K8S 集群遇到负载不均衡的问题。

BenchWidth · 2024-9-5 19:35:15 · 199 次点击
服务器配置:5 台 4 核 8G Centos7 系统 ,3 台 8 核 16G ubuntu 20.24

kubelet:1.23.17

docker:26.1.3

使用 kubeadm 部署的集群

我部署的其他应用都够正常的调度到三台配置较高的 ubuntu 机器上,只有新部署的 spring cloud 服务不自动调度到配置较高的 ubuntu 机器上。直到那几台 centos7 服务器被挤爆了,k8s 也不会将服务器调度到其他机器上。

我没有设置污点也没有设置亲和性。

我把 5 台 centos7 服务器禁止调度之后,k8s 才会将服务部署到 ubuntu 服务器上
举报· 199 次点击
登录 注册 站外分享
11 条回复  
seers 小成 2024-9-5 19:52:24
检查下 limit 和 require 吧,资源不够是不会调度过去的
zhoudaiyu 小成 2024-9-5 19:53:14
用 podantiaffnity 试试
hallDrawnel 小成 2024-9-5 20:18:00
去掉敏感信息贴下完整的 deployment yaml 描述
Frankcox 小成 2024-9-5 20:48:10
通过 NodeSelector 或者硬亲和强制指到节点上,看看是否 Pending
mightybruce 小成 2024-9-5 20:57:40
k8s 调度本身是基于 linux 内核的完全公平调度器 CFS, 要想做到绝对均衡的调度是不可能的,想实现一些特定的调度可以用 K8s 调度框架来实现插件,
简单的做法就是给机器打上各种标签,然后用 nodeselector 就好了。
yanbo92 小成 2024-9-5 20:58:07
有同样经历,我的调法是把 kube-scheduler 日志等级到 10 或者 11 ,看每个插件打分的结果来微调插件权重。可以参考这篇文章: https://midbai.com/post/scheduler-always-place-pod-on-the-same-node/
rbaloatiw 小成 2024-9-6 00:38:20
@mightybruce #8
> k8s 调度本身是基于 linux 内核的完全公平调度器 CFS
这个说的应该不是 kube-scheduler 吧?

我也会使用 #9 的做法, 通过日志来查看每个插件的打分结果
assassing 小成 2024-9-6 00:43:51
同样有这个困扰,默认调度策略似乎倾向于用满一台服务器再分配到下一台。我用的版本还是 1.22 ,不知道后面更新版本情况怎样?
ryan4yin 小成 2024-9-6 09:36:27
#5 你 limits 跟 requests 都没配,这怎么让 k8s 调度,k8s 管理资源的核心逻辑是 HPA VPA 动态扩缩容,不是把旧的 Pod 删掉,在大机器上给你跑个新的。
建议找个 k8s 教程先学一学吧。
12下一页
返回顶部