Scheduling Framework

2019-11-03  本文已影响0人  allenhaozi

背景

随着Kubernetes被越来越多的个人及公司使用, 需要越来越强大的调度能力, 面对不同的或者更复杂的场景, 调度器就会添加更多的特性来满足, 代码量会越来越大, 逻辑更复杂, 这样维护成本越来越大, 同时提供webhook的方式扩展调度, 让用户可以根据自己实际场景来来开发自定义的调度器, 但是自定义调度器也存在诸多问题

scheduling framework 解决如上问题, 提供了

调度过程

Scheduling Cycle & Binding Cycle

  1. Scheduling Cycle

调度逻辑, 这个逻辑运行各种插件, 完成一个将Pod绑定到一个Node上, 这个是一个串行的过程

  1. Binding Cycle

绑定逻辑, 负责将调度结果落地到集群中, 这是一个可以并行的结果

如下图


20180409-scheduling-framework-extensions.png

Reserve plugin

调度逻辑的最后一个插件, 防止调度成功后资源的竞争, 确保集群的资源视图准确, 也是串行逻辑的最后一个流程, 生命周期随着unreserve 或者 Post-bind 成功

Permit 插件

提供阻止或者延迟一个Pod的绑定( 牛逼的设计)

原文地址

上一篇下一篇

猜你喜欢

热点阅读