Kubernetes 1.24 默认调度插件与权重详解


✅ Kubernetes 1.24 默认调度插件与权重详解

在 Kubernetes 1.24 中,如果未显式指定 KubeSchedulerConfiguration,调度器会使用默认的调度插件组合及其默认权重。这些插件控制了节点打分逻辑,影响 Pod 最终被分配到哪个节点。


🔧 默认启用的核心调度插件及其权重

插件名称功能简述得分范围默认权重
NodeAffinity根据 Pod 的 nodeAffinity 策略进行匹配打分(包括 preferred 部分)0 - 1002
NodeResourcesBalancedAllocation考虑 CPU、内存、卷资源使用的平衡性来评估节点资源分配合理性0 - 1001
ImageLocality优先选择已有 Pod 所需镜像的节点,减少镜像拉取时间0 - 1001
InterPodAffinity根据 Pod 间的亲和性规则(preferredDuringScheduling)打分0 - 1002
TaintToleration根据节点污点和 Pod 容忍度,PreferNoSchedule 类型的影响进行打分0 - 1003
PodTopologySpread根据拓扑域(如 zone、hostname)进行分布打分,鼓励 Pod 分布均匀0 - 1002

📌 说明:得分区间均为 0~100,最终得分 = 插件得分 × 插件权重,所有得分求和后决定 Pod 最终调度节点。


🔍 核心信息来源与依据

1. 🧭 Kubernetes 官方文档


2. 💻 调度器源码实现(defaults.go)

源码位置:

kubernetes/pkg/scheduler/algorithmprovider/defaults/defaults.go

示例节选(简化版):

func defaultScorePlugins() *config.Plugins {
    return &config.Plugins{
        Score: &config.PluginSet{
            Enabled: []config.Plugin{
                {Name: "NodeResourcesBalancedAllocation", Weight: 1},
                {Name: "ImageLocality", Weight: 1},
                {Name: "NodeAffinity", Weight: 2},
                {Name: "InterPodAffinity", Weight: 2},
                {Name: "TaintToleration", Weight: 3},
                {Name: "PodTopologySpread", Weight: 2},
            },
        },
    }
}

📌 说明:

  • PluginSet 中的 Weight 字段即为各调度插件的默认权重;
  • 调度器启动时若无用户自定义配置,将直接引用此默认逻辑。

3. 🌐 社区实践与技术解读

  • 社区平台如 Stack Overflow、Kubernetes Dev Blog、CNCF Talk 等,经常引用源码及实测分析这些默认权重的合理性;
  • 实践表明,某些插件(如 TaintToleration)默认权重较高,是为了优先确保调度合法性和污点容忍性;
  • 插件之间的得分权重,体现调度器对 资源利用率调度约束 的平衡权重偏好。

✅ 总结

  • Kubernetes 1.24 默认使用一套稳定、成熟的插件配置;
  • 各插件得分结果乘以权重后,参与最终调度决策;
  • 若需自定义调度行为,可通过 KubeSchedulerConfiguration 明确指定插件及权重;
  • 对权重的理解和调整建议结合具体业务目标(资源利用率优先 vs 亲和性优先等)进行。

如你需要进一步解读某个具体插件(如 NodeAffinity 的打分算法、PodTopologySpread 的实现细节等),可以继续深入源码 pkg/scheduler/framework/plugins/ 目录下的对应插件目录。需要我帮你分析某一个插件或权重影响分数计算,也可以继续发问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值