调度器的核心目标是: 将 workload bind 到 resource【workload --bind--> resource】,结合各类信息,将这一目标做到最优。
框架 | 出现时间 | 特点 |
---|---|---|
mesos | 2009, 论文发表于 2011 | 两级模型;灵活通用,有利于定制和融合其他框架(如 hadoop, k8s);核心目标是: run multiple frameworks in the same cluster |
omega | 论文发表于 2013 | 不同于传统的 Monolithic 调度和 Two-level 调度(如 mesos),提出了新的 Shared state 调度器;提出了 lock-free optimistic 的调度实现。核心是 parallelism, shared state, optimistic concurrency control. |
borg | 至少15年历史,论文发表于 2015 | borg 中的概念和 k8s 极其类似:描述式;很好的调度和自愈能力;Job + Task;描述了三个重要的概念 : Priority, Quota, Admission control;一些有用的数据: big shared clusters, fine-grained resource requests + resource estimation/preemption 有利于提高资源利用率 |
kubernetes | 2014 | 提供全面调度能力;不融合其他框架; 对标 borg; 云原生; 对比 mesos,kubernetes 是 run one frameworks for all workload |
volcano | 2018 | 目标是补充 kuberentes 默认调度器对于 batch job 调度的不足,比如:gang; DRF(dominant resource fairness); binpack; proportion (queue); GPUShare; GPUTopoAware 等; 在 kubernetes sheduler 新框架的背景下,volcano 有点类似一组服务特定场景 (batch job)的 sheduler 插件 |
yunikorn | 2019 | 和 mesos 出现的原因背景比较类似,采用的略微不同的思路,没有 executor/scheduler 的概念,而是一层 k8s-shim 或 yarn-shim 作为 adaptor 将调度任务委托给 uni-sheduler-core; 对 yarn 的支持还未完成 |
其他补充:
这部分可以参考 kubernetes 1.15 之后的 scheduer 新实现
------------------------
union sheduler
------------------------
kubernetes yarn
-------- -----------
------------------------
kubernetes with extender/custom scheduler
------------------------
在线任务 离线任务
-------- -----------
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。