ML调度服务之kube-batch
gang scheduler:翻译应该是,群调度。也就是一个调度单元以一个群(多个pod)为单元,当所有pod同时成功,就是成功的关于k8s scheduler的功能实现,可以参考知乎专栏https://zhuanlan.zhihu.com/p/101908480,里面是以1.16版本作为参考的,质量比较高。从pod到multi pod的调度pod是k8s的最小调度单元,但是,群调度需要在...
·
gang scheduler:
翻译应该是,群调度。也就是一个调度单元以一个群(多个pod)为单元,当所有pod同时成功,就是成功的
关于k8s scheduler的功能实现,可以参考知乎专栏https://zhuanlan.zhihu.com/p/101908480,里面是以1.16版本作为参考的,质量比较高。
从pod到multi pod的调度
pod是k8s的最小调度单元,但是,群调度需要在上面做一层封装。一般会设计一层CRD,监听CRD的资源,做相应的逻辑控制。
argo
argo工作流调度工具,就是这种思路,具体架构和文档可以参考github说明。argo支持quick failover,也就是DAG工作流的一个环节failed了,整个任务就failed。
kube-batch
argo是一个比较朴素的工具,对于ML/DL任务,通常是分布式训练,可能会有很多个pod,这个时候Workflow Spec就会变得很复杂。在这种情况下,kube-batch就派上用场了
https://github.com/kubernetes-sigs/kube-batch
kube-batch提供两个核心功能
- batch scheduling: 批量调度任务
- resource shaing between multi-tenant: 多个租户下的资源共享,但是个
更多推荐
已为社区贡献5条内容
所有评论(0)