CN113032126B - 一种高并发云工作流调度引擎跨集群通信系统及方法 - Google Patents

一种高并发云工作流调度引擎跨集群通信系统及方法 Download PDF

Info

Publication number
CN113032126B
CN113032126B CN202110372038.1A CN202110372038A CN113032126B CN 113032126 B CN113032126 B CN 113032126B CN 202110372038 A CN202110372038 A CN 202110372038A CN 113032126 B CN113032126 B CN 113032126B
Authority
CN
China
Prior art keywords
cluster
module
scheduler
workflow
container
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
CN202110372038.1A
Other languages
English (en)
Other versions
CN113032126A (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.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
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 Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN202110372038.1A priority Critical patent/CN113032126B/zh
Publication of CN113032126A publication Critical patent/CN113032126A/zh
Application granted granted Critical
Publication of CN113032126B publication Critical patent/CN113032126B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/547Remote procedure calls [RPC]; Web services
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种高并发云工作流调度引擎跨集群通信系统及方法。该系统的控制器模块采用Service和Deployment方式容器化部署到Kubernetes的Master主集群;生成器模块采用Shell脚本方式容器化部署于各个集群,每个集群以Service和Deployment方式部署唯一的生成器容器;控制器模块和生成器模块均以Service NodePort方式对外提供访问,且以gRPC方式跨越集群通信;分布式数据库在各个集群中单独部署,用于存储调度器模块的资源请求记录;缓存数据库采用分布式架构部署,用于存储全局的工作流信息记录。本发明可以提高系统的灵活性,实现高效通信。

Description

一种高并发云工作流调度引擎跨集群通信系统及方法
技术领域
本发明涉及跨集群通信领域,特别是涉及一种高并发云工作流调度引擎跨集群通信系统及方法。
背景技术
云工作流是对具有依赖关系的连续任务进行定义并且利用云计算资源执行任务的灵活配置。一个完整的用户应用的实现可以呈现为一个云计算场景下的工作流的执行过程。工作流实例通过调度的方式获取工作流中任务与资源的映射序列,也就是将云中的资源分配给工作流中的任务,并最终完成工作流的执行过程。过去十年,云计算技术快速发展,以容器、微服务、DevOps以及Kubernetes为代表的云原生技术,重构IT运维与开发模式的同时,也让用户应用随时随地处于待发布状态,真正释放了云的能力。云原生容器镜像化技术赋予了用户业务开箱即用的特点,云工作流的容器化执行过程成为用户业务实践的最佳途径。
面对工作流应用规模越来越大、结构越来越复杂以及高并发的特点,亟需设计一种云工作流调度引擎系统,实现Kubernetes大规模集群生产环境对高并发工作流请求的快速响应、调度和执行,满足用户的服务质量请求的同时,提高云工作流的服务请求接受率。
云工作流调度引擎系统需要面向Kubernetes大规模集群生产环境,由控制器模块、生成器模块、调度器模块、分布式数据库Etcd和缓存数据库Redis构成。为了应对高并发工作流的业务请求场景,充分利用Kubernetes大规模集群资源,此系统控制器模块、生成器模块和调度器模块需要分布式跨Kubernetes集群部署,为了保证各组件之间的数据通路稳定、可靠,亟需设计一种跨Kubernetes大规模集群的通信方法或方案,提高工作流接受率的同时,确保了工作流及任务在Kubernetes集群的高效、稳定及正确执行。
现有的基于Kubernetes容器编排平台的跨集群的通信方案主要是使用虚拟应用程序网络(VAN),有时将其称为第7层网络。简言之,VAN是在应用程序级别部署的逻辑网络,它为细粒度的应用程序组件引入了新的寻址层,而对网络拓扑没有任何限制。基于VAN技术实现的Skupper可以使第七层服务互连。它可以在没有VPN或特殊防火墙规则的情况下跨Kubernetes集群进行安全通信。但是,基于Skupper的跨Kubernetes集群通信方案需要每个Kubernetes集群安装Skupper组件,搭建Skupper组件网络,集群之间可以通过Kubernetes的Service机制通信。Skupper组件跨集群通信方案对于工作流调度引擎跨集群通信场景缺乏灵活性,组件部署冗余度较高,与工作流调度引擎的各个组件的融合度不高。
发明内容
本发明的目的是提供一种高并发云工作流调度引擎跨集群通信系统及方法,以降低组件部署冗余度,提高通信灵活性。
为实现上述目的,本发明提供了如下方案:
一种高并发云工作流调度引擎跨集群通信系统,包括控制器模块、生成器模块、调度器模块、分布式数据库和缓存数据库,所述控制器模块采用Service和Deployment方式容器化部署到Kubernetes的Master主集群;所述生成器模块采用Shell脚本方式容器化部署于各个集群,每个集群以Service和Deployment方式部署唯一的生成器容器;所述控制器模块和所述生成器模块均以ServiceNodePort方式对外提供访问,且以gRPC方式跨越集群通信;
所述控制器模块用于实现并发工作流缓存与注入;所述生成器模块用于生成调度器容器及工作流任务容器,并完成对Kubernetes集群资源的监控;
所述分布式数据库在各个集群中单独部署,用于存储所述调度器模块的资源请求记录;所述缓存数据库采用分布式架构部署,用于存储全局的工作流信息记录。
可选的,所述控制器模块负责访问所述缓存数据库,读取和解析工作流,完成工作流的注入;
所述控制器模块还负责与各个集群的生成器模块和调度器模块以gRPC方式跨集群通信,并结合自身的工作流压力情况以及各个集群的生成器模块反馈的调度器模块承载数量,请求各个集群的生成器模块生成调度器容器;
所述控制器模块还负责与各个集群的调度器模块通信,根据当前工作流压力值,分配工作流给各个集群的调度器模块;
所述控制器模块还用于根据全局工作流的压力情况控制各个集群的调度器模块的保活与死亡,并把调度器模块的状态信息及时的发送给各个集群的生成器模块。
可选的,所述生成器模块负责监控Kubernetes集群的剩余资源,计算本集群能负载的调度器容器数量,并以gRPC通信方式发送给所述控制器模块;
所述生成器模块还用于响应所述控制器模块生成调度器容器,响应调度器模块的请求分配剩余资源给所述调度器模块,并生成工作流和任务容器;
所述生成器模块还用于响应所述控制器模块,更新所述分布式数据库中的调度器模块资源请求记录中的调度器容器存活状态;
所述生成器模块还用于监控任务容器的执行状态,当执行状态为执行成功时将执行成功的任务容器反馈给相应的调度器模块,并删除该任务容器;
所述生成器模块还用于响应调度器模块请求,删除执行完毕的工作流。
可选的,所述调度器模块负责接收Master集群发送的工作流,并处理工作流,为工作流的待处理任务申请所需request资源总和,并采用资源分配算法分配资源给待处理的各个工作流及任务;
所述调度器模块还负责发送工作流任务生成请求,并接收任务的执行状态;
所述调度器模块还负责监控工作流的执行完成情况,当工作流完成时向本集群生成器模块申请删除完成的工作流,并把删除的工作流信息写入所述缓存数据库及以gRPC通信方式远程通知Master集群的控制器模块。
可选的,所述控制器模块以容器形式运行后,注入工作流的同时,启动gRPC服务器程序。
可选的,所述生成器模块通过ConfigMap注入Master集群中所述控制器模块所在节点的IP地址和访问的端口。
本发明还提供一种高并发云工作流调度引擎跨集群通信方法,包括:
生成器模块周期性的以远程gRPC通信方式跨集群访问Master主集群的控制器模块,并向所述控制器模块发送注册信息;所述注册信息包括所述生成器模块所在集群的Id号、所述生成器模块所在节点的Ip地址和NodePort访问端口;
所述控制器模块接收到各个集群的生成器模块的注册信息后,以远程gRPC通信方式访问各个集群的生成器模块,周期性的发送各个集群能够承载的调度器容器数量请求;
各个集群的生成器模块接收到所述控制器模块的调度器容器数量请求后,根据本集群的剩余资源和调度器容器数量请求,计算出本集群能够承载的调度器容器最大数量,生成反馈信息反馈给所述控制器模块;
所述控制器模块接收到各个集群的生成器模块的反馈信息后,根据本身工作流注入的压力情况确定调度器容器数量,以远程gRPC通信方式访问各个集群的生成器模块,发送调度器容器生成请求;
各个集群的生成器模块接收到所述控制器模块的调度器容器生成请求后,启动本集群的调度器模块,并把所述控制器模块所在节点的Ip和端口号、本集群生成器模块所在节点的Ip和端口号以及本集群的Id号信息注入本集群的调度器模块;
各个集群的调度器模块启动后,生成的调度器容器被分散调度到本集群的每个Node节点;所述调度器容器以环境变量方式获取所述控制器模块所在节点的Ip和端口号,以gRPC通信方式远程访问所述控制器模块,并向所述控制器模块发送包括本身的节点Ip和端口号的注册信息;
所述控制器模块接收到各个集群的调度器容器的注册信息后,根据全局的注入工作流的负载情况,分配待处理的工作流给各个集群的调度器容器;
各个集群的调度器容器接收到所述控制器模块分配的待处理的工作流后,根据待处理的工作流的request资源总和,以gRPC通信方式访问本集群的生成器模块并发送request资源请求;
各个集群的生成器模块接收到本集群的调度器容器的request资源请求后,根据当前request资源请求、分布式数据库保存的全局保活调度器容器总的request资源请求及当前集群的剩余资源,基于资源分配优化算法分配资源反馈给调度器容器;
各个集群的调度器容器接收到本集群生成器模块反馈的分配资源后,分配资源给各个待处理的工作流,并向本集群的生成器模块发送工作流任务容器生成请求;
各个集群的生成器模块接收到本集群的调度器容器的工作流任务容器生成请求后,生成工作流任务容器,并生成工作流任务容器的执行成功状态的反馈信息反馈给发送工作流任务容器生成请求调度器容器;
各个集群的调度器容器接收到本集群生成器模块的反馈信息后,检测反馈信息所属的工作流是否执行完毕;若执行完毕,以gRPC通信方式通知本集群的生成器模块删除反馈信息所属的工作流,以gRPC通信方式远程通知所述控制器模块工作流执行完毕的状态信息;
所述控制器模块容器根据各个集群的调度器容器发送的工作流执行完毕的状态信息,采用负载均衡策略调整各个集群调度器模块应负载的工作流数量,并以gRPC通信方式远程访问各个集群的调度器模块,控制调度器模块的保活或者死亡。
可选的,在各个集群的生成器模块接收到本集群的调度器容器的request资源请求后,还将本集群的调度器容器的request资源请求记录保存到本集群的分布式数据库。
可选的,在各个集群的生成器模块接收到本集群的调度器容器的工作流任务容器生成请求后,所述生成器模块采用Informer工具包和List-Watch机制监测生成的工作流任务容器的执行状态;当工作流任务容器的执行状态为执行成功状态时,删除执行成功状态的工作流任务容器。
可选的,所述控制器模块容器根据各个集群的调度器容器发送的工作流执行完毕的状态信息,采用负载均衡策略调整各个集群调度器模块应负载的工作流数量,并以gRPC通信方式远程访问各个集群的调度器模块,控制调度器模块的保活或者死亡,之后还包括:
如果当前注入所述控制器模块的工作流数量减少,所述控制器模块调整各个集群调度器存活数量;如果全局调度器模块为死亡状态,则以gRPC通信方式远程访问该调度器模块所在集群的生成器模块,更新所述生成器模块维护的调度器容器资源请求记录中调度器容器的状态。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明面向高并发工作流调度引擎系统应用场景,基于Kubernetes集群原生的资源特性定制化开发实现的,与系统契合紧密,基于Kubernetes原生的Service机制,采用NodePort服务类型实现了外部流量对本集群的安全访问,能够应对高并发工作流业务场景下大规模Kubernetes集群对工作流的接受与处理,通信效率及安全性高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明高并发云工作流调度引擎跨集群通信系统的整体架构图;
图2为本发明控制器模块和生成器模块部署示意图;
图3为本发明高并发云工作流调度引擎跨集群通信方法的流程示意图;
图4为本发明生成器模块向控制器模块gRPC通信注册示意图;
图5为本发明生成器模块响应控制器模块请求生成调度器容器的过程示意图;
图6为本发明调度器容器向控制器模块gRPC通信注册示意图;
图7为本发明生成器模块响应调度器容器请求生成工作流任务容器的过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明高并发云工作流调度引擎跨集群通信系统的整体架构图,结合图1所示,本发明高并发云工作流调度引擎跨集群通信系统包括控制器模块、生成器模块、调度器模块、分布式数据库和缓存数据库。如图2所示,所述控制器模块采用Service和Deployment方式容器化部署到Kubernetes的Master主集群,只部署一个控制器pod副本,即图1和图2中的控制器容器。Service服务类型选择NodePort,开放给外部网络访问,控制器模块以容器形式运行后,注入工作流的同时,启动gRPC服务器程序。所述控制器模块用于实现并发工作流缓存与注入,具体的,控制器模块的功能为:负责访问缓存数据库,读取和解析工作流,完成工作流的注入。负责与各个集群的生成器模块和调度器模块以gRPC方式跨集群通信,结合自身的工作流压力情况和各个集群生成器模块反馈的调度器容器承载数量,请求各个集群的生成器模块生成调度器容器;负责与各个集群的调度器模块通信,根据当前工作流压力值,分配工作流给各个集群的调度器模块;根据全局工作流的压力情况控制各个集群调度器容器的保活与死亡,并把调度器容器的状态信息及时的发送给各个集群的生成器模块。
所述生成器模块采用Shell脚本方式容器化部署于各个集群,每个集群以Service和Deployment方式部署唯一的生成器容器,即图中的生成器容器,Service服务类型选择NodePort,开放给外部网络访问。因此,本发明的控制器模块和生成器模块均以ServiceNodePort方式对外提供访问,且以gRPC方式跨越集群通信。所述生成器模块用于生成调度器容器及工作流任务容器,并完成对Kubernetes集群资源的监控,具体的,生成器模块的功能为:负责监控Kubernetes(简称K8s)集群剩余资源,计算本集群能负载的调度器容器数量,gRPC通信方式发送给控制器模块;响应控制器模块生成调度器容器,响应调度器模块请求分配剩余资源给调度器模块,并生成工作流NameSpace和任务容器;响应控制器模块,及时更新分布式分布式数据库中的调度器容器资源请求记录中的调度器容器存活状态;监控任务容器的执行状态,执行成功的容器状态及时反馈给相应的调度器容器的同时,并删除该容器;响应调度器模块请求删除执行完毕的工作流NameSpace。
调度器模块的功能为:负责接收Master集群发送的工作流,并处理工作流,为工作流待处理任务申请所需request资源总和,并采用资源分配算法合理分配资源给待处理各个工作流及任务,确保工作流高效执行;负责发送工作流任务生成请求,并接收任务的执行状态;监控工作流的执行完成情况,一旦完成向本集群生成器模块申请删除此工作流,并把删除的工作流信息写入缓存数据库及以gRPC通信方式远程通知到Master集群的控制器模块。
所述分布式数据库在各个集群中单独部署,用于存储所述调度器模块的资源请求记录。所述缓存数据库采用分布式架构部署,用于存储全局的工作流信息记录。
基于上述高并发云工作流调度引擎跨集群通信系统,本发明还提供一种高并发云工作流调度引擎跨集群通信方法,图3为本发明高并发云工作流调度引擎跨集群通信方法的流程示意图。如图3所示,本发明高并发云工作流调度引擎跨集群通信方法包括以下步骤:
步骤301:生成器模块周期性的以远程gRPC通信方式跨集群访问Master主集群的控制器模块,并向所述控制器模块发送注册信息;所述注册信息包括所述生成器模块所在集群的Id号、所述生成器模块所在节点的Ip地址和NodePort访问端口。在控制器模块预先以Service和Deployment方式部署于Kubernetes的Master集群之后,以容器形式运行后,注入工作流的同时,启动gRPC服务器程序。然后生成器模块预先通过shell脚本部署于各个集群之后,生成器模块会首先通过ConfigMap注入Master集群控制器模块所在节点的IP地址和访问的端口,然后周期性的远程gRPC通信方式跨集群访问控制器模块,向其注册本集群的Id号和生成器模块所在节点Ip地址和NodePort访问端口,具体过程如图4所示。
步骤302:Master主集群的控制器模块接收到各个集群的生成器模块的注册信息后,以远程gRPC通信方式访问各个集群的生成器模块,周期性的发送各个集群能够承载的调度器容器数量请求。
步骤303:各个集群的生成器模块接收到所述控制器模块的调度器容器数量请求后,通过本容器的K8s资源监控程序获取剩余资源,结合调度器容器数量请求,计算出本集群能够承载的调度器容器最大数量,生成反馈信息反馈给Master主集群的控制器模块。
步骤304:Master主集群的控制器模块接收到各个集群的生成器模块的反馈信息后,根据本身工作流注入的压力情况适当的选择调度器数量,然后根据确定的调度器容器数量,以远程gRPC通信方式访问各个集群的生成器模块,发送调度器容器生成请求。
步骤305:各个集群的生成器模块接收到控制器模块的调度器容器生成请求后,调用容器生成程序启动本集群的调度器模块,并把控制器模块所在节点的Ip和端口号、本集群生成器模块所在节点的Ip和端口号以及本集群的Id号信息注入本集群的调度器模块。具体过程如图5所示。
步骤306:各个集群的调度器模块启动后,生成的调度器容器被k8s打散调度到本集群的每个Node节点。调度器容器以环境变量方式获取控制器模块所在节点的Ip和端口号,以gRPC通信方式远程访问控制器模块,并向控制器模块发送包括本身的节点Ip和端口号的注册信息。具体过程如图6所示。
步骤307:Master主集群的控制器模块接收到各个集群的调度器容器的注册信息后,根据全局的注入工作流的负载情况,合理分配待处理的工作流给各个集群的调度器容器。
步骤308:各个集群的调度器容器接收到控制器模块分配的待处理的工作流后,解析工作流的同时,获取待处理的工作流的request资源总和,根据待处理的工作流的request资源总和,以gRPC通信方式访问本集群的生成器模块并发送request资源请求。
步骤309:各个集群的生成器模块接收到本集群的调度器容器的request资源请求后,把该调度器容器的request资源请求记录保存到本集群的分布式数据库;并通过K8s资源监控程序获取集群的剩余资源,根据当前request资源请求、分布式数据库保存的全局保活调度器容器总的request资源请求及当前集群的剩余资源,结合资源分配优化算法,合理分配资源反馈给调度器容器。
步骤3010:各个集群的调度器容器接收到本集群生成器模块反馈的分配资源后,调度器容器根据高效的资源分配算法合理分配资源给各个待处理的工作流,确保工作流在最小完工时间内执行;并向本集群的生成器模块发送工作流任务容器生成请求。具体过程如图7所示。
步骤3011:各个集群的生成器模块接收到本集群的调度器容器的工作流任务容器生成请求后,生成工作流任务容器,生成器模块采用Informer工具包和List-Watch机制实时感知生成的工作流任务容器的执行状态,一旦任务状态为执行成功状态,则启动删除容器程序删除该工作流任务容器,并采用Event触发机制和gRPC通信方式访问发送该任务容器生成请求的调度器容器,生成工作流任务容器的执行成功状态的反馈信息反馈给该调度器容器。
步骤3012:各个集群的调度器容器接收到本集群生成器模块的反馈信息后,检测反馈信息所属的工作流是否执行完毕;若执行完毕,以gRPC通信方式通知本集群的生成器模块删除反馈信息所属的工作流NameSpace,并写入缓存数据库;以gRPC通信方式远程通知控制器模块工作流执行完毕的状态信息。若没有执行完毕,继续执行步骤308。
步骤3013:控制器模块容器根据各个集群的调度器容器发送的工作流执行完毕的状态信息,采用负载均衡策略及时动态调整各个集群调度器模块应负载的工作流数量,并以gRPC通信方式远程访问各个集群的调度器模块,控制调度器模块的保活或者死亡。如果当前注入控制器的工作流数量减少,控制器模块可以自适应的调整各个集群调度器容器存活数量。如果全局调度器容器有死亡状态的,则gRPC通信方式远程访问该调度器容器所在集群的生成器模块,更新生成器模块维护的调度器资源请求记录中调度器容器的状态。
当步骤301执行完成后,本发明采用步骤302-步骤3013循环执行,完成整个高并发云工作流调度引擎跨集群通信系统的高效通信,在提高工作流接受率的同时,确保了工作流及任务在Kubernetes集群的高效、稳定及正确执行。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种高并发云工作流调度引擎跨集群通信系统,包括控制器模块、生成器模块、调度器模块、分布式数据库和缓存数据库,其特征在于,所述控制器模块采用Service和Deployment方式容器化部署到Kubernetes的Master主集群;所述生成器模块采用Shell脚本方式容器化部署于各个集群,每个集群以Service和Deployment方式部署唯一的生成器容器;所述控制器模块和所述生成器模块均以ServiceNodePort方式对外提供访问,且以gRPC方式跨越集群通信;
所述控制器模块用于实现并发工作流缓存与注入;所述生成器模块用于生成调度器容器及工作流任务容器,并完成对Kubernetes集群资源的监控;
所述分布式数据库在各个集群中单独部署,用于存储所述调度器模块的资源请求记录;所述缓存数据库采用分布式架构部署,用于存储全局的工作流信息记录;
所述控制器模块负责访问所述缓存数据库,读取和解析工作流,完成工作流的注入;
所述控制器模块还负责与各个集群的生成器模块和调度器模块以gRPC方式跨集群通信,并结合自身的工作流压力情况以及各个集群的生成器模块反馈的调度器模块承载数量,请求各个集群的生成器模块生成调度器容器;
所述控制器模块还负责与各个集群的调度器模块通信,根据当前工作流压力值,分配工作流给各个集群的调度器模块;
所述控制器模块还用于根据全局工作流的压力情况控制各个集群的调度器模块的保活与死亡,并把调度器模块的状态信息及时的发送给各个集群的生成器模块;
所述生成器模块负责监控Kubernetes集群的剩余资源,计算本集群能负载的调度器容器数量,并以gRPC通信方式发送给所述控制器模块;
所述生成器模块还用于响应所述控制器模块生成调度器容器,响应调度器模块的请求分配剩余资源给所述调度器模块,并生成工作流和任务容器;
所述生成器模块还用于响应所述控制器模块,更新所述分布式数据库中的调度器模块资源请求记录中的调度器容器存活状态;
所述生成器模块还用于监控任务容器的执行状态,当执行状态为执行成功时将执行成功的任务容器反馈给相应的调度器模块,并删除该任务容器;
所述生成器模块还用于响应调度器模块请求,删除执行完毕的工作流。
2.根据权利要求1所述的高并发云工作流调度引擎跨集群通信系统,其特征在于,所述调度器模块负责接收Master集群发送的工作流,并处理工作流,为工作流的待处理任务申请所需request资源总和,并采用资源分配算法分配资源给待处理的各个工作流及任务;
所述调度器模块还负责发送工作流任务生成请求,并接收任务的执行状态;
所述调度器模块还负责监控工作流的执行完成情况,当工作流完成时向本集群生成器模块申请删除完成的工作流,并把删除的工作流信息写入所述缓存数据库及以gRPC通信方式远程通知Master集群的控制器模块。
3.根据权利要求1所述的高并发云工作流调度引擎跨集群通信系统,其特征在于,所述控制器模块以容器形式运行后,注入工作流的同时,启动gRPC服务器程序。
4.根据权利要求1所述的高并发云工作流调度引擎跨集群通信系统,其特征在于,所述生成器模块通过ConfigMap注入Master集群中所述控制器模块所在节点的IP地址和访问的端口。
5.一种高并发云工作流调度引擎跨集群通信方法,其特征在于,包括:
生成器模块周期性的以远程gRPC通信方式跨集群访问Master主集群的控制器模块,并向所述控制器模块发送注册信息;所述注册信息包括所述生成器模块所在集群的Id号、所述生成器模块所在节点的Ip地址和NodePort访问端口;
所述控制器模块接收到各个集群的生成器模块的注册信息后,以远程gRPC通信方式访问各个集群的生成器模块,周期性的发送各个集群能够承载的调度器容器数量请求;
各个集群的生成器模块接收到所述控制器模块的调度器容器数量请求后,根据本集群的剩余资源和调度器容器数量请求,计算出本集群能够承载的调度器容器最大数量,生成反馈信息反馈给所述控制器模块;
所述控制器模块接收到各个集群的生成器模块的反馈信息后,根据本身工作流注入的压力情况确定调度器容器数量,以远程gRPC通信方式访问各个集群的生成器模块,发送调度器容器生成请求;
各个集群的生成器模块接收到所述控制器模块的调度器容器生成请求后,启动本集群的调度器模块,并把所述控制器模块所在节点的Ip和端口号、本集群生成器模块所在节点的Ip和端口号以及本集群的Id号信息注入本集群的调度器模块;
各个集群的调度器模块启动后,生成的调度器容器被分散调度到本集群的每个Node节点;所述调度器容器以环境变量方式获取所述控制器模块所在节点的Ip和端口号,以gRPC通信方式远程访问所述控制器模块,并向所述控制器模块发送包括本身的节点Ip和端口号的注册信息;
所述控制器模块接收到各个集群的调度器容器的注册信息后,根据全局的注入工作流的负载情况,分配待处理的工作流给各个集群的调度器容器;
各个集群的调度器容器接收到所述控制器模块分配的待处理的工作流后,根据待处理的工作流的request资源总和,以gRPC通信方式访问本集群的生成器模块并发送request资源请求;
各个集群的生成器模块接收到本集群的调度器容器的request资源请求后,根据当前request资源请求、分布式数据库保存的全局保活调度器容器总的request资源请求及当前集群的剩余资源,基于资源分配优化算法分配资源反馈给调度器容器;
各个集群的调度器容器接收到本集群生成器模块反馈的分配资源后,分配资源给各个待处理的工作流,并向本集群的生成器模块发送工作流任务容器生成请求;
各个集群的生成器模块接收到本集群的调度器容器的工作流任务容器生成请求后,生成工作流任务容器,并生成工作流任务容器的执行成功状态的反馈信息反馈给发送工作流任务容器生成请求调度器容器;
各个集群的调度器容器接收到本集群生成器模块的反馈信息后,检测反馈信息所属的工作流是否执行完毕;若执行完毕,以gRPC通信方式通知本集群的生成器模块删除反馈信息所属的工作流,以gRPC通信方式远程通知所述控制器模块工作流执行完毕的状态信息;
所述控制器模块容器根据各个集群的调度器容器发送的工作流执行完毕的状态信息,采用负载均衡策略调整各个集群调度器模块应负载的工作流数量,并以gRPC通信方式远程访问各个集群的调度器模块,控制调度器模块的保活或者死亡。
6.根据权利要求5所述的高并发云工作流调度引擎跨集群通信方法,其特征在于,在各个集群的生成器模块接收到本集群的调度器容器的request资源请求后,还将本集群的调度器容器的request资源请求记录保存到本集群的分布式数据库。
7.根据权利要求5所述的高并发云工作流调度引擎跨集群通信方法,其特征在于,在各个集群的生成器模块接收到本集群的调度器容器的工作流任务容器生成请求后,所述生成器模块采用Informer工具包和List-Watch机制监测生成的工作流任务容器的执行状态;当工作流任务容器的执行状态为执行成功状态时,删除执行成功状态的工作流任务容器。
8.根据权利要求5所述的高并发云工作流调度引擎跨集群通信方法,其特征在于,所述控制器模块容器根据各个集群的调度器容器发送的工作流执行完毕的状态信息,采用负载均衡策略调整各个集群调度器模块应负载的工作流数量,并以gRPC通信方式远程访问各个集群的调度器模块,控制调度器模块的保活或者死亡,之后还包括:
如果当前注入所述控制器模块的工作流数量减少,所述控制器模块调整各个集群调度器存活数量;如果全局调度器模块为死亡状态,则以gRPC通信方式远程访问该调度器模块所在集群的生成器模块,更新所述生成器模块维护的调度器容器资源请求记录中调度器容器的状态。
CN202110372038.1A 2021-04-07 2021-04-07 一种高并发云工作流调度引擎跨集群通信系统及方法 Active CN113032126B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110372038.1A CN113032126B (zh) 2021-04-07 2021-04-07 一种高并发云工作流调度引擎跨集群通信系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110372038.1A CN113032126B (zh) 2021-04-07 2021-04-07 一种高并发云工作流调度引擎跨集群通信系统及方法

Publications (2)

Publication Number Publication Date
CN113032126A CN113032126A (zh) 2021-06-25
CN113032126B true CN113032126B (zh) 2022-09-20

Family

ID=76453932

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110372038.1A Active CN113032126B (zh) 2021-04-07 2021-04-07 一种高并发云工作流调度引擎跨集群通信系统及方法

Country Status (1)

Country Link
CN (1) CN113032126B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114237858A (zh) * 2022-02-22 2022-03-25 北京云歌科技有限责任公司 一种基于多集群网络的任务调度方法及系统
CN115174657B (zh) * 2022-06-13 2024-08-13 青岛中科曙光科技服务有限公司 微服务应用调用方法、装置、计算机设备及存储介质
CN115604146B (zh) * 2022-11-30 2023-05-23 广东睿江云计算股份有限公司 持续获取K8s集群状况的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106919445A (zh) * 2015-12-28 2017-07-04 华为技术有限公司 一种在集群中并行调度容器的方法和装置
WO2018072687A1 (zh) * 2016-10-19 2018-04-26 华为技术有限公司 一种资源调度的方法、装置和过滤式调度器
CN112130965A (zh) * 2020-10-26 2020-12-25 腾讯科技(深圳)有限公司 部署分布式容器编排管理集群的方法、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9672064B2 (en) * 2015-07-13 2017-06-06 Palo Alto Research Center Incorporated Dynamically adaptive, resource aware system and method for scheduling
US10545796B2 (en) * 2017-05-04 2020-01-28 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing a scheduler with preemptive termination of existing workloads to free resources for high priority items

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106919445A (zh) * 2015-12-28 2017-07-04 华为技术有限公司 一种在集群中并行调度容器的方法和装置
WO2018072687A1 (zh) * 2016-10-19 2018-04-26 华为技术有限公司 一种资源调度的方法、装置和过滤式调度器
CN112130965A (zh) * 2020-10-26 2020-12-25 腾讯科技(深圳)有限公司 部署分布式容器编排管理集群的方法、设备及存储介质

Also Published As

Publication number Publication date
CN113032126A (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
CN113032126B (zh) 一种高并发云工作流调度引擎跨集群通信系统及方法
CN111966305B (zh) 持久卷分配方法、装置、计算机设备和存储介质
CN109302483B (zh) 一种应用程序的管理方法及系统
CN111290834B (zh) 一种基于云管理平台实现业务高可用的方法、装置及设备
US20210064442A1 (en) Implementing An Application Manifest In A Node-Specific Manner Using An Intent-Based Orchestrator
US20150111567A1 (en) Apparatus for End-User Transparent Utilization of Computational, Storage, and Network Capacity of Mobile Devices, and Associated Methods
CN109194538A (zh) 基于分布式协调的测试方法、装置、服务器及存储介质
CN105357296A (zh) 一种Docker云平台下弹性缓存系统
CN112291298B (zh) 异构系统的数据传输方法、装置、计算机设备和存储介质
CN111782370A (zh) 一种kubernetes多集群管理系统、方法、终端及存储介质
US20220283846A1 (en) Pod deployment method and apparatus
CN113296792A (zh) 存储方法、装置、设备、存储介质和系统
CN108491163B (zh) 一种大数据处理方法、装置和存储介质
CN110659261A (zh) 一种数据挖掘模型发布方法及模型和模型服务管理方法
CN113382077A (zh) 微服务调度方法、装置、计算机设备和存储介质
CN111324415A (zh) 一种虚拟机镜像缓存创建方法、系统及计算机可读介质
CN113204353A (zh) 一种大数据平台组件部署方法及装置
CN114615268B (zh) 基于Kubernetes集群的服务网络、监控节点、容器节点及设备
CN112230857A (zh) 一种混合云系统、混合云盘申请方法和数据存储方法
CN106850724A (zh) 数据推送方法及装置
CN112565416B (zh) 基于云原生的大规模边缘安卓设备纳管系统及其纳管方法
CN112114958A (zh) 资源隔离方法、分布式平台、计算机设备和存储介质
CN114443059A (zh) Kubernetes集群的部署方法、装置及设备
CN108810107B (zh) 一种双态it业务的云管平台以及服务方法
CN116233070A (zh) 一种集群静态ip地址的分配系统及分配方法

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