字节跳动开源 Gödel Scheduler:在离线统一调度器

字节跳动宣布基于 Kubernetes 系统自研分布式调度器:Gödel Scheduler。一个能统一调度在线和离线业务的分布式调度器,能在满足在离线业务功能和性能需求的前提下,提供良好的扩展性和调度质量。

具备如下主要特点:

架构如下图所示:

Gödel Scheduler 由三个组件组成:Dispatcher、Scheduler和Binder。其中,Scheduler 组件是多实例,乐观并发调度, Dispatcher 和 Binder 则是单实例。

公告指出,在过去两年里,Gödel Scheduler 已在字节跳动内部大规模落地,提供丰富的调度语义和功能,包括但不限于 Gang、Job level affinity、微拓扑调度、丰富的排队策略、抢占策略以及调度策略等,它高效稳定地支撑着抖音、今日头条等内部多种复杂业务的运行。

除了架构优化以外,项目团队还基于以前优化 Kubernetes 原生调度器的经验,对 Gödel Scheduler 的实现进行了更深度的性能优化。结合内部优化过的 Kubernetes 系统,Gödel 调度器单分片吞吐可达2000+ Pods/s, 多分片可达5000+ Pods/s。并基于此不断提升单集群规模,目前字节跳动内部最大的线上单集群规模已经达到20000+节点、100w+ Pods。

经过内部多年反复验证,目前Gödel 系统已达相对稳定状态。

未来,开源团队计划持续迭代 Gödel scheduler,提供更加丰富的功能和更好的扩展性,不断优化一些特殊场景下(比如高部署率,高抢占频率等)的调度吞吐。同时,通过重调度的方式希望解决调度性能和调度质量难兼顾的难题,在保证调度吞吐的基础上,大幅提升调度质量。以及注重生态建设,兼容适配业务主流的系统和框架。

未经允许不得转载:岩猫星空网 » 字节跳动开源 Gödel Scheduler:在离线统一调度器