当前位置:   article > 正文

k8s tfjob批调度-volcano调研_kubeflow volcano

kubeflow volcano

背景

最近工作聚焦在机器学习这块,公司采用的kubeflow框架中的tfjob,利用tersorflow进行分布式训练。
在训练过程中,发现在整体资源不足的情况下,由于k8s默认调度器调度的粒度是pod,但是tfjob可能对应多个pod, 多个tfjob可能会互相争抢资源而陷入资源死锁
于是开始调研解决方案,优先考虑开源的方案,最终发现2种解决方案:

  1. 第一种是kube-batch及从此之上衍生的volcano, 可以作为k8s第二调度器,对机器学习、大数据等job类任务批调度做了特殊优化
  2. 第二种是k8s默认调度器自1.16版本后开始支持批调度插件,原生就支持批调度

由于公司的k8s是1.13, 升级k8s版本可能会有未知的异常,决定优先调研volcano

volcano调研

项目路径:https://github.com/volcano-sh/volcano

volcano是华为云开源的针对ai/大数据场景的批调度服务,脱胎于kube-batch, kube-batch是kubeflow原生的批调度器项目,volcano在此基础上提供了增强型的volcano scheduler, 并且还添加了更多的特性,例如提供了一个contorller manager用于管理volcano自己可拓展的crd job (相当于实现了一个operator)、queue、podgroup等资源,还有vctl命令行工具。

volcano调度过程如下:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/975563
推荐阅读
相关标签
  

闽ICP备14008679号