CN113641480B - 一种基于Kubernetes集群组的任务调度系统及方法 - Google Patents

一种基于Kubernetes集群组的任务调度系统及方法 Download PDF

Info

Publication number
CN113641480B
CN113641480B CN202110997268.7A CN202110997268A CN113641480B CN 113641480 B CN113641480 B CN 113641480B CN 202110997268 A CN202110997268 A CN 202110997268A CN 113641480 B CN113641480 B CN 113641480B
Authority
CN
China
Prior art keywords
task
construction
scheduling
kubernetes cluster
pod
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110997268.7A
Other languages
English (en)
Other versions
CN113641480A (zh
Inventor
李军
杨平
宋卫平
杨帆
高攀
罗俊杰
阮正平
段常珑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Zhongdian Aostar Information Technologies Co ltd
Original Assignee
Sichuan Zhongdian Aostar Information Technologies Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan Zhongdian Aostar Information Technologies Co ltd filed Critical Sichuan Zhongdian Aostar Information Technologies Co ltd
Priority to CN202110997268.7A priority Critical patent/CN113641480B/zh
Publication of CN113641480A publication Critical patent/CN113641480A/zh
Application granted granted Critical
Publication of CN113641480B publication Critical patent/CN113641480B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Abstract

本发明提出了一种基于Kubernetes集群组的任务调度系统及方法,通过划分的三个逻辑部署区域(容器持续集成管理平台、用于执行构建任务的Kubernetes集群组、用于部署项目应用的Kubernetes集群组),以及设定的“四个子流程”和“构建任务排队的机制”,解决了企业容器云环境中,构建部署任务的资源争用问题,且本发明设计的用于构建任务的Kubernetes集群组,大大提高了调度池的健壮性和可用性。当某一个集群不可用时,仍然可以调度到其它监控的Kubernetes集群。

Description

一种基于Kubernetes集群组的任务调度系统及方法
技术领域
本发明属于计算机持续集成和容器技术领域,具体地说,涉及一种基于Kubernetes集群组的任务调度系统及方法。
背景技术
随着微服务技术的发展,传统的复杂单体应用通过微服务技术被拆分成很多小的、独立的服务。微服务技术在给项目的性能和稳定性带来提升的同时,也大大提高了项目部署的复杂度。传统的单体应用一般只需要部署一个程序包,而大一些的微服务的可能需要部署几十个程序包。
为了提高部署效率,可以用Jenkins来实现代码编译到程序包部署的自动化过程。但是在异构环境中,这种方式仍然可能需要做较多繁杂的运行环境准备、配置文件修改等工作。
容器技术的出现解决了异构环境中应用程序的部署问题。一个容器包含了完整的运行时环境:除了应用程序本身之外,这个应用所需的全部依赖、类库、其他二进制文件、配置文件等,都统一被打入了一个称为容器镜像的包中。通过将应用程序本身,和其依赖容器化,操作系统发行版本和其他基础环境造成的差异,都被抽象掉了。
Kubernetes是一个容器编排工具,它负责在大规模服务器环境中管理容器组(Pod)的扩展、复制、健康,并解决 Pod 的启动、负载均衡等问题。
有一些企业采用诸如Jenkins+Kubernetes集成、Openshift、Rancher等方式来实现持续集成。但是这些方式均存在一定的不足:
1.采用Jenkins和Kubernetes集成的方式,虽然可以实现代码编译、镜像构建、镜像部署等功能,但是无法实现多项目多Kubernetes集群的权限管理;
2.采用Openshift技术可以实现代码编译成容器镜像并部署到Kubernetes集群的功能,但是Openshift只能管理一个集群,不支持多集群环境的管理;
3.采用Rancher方式的更关注应用的部署,需要集成Jenkins才能实现在Rancher构建应用。
发明内容
本发明针对现有技术的上述缺陷,提出了一种基于Kubernetes集群组的任务调度系统及方法,通过划分的三个逻辑部署区域(容器持续集成管理平台、用于执行构建任务的Kubernetes集群组、用于部署项目应用的Kubernetes集群组),以及设定的“四个子流程”和“构建任务排队的机制”,解决了企业容器云环境中,构建部署任务的资源争用问题,且本发明设计的用于构建任务的Kubernetes集群组,大大提高了调度池的健壮性和可用性。当某一个集群不可用时,仍然可以调度到其它监控的Kubernetes集群。
本发明提出了一种基于Kubernetes集群组的任务调度系统,用于在异构环境下构建任务来进行项目的容器化部署,所述任务调度系统包括容器持续集成管理平台、用于执行构建任务的Kubernetes集群组、用于部署项目应用的Kubernetes集群组、镜像仓库、代码仓库;
所述容器持续集成管理平台包括构建任务调度中心、任务队列、控制台;
所述用于执行构建任务的Kubernetes集群组包括多个Kubernetes集群,每个用于执行构建任务的Kubernetes集群组中的Kubernetes集群包含多个构建任务;
所述用于部署项目应用的Kubernetes集群组同样包括多个Kubernetes集群,每个用于部署项目应用的Kubernetes集群组中的Kubernetes集群中包括多个项目应用;
所述构建任务分别与镜像仓库、代码仓库、构建任务调度中心连接;
所述项目应用分别与镜像仓库、控制台连接;
所述控制台和任务队列分别与构建任务调度中心连接。
本发明还提出了一种基于Kubernetes集群组的任务调度方法,基于上述的一种基于Kubernetes集群组的任务调度系统,用于在异构环境下构建任务来进行项目的容器化部署;所述任务调度方法采用基于Kubernetes集群组的任务调度系统执行以下四个子流程:
子流程1、构建任务控制流程:与构建任务调度中心交互,完成任务发送、接收调度结果、查询构建日志、接收构建任务执行结果工作;
子流程2、构建任务队列流程:通过构建任务调度中心发起构建任务队列流程,接收构建任务、并将任务信息存储到构建任务队列;
子流程3、构建任务调度池流程:根据Kubernetes集群组资源情况动态创建调度池,使用调度池中的每个调度单元从任务队列中拉取数据,并根据任务信息发送构建任务Pod消息到Kubernetes集群组;
子流程4、运行构建任务Pod流程:创建构建任务Pod并在Kubernetes集群组中执行构建任务Pod。
为了更好地实现本发明,进一步地,子流程3的具体流程为:
流程3.1、创建调度池:动态根据Kubernetes集群组资源情况创建调度池;所述调度池中包括多个调度单元;
流程3.2、调度单元和Kubernetes集群关联:通过构建任务调度中心将调度单元和Kubernetes集群进行关联;
流程3.3、每个调度单元等待任务队列中的数据:使用调度池中的每个调度单元从任务队列中拉取数据;对于取到了任务数据的调度单元开始后续的任务处理工作;对于没有取到任务数据的调度单元则继续等待任务队列中的数据;任务数据采用队列的方式存储,一个任务数据只会被一个调度单元读取到;
流程3.4、发送创建构建任务Pod消息:调度单元从任务队列中接收到任务数据后,根据任务数据生成构建任务的Pod消息,并将建构任务Pod消息发送到调度单元关联的Kubernetes集群;
流程3.5、返回调度结果:调度单元返回调度结果信息给控制台,所述调度结果信息中包含:任务所在的Kubernetes集群、构建任务Pod;
流程3.6、等待构建任务执行完成:调度单元等待构建任务Pod执行完成;当构建任务Pod执行完成后,调度单元发送任务执行完成消息给控制台,然后继续等待任务队列中的数据。
为了更好地实现本发明,进一步地,所述子流程4具体包括:
流程4.1、创建构建任务Pod:使用Kubernetes集群创建构建任务Pod,每个构建任务Pod启动的容器镜像由构建任务类型决定,构建任务Pod中执行的内容由构建任务参数决定;
流程4.2、执行构建任务:Kubernetes集群运行构建任务Pod,Pod的运行日志即任务执行日志;控制台从Kubernetes集群中抓取任务执行日志数据;
流程4.3、任务Pod执行完成:构建任务调度中心监听到构建任务Pod执行完成后,继续执行等待任务队列数据的工作。
为了更好地实现本发明,进一步地,所述子流程1具体包括:
流程1.1、发起构建任务详情:控制台将构建任务的数据信息发送到构建任务调度中心,构建任务的数据信息按照JSON的格式传输,构建任务的数据信息中包含了构建任务器容器镜像、构建参数列表、构建结果容器镜像名称;
流程1.2、接收调度结果:接收构建任务调度中心发送的构建任务所在的Kubernetes集群及Pod信息;
流程1.3、查询构建任务执行日志:从构建任务所在的Kubernetes集群中查询构建任务执行日志详情;
流程1.4、接收构建任务执行结果:从构建任务调度中心接收构建任务的执行结果。
为了更好地实现本发明,进一步地,所述子流程2具体为:
流程2.1、接收构建任务:从控制台接收流程1.1发送的JSON格式的构建任务数据信息;
流程2.2:存储构建任务:将构建任务项详细信息存储到构建任务队列。
本发明与现有技术相比具有以下优点及有益效果:
(1)通过构建任务排队的机制,解决了在企业容器云环境中,构建部署任务资源争用的问题;
(2)本发明设计的用于构建任务的Kubernetes集群组,大大提高了调度池的健壮性和可用性。当某一个集群不可用时,仍然可以调度到其它监控的Kubernetes集群。
附图说明
图1为本发明系统的结构示意图;
图2为本发明的整体流程示意图;
图3为创建调度池的示意图。
具体实施方式
为了更清楚地说明本发明实施例的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,应当理解,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例,因此不应被看作是对保护范围的限定。基于本发明中的实施例,本领域普通技术工作人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“设置”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;也可以是直接相连,也可以是通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
实施例1:
本实施例提出了一种基于Kubernetes集群组的任务调度系统,用于在异构环境下构建任务来进行项目的容器化部署;如图1所示,所述任务调度系统包括容器持续集成管理平台、用于执行构建任务的Kubernetes集群组、用于部署项目应用的Kubernetes集群组、镜像仓库、代码仓库;
所述容器持续集成管理平台包括构建任务调度中心、任务队列、控制台;
所述用于执行构建任务的Kubernetes集群组包括多个Kubernetes集群,每个用于执行构建任务的Kubernetes集群组中的Kubernetes集群包含多个构建任务;
所述用于部署项目应用的Kubernetes集群组同样包括多个Kubernetes集群,每个用于部署项目应用的Kubernetes集群组中的Kubernetes集群中包括多个项目应用;
所述构建任务分别与镜像仓库、代码仓库、构建任务调度中心连接;
所述项目应用分别与镜像仓库、控制台连接;
所述控制台和任务队列分别与构建任务调度中心连接。
工作原理:业务场景中主要划分了三个逻辑部署区域:容器持续集成管理平台、用于执行构建任务的Kubernetes集群组、用于部署项目应用的Kubernetes集群组。
容器持续集成管理平台:主要由控制台和构建任务调度中心两部分组成。
控制台:主要负责任务的包括任务创建、修改、删除、执行等功能;控制台执行任务的时候需要向构建任务调度中心发起构建任务,当构建任务执行成功之后,再部署服务到用于部署项目应用的Kubernetes集群组。
构建任务调度中心:当构建任务调度中心接收到任务后会将任务存储到任务队列。 任务调度中心会根据策略从任务队列中取出数据,并分配到合适的用于执行构建任务的Kubernetes集群组。
用于执行构建任务的Kubernetes集群组:主要负责接收构建任务,并根据任务信息创建容器组(Pod),在Pod中执行构建任务。执行任务的过程中可能需要从代码仓库下载/更新代码,将代码编译并打包成容器镜像后,再将容器镜像推送到镜像仓库。
用于部署项目应用的Kubernetes集群组:主要负责从容器持续集成管理平台接收部署应用的指令,在项目所属的Kubernetes集群部署应用。部署的过程中需要到镜像仓库拉取镜像。
实施例2:
本实施例提出了一种基于Kubernetes集群组的任务调度方法,基于上述的一种基于Kubernetes集群组的任务调度系统,用于在异构环境下构建任务来进行项目的容器化部署;如图2所示,所述任务调度方法采用基于Kubernetes集群组的任务调度系统执行以下四个子流程:
子流程1、构建任务控制流程:与构建任务调度中心交互,完成任务发送、接收调度结果、查询构建日志、接收构建任务执行结果工作;
子流程2、构建任务队列流程:通过构建任务调度中心发起构建任务队列流程,接收构建任务、并将任务信息存储到构建任务队列;
子流程3、构建任务调度池流程:根据Kubernetes集群组资源情况动态创建调度池,使用调度池中的每个调度单元从任务队列中拉取数据,并根据任务信息发送构建任务Pod消息到Kubernetes集群组;
子流程4、运行构建任务Pod流程:创建构建任务Pod并在Kubernetes集群组中执行构建任务Pod。
所述子流程1具体包括:
流程1.1、发起构建任务详情:控制台将构建任务的数据信息发送到构建任务调度中心,构建任务的数据信息按照JSON的格式传输,构建任务的数据信息中包含了构建任务器容器镜像、构建参数列表、构建结果容器镜像名称;
流程1.2、接收调度结果:接收构建任务调度中心发送的构建任务所在的Kubernetes集群及Pod信息;
流程1.3、查询构建任务执行日志:从构建任务所在的Kubernetes集群中查询构建任务执行日志详情;
流程1.4、接收构建任务执行结果:从构建任务调度中心接收构建任务的执行结果。
所述子流程2具体为:
流程2.1、接收构建任务:从控制台接收流程1.1发送的JSON格式的构建任务数据信息;
流程2.2:存储构建任务:将构建任务项详细信息存储到构建任务队列。
子流程3的具体流程为:
流程3.1、创建调度池:动态根据Kubernetes集群组资源情况创建调度池;所述调度池中包括多个调度单元;
流程3.2、调度单元和Kubernetes集群关联:通过构建任务调度中心将调度单元和Kubernetes集群进行关联;
流程3.3、每个调度单元等待任务队列中的数据:使用调度池中的每个调度单元从任务队列中拉取数据;对于取到了任务数据的调度单元开始后续的任务处理工作;对于没有取到任务数据的调度单元则继续等待任务队列中的数据;任务数据采用队列的方式存储,一个任务数据只会被一个调度单元读取到;
流程3.4、发送创建构建任务Pod消息:调度单元从任务队列中接收到任务数据后,根据任务数据生成构建任务的Pod消息,并将建构任务Pod消息发送到调度单元关联的Kubernetes集群;
流程3.5、返回调度结果:调度单元返回调度结果信息给控制台,所述调度结果信息中包含:任务所在的Kubernetes集群、构建任务Pod;
流程3.6、等待构建任务执行完成:调度单元等待构建任务Pod执行完成;当构建任务Pod执行完成后,调度单元发送任务执行完成消息给控制台,然后继续等待任务队列中的数据。
所述子流程4具体包括:
流程4.1、创建构建任务Pod:使用Kubernetes集群创建构建任务Pod,每个构建任务Pod启动的容器镜像由构建任务类型决定,构建任务Pod中执行的内容由构建任务参数决定;
流程4.2、执行构建任务:Kubernetes集群运行构建任务Pod,Pod的运行日志即任务执行日志;控制台从Kubernetes集群中抓取任务执行日志数据;
流程4.3、任务Pod执行完成:构建任务调度中心监听到构建任务Pod执行完成后,继续执行等待任务队列数据的工作。
工作原理:从图2可以看出,这个流程中存在四个子流程:
1.控制台发起的“构建任务控制流程流程”,主要负责与构建任务调度中心交互,完成任务发送、接收调度结果、查询构建日志、接收构建任务执行结果等工作。
2.构建任务调度中心发起的“构建任务队列流程”,主要负责接收构建任务、并将任务信息存储到构建任务队列。
3.构建任务调度中心发起的“构建任务调度池流程”,主要负责动态根据Kubernetes集群组资源情况创建调度池,调度池中的每个调度单元负责从任务队列拉取数据,并根据任务信息发送构建任务Pod消息到Kubernetes集群组。
4.Kubernetes集群组中的“运行构建任务Pod流程”,主要负责创建构建任务Pod、执行构建任务。
其中:
构建任务控制流程分步详细说明:
1.发起构建任务详情:控制台将构建任务详细信息发送到构建任务调度中心,数据按照JSON的格式传输,数据中包含了构建任务器容器镜像、构建参数列表、构建结果容器镜像名称等信息。
2.接收调度结果:负责接收调度中心发送的构建任务所在的Kubernetes集群及Pod信息。
3.查询构建任务执行日志:从任务所在的Kubernetes集群中查询构建任务执行日志详情。
4.接收构建任务执行结果:从调度中心接收构建任务的执行结果。
构建任务队列流程分步详细说明:
1.接收构建任务:从控制台接收JSON格式的构建任务详细信息。
2.存储构建任务:将构建任务项详细信息存储到构建任务队列。
构建任务调度池流程分步详细说明:
1.创建调度池:动态根据Kubernetes集群组资源情况创建调度池。
2.调度单元和Kubernetes集群关联:调度中心负责将调度池中的调度单元和Kubernetes集群关联起来;
3.每个调度单元等待任务队列中的数据:调度池中的每个调度单元从任务队列中拉取数据;取到任务数据的调度单元开始后续的任务处理工作;没有取到任务数据的调度单元则继续等待任务队列中的数据;任务数据采用队列的方式存储,一个任务数据只会有一个调度单元能读取到,不会存在一个任务数据被多次读取的问题。
4.发送创建构建任务Pod消息:调度单元从任务队列中接收到任务数据后,根据任务数据生成构建任务的Pod消息,并将建构任务Pod消息发送到调度单元关联的Kubernetes集群。
5.返回调度结果:调度单元返回调度结果信息给控制台,调度结果信息中包含:任务所在的Kubernetes集群、构建任务Pod。
6.等待构建任务执行完成:调度单元等待构建任务Pod执行完成;当构建任务Pod执行完成后,调度单元发送任务执行完成消息给控制台,然后继续等待任务队列中的数据。
运行构建任务Pod流程分步详细说明:
1.创建构建任务Pod: Kubernetes集群创建构建任务Pod,每个构建任务Pod启动的容器镜像由构建任务类型决定,任务中执行的详细内容由构建任务参数决定。
2.执行构建任务:Kubernetes集群运行构建任务Pod,Pod的运行日志即任务执行日志;控制台从Kubernetes集群中抓取任务执行日志数据。
3.任务Pod执行完成:调度中心监听到构建任务Pod执行完成后,继续执行等待任务队列数据的工作。
本实施例的其他部分与上述实施例1相同,故不再赘述。
实施例3:
本实施例在上述实施例2的基础上,关于调度池的创建:
构建任务调度池中存储的是“调度单元”对象。每个“调度单元”对象都与一个Kubernetes集群关联。构建任务调度池利用“对象池”技术把“调度单元”对象存储到内存中。对象池的实现方式有多种,Apache Commons Pool就是其中一种实现方式。
构建任务调度池的大小由Kubernetes集群组中每个Kubernetes集群配置的调度容量决定。每个Kubernetes集群在加入到容器持续集成管理平台的时候,都会根据Kubernetes集群资源的大小设置该集群的调度容量。比如,某个Kubernetes集群的调度容量为10,表示该Kubernetes集群最多同时能运行10个构建任务。调度池大小的计算公式如下:
调度中心监控每个Kubernetes集群的健康状态及容量变化,并根据变化动态调整调度池的大小。
如图3所示,调度池中的每个调度单元和一个健康的Kubernetes集群关联。当调度中心监控到Kubernetes集群不可用时,将该集群关联的调度单元从调度池中清除。当调度单元接收到任务队列中的数据后,在调度单元所关联的Kubernetes集群中根据任务数据创建Pod并执行任务。
本实施例的其他部分与上述实施例2相同,故不再赘述。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

Claims (5)

1.一种基于Kubernetes集群组的任务调度方法,用于在异构环境下构建任务来进行项目的容器化部署;其特征在于,采用基于Kubernetes集群组的任务调度系统执行以下四个子流程:
子流程1、构建任务控制流程:与构建任务调度中心交互,完成任务发送、接收调度结果、查询构建日志、接收构建任务执行结果工作;
子流程2、构建任务队列流程:通过构建任务调度中心发起构建任务队列流程,接收构建任务、并将任务信息存储到构建任务队列;
子流程3、构建任务调度池流程:根据Kubernetes集群组资源情况动态创建调度池,使用调度池中的每个调度单元从任务队列中拉取数据,并根据任务信息发送构建任务Pod消息到Kubernetes集群组;
子流程4、运行构建任务Pod流程:创建构建任务Pod并在Kubernetes集群组中执行构建任务Pod;
子流程3的具体流程为:
流程3.1、创建调度池:动态根据Kubernetes集群组资源情况创建调度池;所述调度池中包括多个调度单元;
流程3.2、调度单元和Kubernetes集群关联:通过构建任务调度中心将调度单元和Kubernetes集群进行关联;
流程3.3、每个调度单元等待任务队列中的数据:使用调度池中的每个调度单元从任务队列中拉取数据;对于取到了任务数据的调度单元开始后续的任务处理工作;对于没有取到任务数据的调度单元则继续等待任务队列中的数据;任务数据采用队列的方式存储,一个任务数据只会被一个调度单元读取到;
流程3.4、发送创建构建任务Pod消息:调度单元从任务队列中接收到任务数据后,根据任务数据生成构建任务的Pod消息,并将建构任务Pod消息发送到调度单元关联的Kubernetes集群;
流程3.5、返回调度结果:调度单元返回调度结果信息给控制台,所述调度结果信息中包含:任务所在的Kubernetes集群、构建任务Pod;
流程3.6、等待构建任务执行完成:调度单元等待构建任务Pod执行完成;当构建任务Pod执行完成后,调度单元发送任务执行完成消息给控制台,然后继续等待任务队列中的数据。
2.如权利要求1所述的一种基于Kubernetes集群组的任务调度方法,其特征在于,所述子流程4具体包括:
流程4.1、创建构建任务Pod:使用Kubernetes集群创建构建任务Pod,每个构建任务Pod启动的容器镜像由构建任务类型决定,构建任务Pod中执行的内容由构建任务参数决定;
流程4.2、执行构建任务:Kubernetes集群运行构建任务Pod,Pod的运行日志即任务执行日志;控制台从Kubernetes集群中抓取任务执行日志数据;
流程4.3、任务Pod执行完成:构建任务调度中心监听到构建任务Pod执行完成后,继续执行等待任务队列数据的工作。
3.如权利要求1所述的一种基于Kubernetes集群组的任务调度方法,其特征在于,所述子流程1具体包括:
流程1.1、发起构建任务详情:控制台将构建任务的数据信息发送到构建任务调度中心,构建任务的数据信息按照JSON的格式传输,构建任务的数据信息中包含了构建任务器容器镜像、构建参数列表、构建结果容器镜像名称;
流程1.2、接收调度结果:接收构建任务调度中心发送的构建任务所在的Kubernetes集群及Pod信息;
流程1.3、查询构建任务执行日志:从构建任务所在的Kubernetes集群中查询构建任务执行日志详情;
流程1.4、接收构建任务执行结果:从构建任务调度中心接收构建任务的执行结果。
4.如权利要求1所述的一种基于Kubernetes集群组的任务调度方法,其特征在于,所述子流程2具体为:
流程2.1、接收构建任务:从控制台接收JSON格式的构建任务数据信息;
流程2.2:存储构建任务:将构建任务项详细信息存储到构建任务队列。
5.一种基于Kubernetes集群组的任务调度系统,用于在异构环境下构建任务来进行项目的容器化部署,该系统实现如权利要求1-4任一项所述的基于Kubernetes集群组的任务调度方法;其特征在于,包括容器持续集成管理平台、用于执行构建任务的Kubernetes集群组、用于部署项目应用的Kubernetes集群组、镜像仓库、代码仓库;
所述容器持续集成管理平台包括构建任务调度中心、任务队列、控制台;
所述用于执行构建任务的Kubernetes集群组包括多个Kubernetes集群,每个用于执行构建任务的Kubernetes集群组中的Kubernetes集群包含多个构建任务;
所述用于部署项目应用的Kubernetes集群组同样包括多个Kubernetes集群,每个用于部署项目应用的Kubernetes集群组中的Kubernetes集群中包括多个项目应用;
所述构建任务分别与镜像仓库、代码仓库、构建任务调度中心连接;
所述项目应用分别与镜像仓库、控制台连接;
所述控制台和任务队列分别与构建任务调度中心连接。
CN202110997268.7A 2021-08-27 2021-08-27 一种基于Kubernetes集群组的任务调度系统及方法 Active CN113641480B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110997268.7A CN113641480B (zh) 2021-08-27 2021-08-27 一种基于Kubernetes集群组的任务调度系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110997268.7A CN113641480B (zh) 2021-08-27 2021-08-27 一种基于Kubernetes集群组的任务调度系统及方法

Publications (2)

Publication Number Publication Date
CN113641480A CN113641480A (zh) 2021-11-12
CN113641480B true CN113641480B (zh) 2023-12-15

Family

ID=78424218

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110997268.7A Active CN113641480B (zh) 2021-08-27 2021-08-27 一种基于Kubernetes集群组的任务调度系统及方法

Country Status (1)

Country Link
CN (1) CN113641480B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017045424A1 (zh) * 2015-09-18 2017-03-23 乐视控股(北京)有限公司 一种应用程序部署系统及部署方法
CN106997297A (zh) * 2017-03-31 2017-08-01 广东亿迅科技有限公司 一种基于DevOps的软件开发管理平台及方法
CN107766136A (zh) * 2017-09-30 2018-03-06 南威软件股份有限公司 一种任务集群调度管理的方法
CN108388472A (zh) * 2018-03-01 2018-08-10 吉林大学 一种基于Docker集群的弹性任务调度系统及方法
WO2019095936A1 (zh) * 2017-11-15 2019-05-23 腾讯科技(深圳)有限公司 容器镜像的构建方法、系统、服务器、装置及存储介质
CN110764786A (zh) * 2019-12-27 2020-02-07 凯泰铭科技(北京)有限公司 一种云计算环境下优化部署资源与软件交付平台
CN112199164A (zh) * 2020-10-19 2021-01-08 国网新疆电力有限公司信息通信公司 一种保证容器镜像一致性的方法
CN112416524A (zh) * 2020-11-25 2021-02-26 电信科学技术第十研究所有限公司 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置
CN112527349A (zh) * 2020-12-02 2021-03-19 航天科工网络信息发展有限公司 动态部署策略优化及持续部署业务保障系统
CN113176929A (zh) * 2021-04-29 2021-07-27 成都商高智能科技有限公司 一种国产操作系统的容器化部署方法及平台

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920259B (zh) * 2018-03-30 2022-06-24 华为云计算技术有限公司 深度学习作业调度方法、系统和相关设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017045424A1 (zh) * 2015-09-18 2017-03-23 乐视控股(北京)有限公司 一种应用程序部署系统及部署方法
CN106997297A (zh) * 2017-03-31 2017-08-01 广东亿迅科技有限公司 一种基于DevOps的软件开发管理平台及方法
CN107766136A (zh) * 2017-09-30 2018-03-06 南威软件股份有限公司 一种任务集群调度管理的方法
WO2019095936A1 (zh) * 2017-11-15 2019-05-23 腾讯科技(深圳)有限公司 容器镜像的构建方法、系统、服务器、装置及存储介质
CN108388472A (zh) * 2018-03-01 2018-08-10 吉林大学 一种基于Docker集群的弹性任务调度系统及方法
CN110764786A (zh) * 2019-12-27 2020-02-07 凯泰铭科技(北京)有限公司 一种云计算环境下优化部署资源与软件交付平台
CN112199164A (zh) * 2020-10-19 2021-01-08 国网新疆电力有限公司信息通信公司 一种保证容器镜像一致性的方法
CN112416524A (zh) * 2020-11-25 2021-02-26 电信科学技术第十研究所有限公司 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置
CN112527349A (zh) * 2020-12-02 2021-03-19 航天科工网络信息发展有限公司 动态部署策略优化及持续部署业务保障系统
CN113176929A (zh) * 2021-04-29 2021-07-27 成都商高智能科技有限公司 一种国产操作系统的容器化部署方法及平台

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A New Docker Swarm Scheduling Strategy;Christophe Cérin 等;《2017 IEEE 7th International Symposium on Cloud and Service Computing (SC2)》;112-117 *
Design of Scheduler Plugins for Reliable Function Allocation in Kubernetes;Rui Kang 等;《2021 17th International Conference on the Design of Reliable Communication Networks (DRCN)》;1-3 *
基于Kubernetes容器云的资源调度算法研究;李想;《中国优秀硕士学位论文全文数据库 信息科技辑》(第5期);I139-209 *
微服务框架中的服务注册中心的设计与开发;吴雄劲;《工业控制计算机》;第34卷(第8期);130-132 *

Also Published As

Publication number Publication date
CN113641480A (zh) 2021-11-12

Similar Documents

Publication Publication Date Title
CN102521044B (zh) 一种基于消息中间件的分布式任务调度方法及系统
US8789058B2 (en) System and method for supporting batch job management in a distributed transaction system
CN111682973B (zh) 一种边缘云的编排方法及系统
US7769715B2 (en) Synchronization of access permissions in a database network
CN110333939B (zh) 任务混合调度方法、装置、调度服务器及资源服务器
CN110838939B (zh) 一种基于轻量级容器的调度方法及边缘物联管理平台
CN101719852B (zh) 一种中间件性能的监控方法和设备
CN101424941B (zh) 一种控制实现方法和系统
CN112910937B (zh) 容器集群中的对象调度方法、装置、服务器和容器集群
CN103516735A (zh) 一种网络节点升级的方法及装置
US7237005B2 (en) Job network setup method, job network execution method, job management system, management terminal and program
CN110134533B (zh) 一种可批量调度数据的系统及方法
JP2005309838A (ja) 情報管理システムと情報管理方法、及び、そのための情報管理サブシステム
CN117435324A (zh) 基于容器化的任务调度方法
CN111240819A (zh) 一种调度任务的发布系统及方法
CN113641480B (zh) 一种基于Kubernetes集群组的任务调度系统及方法
CN111767126A (zh) 分布式批量处理的系统和方法
CN102214094A (zh) 经由异步编程模型执行操作
CN112564979B (zh) 构建任务的执行方法、装置、计算机设备和存储介质
CN115617768A (zh) 日志管理方法、系统、电子设备及存储介质
CN114816662A (zh) 应用于Kubernetes的容器编排方法和系统
CN114416276A (zh) 设备管理服务的调度方法、装置、电子设备及存储介质
CN113672334A (zh) 一种容器管理方法及装置
CN102681881A (zh) 跨机调度方法及其系统
CN115185700B (zh) 一种高集成单进程的容器管理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant