k8s scheduler framework 配置weight不生效的问题

跟踪代码发现由于配置的pluginName都是同一个name应用在了不同的extensonPoint上,所以在初始化的时候被覆盖掉。

func (f *framework) pluginsNeeded(plugins *config.Plugins) map[string]config.Plugin {
	pgMap := make(map[string]config.Plugin)

	if plugins == nil {
		return pgMap
	}

	find := func(pgs *config.PluginSet) {
		if pgs == nil {
			return
		}
		for _, pg := range pgs.Enabled {
			pgMap[pg.Name] = pg
		}
	}
	for _, e := range f.getExtensionPoints(plugins) {
		find(e.plugins)
	}
	return pgMap
}

  

由于是按照name来设置的map所以如果在plugin.yaml配置文件中设置一个扩展点的weight是不行的。

最后只能全部设置了weight

原文地址:https://www.cnblogs.com/xuchenCN/p/14837285.html