[发明专利]基于k8s的工作流引擎的使用方法及装置有效
申请号: | 202110317914.0 | 申请日: | 2021-03-25 |
公开(公告)号: | CN113110923B | 公开(公告)日: | 2023-10-20 |
发明(设计)人: | 蔡飞;顾海林 | 申请(专利权)人: | 南京飞灵智能科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 南京协行知识产权代理事务所(普通合伙) 32493 | 代理人: | 郑立发 |
地址: | 210000 江苏省南京市建邺区*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 k8s 工作流 引擎 使用方法 装置 | ||
本发明提供了一种基于k8s的工作流引擎的使用方法及装置,其中,基于k8s的工作流引擎的使用方法提供统一模式的工作流创建、调度、运行、升级、终止等功能;具有良好的项目架构,便于需求扩展和协同开发以及维护;可以扩展支持定时调度、优先级调度、事件触发机制。
技术领域
本发明属于工作流引擎使用领域,具体涉及一种基于k8s的工作流引擎的使用方法及装置。
背景技术
现有技术中的工作流引擎采用的kubernetes+docker的架构,k8s自带的工作流仅能应付简单的Job(工作)和Deployment(部署)任务。
然而,面向的人工智能和大数据,就不可避免的要支持各种框架的编排,如Spark、Tensorflow等批处理,又如kafka等流处理,另外还需要支持定时任务的调度。
现有的工作流引擎并不能满足上述情况的使用需求。
发明内容
本发明所要解决的技术问题是提供一种基于k8s的工作流引擎的使用方法及装置。
本发明解决其技术问题所采用的技术方案是:提供了一种基于k8s的工作流引擎的使用方法,包括:
调用执行管理提供的api接口提交任务创建申请;
通过执行管理将各微服务提交的任务创建请求数据转换后发送给工作流引擎;
工作流引擎根据接收的转换后的任务创建请求数据创建工作流对象;
依据工作流对象获取pod创建请求并发送给k8s;
k8s依据接收的pod创建请求通过kubelet创建对应的Pod;
通过任务调度引擎将pod创建成功反馈给对应的微服务。
进一步的,所述工作流引擎根据接收的转换后的任务创建请求数据创建工作流对象的方法包括:
获取任务创建请求数据;
工作流控制器基于client-go提供的informer机制,对工作流接收的任务创建请求数据触发的事件实用一个队列进行缓冲和处理并创建工作流对象。
进一步的,所述工作流控制器基于client-go提供的informer机制,对工作流接收的任务创建请求数据触发的事件实用一个队列进行缓冲和处理并创建工作流对象的方法,即:
工作流接收的任务创建请求数据所有触发的事件生成一个key并投递到队列中,然后多个goroutine并发的去从队列中获取key,并获取对应的Workflow进行处理,完成工作流对象的创建。
进一步的,所述工作流对象包括包括TypeMeta,ObjectMeta,Spec,Status。
进一步的,在工作流控制器基于client-go提供的informer机制,对工作流接收的任务创建请求数据触发的事件实用一个队列进行缓冲和处理并创建工作流对象的同时,所述工作流引擎根据接收的转换后的任务创建请求数据创建工作流对象的方法还包括:
基于Informer机制对工作流进行监听;
对所有类型的node创建相应的Informer进行监听,并将node的时间投递到与任务创建请求数据对应的事件队列。
进一步的,提交任务创建申请的微服务包括project-manager、iflow-manager以及data-manager中的一种或多种。
进一步的,所述k8s依据接收的pod创建请求通过kubelet创建对应的Pod的方法包括:
获取pod创建请求对应的资源和限制要求;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京飞灵智能科技有限公司,未经南京飞灵智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110317914.0/2.html,转载请声明来源钻瓜专利网。