You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8s 1.20/EKS调度器未自动重平衡节点内存分布问题咨询

K8s 1.20版本调度器未自动平衡节点内存占用的原因

核心原因

Kubernetes默认调度器的定位是Pod调度时点的一次性决策组件,不具备运行时主动重平衡负载的能力,具体可分为以下几点:

  • 触发逻辑限制:默认调度器仅在Pod出现待调度事件时才会执行节点选择逻辑,比如Pod首次创建、故障重建、被驱逐后重新调度等场景,不会持续扫描节点负载差异、主动迁移正常运行中的Pod,避免给业务带来不必要的中断。
  • 调度参考指标限制:1.20版本默认调度策略的打分逻辑,仅参考Pod声明的resources.requests和resources.limits值计算节点资源余量,不会纳入kubectl top采集的节点实际运行时内存占用数据。如果你的业务副本配置的内存request值远低于实际运行占用,调度阶段会误判低内存节点的可用资源充足,导致Pod集中调度到部分节点,后续实际用量上涨后也不会触发重新调度。
  • 无内置重平衡能力:K8s集群默认不搭载负载重平衡组件,若需要基于节点实际负载自动迁移Pod,需要单独部署官方的Descheduler组件,自定义配置基于内存使用率的驱逐策略,才能实现你预期的节点内存自动均衡效果。

集群指标参考

/snap/bin/kubectl version
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.12", GitCommit:"4bf2e32bb2b9fdeea19ff7cdc1fb51fb295ec407", GitTreeState:"clean", BuildDate:"2021-10-29T02:43:48Z", GoVersion:"go1.15.15", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20+", GitVersion:"v1.20.7-eks-d88609", GitCommit:"d886092805d5cc3a47ed5cf0c43de38ce442dfcb", GitTreeState:"clean", BuildDate:"2021-07-31T00:29:12Z", GoVersion:"go1.15.12", Compiler:"gc", Platform:"linux/amd64"}
kubectl top nodes
NAME                                         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
some-ip.eu-west-2.compute.internal    112m         2%     2238Mi          33%
some-ip.eu-west-2.compute.internal   859m         5%     14881Mi         52%
some-ip.eu-west-2.compute.internal    887m         5%     18485Mi         65%
some-ip.eu-west-2.compute.internal   1900m        11%    27727Mi         97%
some-ip.eu-west-2.compute.internal   368m         9%     3975Mi          60%
some-ip.eu-west-2.compute.internal   196m         5%     3602Mi          53%
some-ip.eu-west-2.compute.internal   1450m        9%     27539Mi         97%

内容的提问来源于stack exchange,提问作者anVzdGFub3RoZXJodW1hbg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:45:05