Skip to content

destinysky/k8s-scheduler

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

k8s-scheduler

设计:

  1. 利用kubernetes scheduler framework提供的插件形式,自定义kubernetes的调度器
  2. 采用bin packing装箱算法实现kubernetes的调度
  3. 首先通过扩展queueSort插件,排序目前等待调度的pods队列,优先调度cpu(核数)+Mem(KB)小的pods
  4. 然后扩展score插件,根据目前node上的pod数量评分len(pods)*10,这样优先调度pods数多的node节点
  5. 由此解决尽可能少占用node节点的装箱问题

编译:

binary

$ make local

image

$ make image

运行

部署自定义调度器

$ kubectl apply -f ./deploy/bin-packing-plugin.yaml

测试

$ kubectl apply -f ./deploy/test.yaml

Releases

No releases published

Packages

No packages published

Languages

  • Go 87.4%
  • Makefile 9.8%
  • Dockerfile 2.8%