本文作为Kubernetes Scheduler源码分析的番外篇,补充一个方面的分析:从源码层面解析kube-scheduler的默认配置是怎么做的。
从头来看,在kube-scheduler的main函数中,s := options.NewSchedulerServer()
创建SchedulerServer时,是按照默认参数创建的。
--- plugin/cmd/kube-scheduler/scheduler.go:30 ---
func main() {
s := options.NewSchedulerServer()
s.AddFlags(pflag.CommandLine)
flag.InitFlags()
logs.InitLogs()
defer logs.FlushLogs()
verflag.PrintAndExitIfRequested()
if err := app.Run(s); err != nil {
glog.Fatalf("scheduler app failed to run: %v", err)
}
}
--- plugin/cmd/kube-scheduler/app/options/options.go:44 ---
// NewSchedulerServer creates a new SchedulerServer with default parameters
func NewSchedulerServer() *SchedulerServer {
versioned := &a