Archive for kubernetes

scheduler.New() 定义在kubernetes/pkg/scheduler/scheduler.go 返回一个Scheduler type Scheduler struct { config *factory.Config } 首先先用New传过来的参数替换schedulerOptions默认配置 type schedulerOptions struct { // 调度器的名字,pod创建的时候可以根据这个名字选择使用哪个调度器,默认值"default-scheduler" schedulerName string // hardPodAffinitySymmetricWeight int32 disablePreemption bool percentageOfNodesToScore int32 bindTimeoutSeconds int64 } 然后调用factory.NewConfigFactory

Continue

代码读的master上最新的 1641ff411. 命令入口文件在kubernetes/cmd/kube-scheduler/scheduler.go 主要就两句,设置启动参数。其他的设置命令行参数和日志打印。具体不看了 command := app.NewSchedulerCommand() command.Execute(); NewSchedulerCommand 在文件kubernetes/cmd/kube-scheduler/app/server.go 很多代码都是设置scheduler命令参数的,也是用的cobra这个库,跟docker是一样的。 opts, err := options.NewOptions() 读取默认配置 runCommand()执行命令 runCommand 比较有用的几行: c, err := opts.Config() 这里边东西比较多,比如初始化kube-client与api交互,eventclient,选举相关的配置。没仔细看,代码在kubernetes/cmd/kube-scheduler/ap

Continue