
22

ML调度服务之kube-batch
source link: https://blog.csdn.net/oqqYuan1234567890/article/details/105570135
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

gang scheduler:
翻译应该是,群调度。也就是一个调度单元以一个群(多个pod)为单元,当所有pod同时成功,就是成功的
关于k8s scheduler的功能实现,可以参考知乎专栏https://zhuanlan.zhihu.com/p/101908480,里面是以1.16版本作为参考的,质量比较高。
从pod到multi pod的调度
pod是k8s的最小调度单元,但是,群调度需要在上面做一层封装。一般会设计一层CRD,监听CRD的资源,做相应的逻辑控制。
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: 多个租户下的资源共享,但是个
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK