作者:Chenggang Shan , Yuanqing Xia , Yufeng Zhan , Jinhui Zhang
作者单位:北京理工大学,北京工业大学
发表期刊:Future Generation Computer Systems
发表日期:2023年7月
一、背景
1、在将工作流系统迁移到Kubernetes平台时,工作流调度算法与Kubernetes在任务调度顺序上的不一致严重降低了工作流系统的执行效率。
2、现有的基于容器的工作流系统与Kubernetes的集成缺乏通用的对接框架,需要各种内置工具和专门的技术支持,这给用户带来了很高的研究成本和不便。
二、创新点
1、设计一个云原生工作流引擎,作为一个对接框架来集成工作流系统和Kubernetes。
2、提出了一种灵活的工作流定义方法来定制工作流,并作为一个接口来容纳由工作流调度算法优化的任务执行序列。
3、实现工作流注入模块、实验评估的资源收集模块和事件触发机制。
4、为工作流任务提供带有资源负载的容器化解决方案,以运行四个真实世界的工作流应用程序。
三、KubeAdaptor框架

KubeAdaptor作为一个对接框架,将工作流系统与K8s进行集成,以保证工作流调度算法优化后的任务执行顺序与K8s的任务pod调度顺序一致。

工作流定义:支持灵活的工作流定义方法,方便用户自定义工作流并有效地与工作流调度算法接口。
工作流注入模块:负责将工作流任务序列注入到 KubeAdaptor 中。
资源收集模块:监控资源波动并呈现资源使用率。
事件触发机制:通过事件调用优化 KubeAdaptor 内部模块的执行效率。
容错管理:确保 KubeAdaptor 的稳定性,处理任务 Pod 创建失败等异常情况。
四、实验及结果
首先通过KubeAdaptor验证工作流调度算法和K8s默认调度程序之间的任务调度顺序的一致性。然后,将提出的KubeAdaptor与批处理作业Argo在工作流执行效率、CPU使用率和内存使用率方面进行比较。

KubeAdaptor运行四个工作流的实验数据对平均值的波动最小,方差较小,反映了实验数据趋于集中,表明KubeAdaptor在连续工作流执行中稳定性高,可靠性较好。此外,更小的平均工作流生命周期反映了KubeAdaptor更高的执行效率。

四个实际工作流在最初250秒内的CPU使用曲线。

四个实际工作流程在最初250秒内的内存使用曲线。
至于平均CPU和内存使用率,可以观察到KubeAdaptor是最好的,其次是Batch Job,而Argo是最差的。原因是KubeAdaptor通过事件触发机制获得了较短的任务pod切换时间。任务pod的切换时间越短,资源利用率越高。
五、总结
1、KubeAdaptor 能够有效地解决工作流系统与 Kubernetes 集成时存在的任务调度一致性问题,并提高工作流系统的执行效率和资源利用率。
2、相比于现有的工作流引擎和批处理作业提交方法,KubeAdaptor 具有明显的优势,是云原生工作流系统的一个理想选择。