[发明专利]一种基于Kubernetes集群周期性任务调度的方法及电子设备在审
申请号: | 202010127872.X | 申请日: | 2020-02-28 |
公开(公告)号: | CN113326107A | 公开(公告)日: | 2021-08-31 |
发明(设计)人: | 张建学;李小飞;周健 | 申请(专利权)人: | 中科星图股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京华专卓海知识产权代理事务所(普通合伙) 11664 | 代理人: | 张继鑫 |
地址: | 101399 北京市顺义区临空经济核*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 kubernetes 集群 周期性 任务 调度 方法 电子设备 | ||
本发明的实施例提供了一种基于Kubernetes集群周期性任务调度的方法和电子设备。所述方法包括在Linux系统环境下生成CRD资源;在所述生成的CRD资源的基础环境下创建Controller组件;在Kubernetes环境下将创建Controller组件后的CRD资源集成到Kubernetes中。以此方式,降低了系统的复杂性和维护成本,增强了周期性任务执行的健壮性,能够满足限制具体运行时间或运行次数的任务需求,保证服务的持续化运行。
技术领域
本发明的实施例一般涉及互联网通信技术领域,并且更具体地,涉及一种基于Kubernetes集群周期性任务调度的方法及电子设备。
背景技术
周期性服务是指服务按照设定的间隔时间进行正常的启停,完成不同时间相同服务的运转。通过周期性结果对比能够得出固定时间段内的变化规律。
现有的周期性服务的实现方法主要有两种:
(1)调用第三方工具包,比如Java中的Timer和TimerTask,Python的APScheduler定时框架等。
(2)系统自带的定时任务服务,比如Linux Crontab,Kubernetes的CronJob等。
针对(1),调用第三方的工具服务需要与本地服务紧耦合在一起,一旦本地服务遇到问题导致服务异常甚至宕机,定时器任务也会终止,无法再执行定时任务,更无法保证后续任务的正常执行。
针对(2),系统级别的定时任务都是基于cron语法,能够保证任务的周期性定时运行,但是cron语法无法设置周期性任务的结束时间,如果不在外界干扰的情况下,cron任务会持续执行,这对执行次数有限制的任务来说是不满足需求的。
综上,现有的周期性服务的服务健壮性差,无法保证服务的持续化运行,而且无法执行对执行次数有限制的任务。
发明内容
根据本发明的实施例,提供了一种基于Kubernetes集群周期性任务调度的方案。
在本发明的第一方面,提供了一种基于Kubernetes集群周期性任务调度的方法。该方法包括:
在Linux系统环境下,生成CRD资源;
在所述生成的CRD资源的基础环境下,创建Controller组件;
在Kubernetes环境下,将创建Controller组件后的CRD资源集成到Kubernetes中。
进一步地,所述生成CRD资源,包括:
使用Operator-sdk创建项目工程,并添加CRD资源;
定义所述CRD资源的status结构体和spec结构体;
针对所述CRD资源的status结构体和spec结构体的定义生成框架代码。
进一步地,所述status结构体包括:活跃Job的数组、最后一次Job调度的时间以及已经调度成功Job的次数。
进一步地,所述spec结构体包括:调度策略定义、启动Job的期限、创建Job的并发执行策略、暂停标志位、保留完成Job数量的限制、保留失败Job数量的限制以及调度成功Job的个数限制。
进一步地,所述在所述生成的CRD资源的基础环境下,创建Controller组件,包括:
使用Operator-sdk创建Controller组件框架结构;
定义Job的删除过程以及定义Job的增加过程;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科星图股份有限公司,未经中科星图股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010127872.X/2.html,转载请声明来源钻瓜专利网。