CN113672391A - 一种基于Kubernetes的并行计算任务调度方法与系统 - Google Patents
一种基于Kubernetes的并行计算任务调度方法与系统 Download PDFInfo
- Publication number
- CN113672391A CN113672391A CN202110968151.6A CN202110968151A CN113672391A CN 113672391 A CN113672391 A CN 113672391A CN 202110968151 A CN202110968151 A CN 202110968151A CN 113672391 A CN113672391 A CN 113672391A
- Authority
- CN
- China
- Prior art keywords
- task
- computing
- task scheduling
- pod
- tasks
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000004364 calculation method Methods 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 9
- 230000007246 mechanism Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 abstract description 6
- 101100491335 Caenorhabditis elegans mat-2 gene Proteins 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 102100033121 Transcription factor 21 Human genes 0.000 description 2
- 101710119687 Transcription factor 21 Proteins 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- -1 Pod2 Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于Kubernetes的并行计算任务调度方法:将运行计算任务的应用部署在Kubernetes Service的多个Pod复制集中,通过Service访问计算应用时,利用基于七层负载均衡的策略以及Pod分配调度策略,将请求的计算任务分发到这些运行相同程序的某个Pod中,从而实现并行计算。本发明还提供了一种基于Kubernetes的并行计算任务调度系统:任务调度队列,用于提供根据计算任务创建任务调度队列、添加计算任务、调整计算任务优先级、记录已执行任务及其执行结果并根据结果决策后续处理、设定调度策略和定制调度策略;计算资源池,用于提供对Kubernetes的计算资源的管理;外部调度器,用于实现计算任务的调度分发和计算资源的调度。本发明能有效的解决网络规划场景下串行计算效率低下的问题。
Description
技术领域
本发明属于并行计算技术领域,更具体地,涉及一种基于Kubernetes的并行计算任务调度方法与系统。
背景技术
随着并行计算、分布式存储、容器集群等技术的不断发展,容器部署的分布式计算集群系统成为了传统互联网通信的新方向。特别是在网络规划方面,多方案多策略同时提供成为了客户的新需求,这就引入了大量的计算任务,因此对并行计算提出来新的要求。
使用Kubernetes搭建的集群环境,采取多Pod并行计算能够一部分的满足并行计算的要求,但由于Kubernetes提供的负载均衡策略单一、对七层负载均衡支持不足等问题,也使得其不能满足网络规划计算中的一些特点业务需求。Kubernetes提供的负载均衡及Pod调度,以及现有的针对Kubernetes集群调度的方案,大多提供的都是对Pod资源的调度,在计算大量的小规模任务时,Pod的频繁迁移、重启加大了集群系统的负担。因此,提供一种更加灵活的、基于计算任务的调度方式与系统,是更好满足网络规划中并行计算特点的关键。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于Kubernetes的并行计算任务调度方案,解决网络规划场景下,网络规划任务并行计算中计算任务调度机制单一、无法灵活定制策略的问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于Kubernetes的并行计算任务调度方法,包括:
将运行计算任务的应用部署在Kubernetes Service的多个Pod复制集中,通过Service访问计算应用时,利用基于七层负载均衡的策略以及Pod分配调度策略,将请求的计算任务分发到这些运行相同程序的某个Pod中,从而实现并行计算;其中,所述基于七层负载均衡的策略,具体为:
利用基于URL的七层负载均衡的外部调度器,根据多种指定策略和具体业务场景需求指定任务发往执行的Pod,在此外部调度器的支持下,计算任务分发时不会在最初完成所有任务的分发,而会在所有Pod均分入任务运行时暂停任务分发,等待某个Pod中的任务运行完成再进行分发,从而使得任务的运行时间整体更优。
本发明的一个实施例中,所述Pod分配调度策略,具体为:在外部调度器中实现任务分发时的检测机制,实时监控Pod所在节点资源的使用情况并预估待分发任务所需的资源,当资源不足时,暂缓任务分发,等待资源充足时再行分发或动态扩充资源。
本发明的一个实施例中,所述Pod分配调度策略,具体为:当待分发的任务较多,负载较重时,为这些任务动态地分配更多Pod供其选择,从而保证任务的稳定运行。
本发明的一个实施例中,所述Pod分配调度策略的实现方式为:
实现多个个并行计算任务的调度队列,每个任务调度队列中收集一类有共同目标服务的任务,并为任务调度队列分配可使用的Pod资源,同时外部调度器实现任务调度队列与Pod绑定关系的功能,该功能的调度方式为将Pod分配给不同的任务调度队列,而非迁移Pod所在的物理机,当任务调度队列的任务负载过大时,该外部调度器可以动态地将分配给较空闲的队列的Pod调度至该负载较大的任务调度队列使用。
本发明的一个实施例中,所述基于URL的七层负载均衡的外部调度器,实现方式为:
Kubernetes的StatefulSet生成的Pod集合中,Pod的名称是有规律并且不被破坏的,通过该特性调度器能够准确地获取到想要的Pod的访问URL,从而实现七层负载均衡,此时调度器再根据计算任务的特征和计算资源的情况进行决策,决定计算任务发往的目的Pod。
按照本发明的另一方面,还提供了一种基于Kubernetes的并行计算任务调度系统,包括任务调度队列、计算资源池和外部调度器,其中:
所述任务调度队列,用于提供根据计算任务创建任务调度队列、添加计算任务、调整计算任务优先级、记录已执行任务及其执行结果并根据结果决策后续处理、设定调度策略和定制调度策略;
所述计算资源池,用于提供对Kubernetes的计算资源的管理;
所述外部调度器,用于实现计算任务的调度分发和计算资源的调度。
本发明的一个实施例中,所述计算任务的模型包括以下属性:
(1)任务组:描述多个计算任务间的关联关系;
(2)目标服务:描述执行该计算任务的目标服务;
(3)任务调度队列标识:描述计算任务加入的任务调度队列,任务调度队列标识由上层业务特征决定,根据目标服务和队列标识可得出计算任务应加入哪个任务调度队列;
(4)任务的执行策略,包含:(4.1)任务的优先级,(4.2)选择Pod的策略,(4.3)并行计算最大Pod数;
(5)执行任务的目标服务的方法、参数。
本发明的一个实施例中,所述计算资源池对Kubernetes的计算资源的管理包括:Pod创建、变化、重启、消亡的监听及处理、Pod URL、端口的获取和管理。
本发明的一个实施例中,所述外部调度器实现计算任务的调度分发包括:接收计算任务,并判断有无相应的任务调度队列,若无则创建任务调度队列并为队列分配计算资源,并将任务加入任务调度队列,若有则直接加入任务调度队列;任务调度分发的触发条件有如下几种:(1)计算任务加入到任务调度队列;(2)任务调度队列有新增的空闲Pod;(3)任务调度队列中有执行完成的计算任务。
本发明的一个实施例中,所述外部调度器实现计算资源的调度包括:初始为所有任务调度队列分配一定数量的计算资源供其使用,初始的分配方式为均分或按需指定,当发生如下两种情况时,调度器会对计算资源进行动态调整:
(1)新增或删除任务调度队列:任务调度队列的总数量发生改变时,调度器会重复进行一次计算资源的分配,将所有Pod重新均分给所有队列,但会在执行该操作时,尽量减少计算资源归属的变化,即尽量保持已分配的计算资源归属不变,仅减少或增加必须变化的部分;
(2)任务调度队列负载过高时:当某一任务调度队列负载过高,超出预设的判定阈值时,调度器会选择较空闲的任务调度队列持有的计算资源,调配给该任务调度队列暂时使用,当负载判定恢复正常后,调度器会将这些借调的计算资源恢复给原先的归属。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:
本发明能够有效的解决网络规划场景下串行计算效率低下的问题,通过实现基于Kubernetes集群的并行计算极大的提升运算速度。同时解决了基于Kubernetes的并行计算系统中,Kubernetes调度器负载均衡策略单一、对七层负载均衡支持不足、对资源紧张情况的处理会导致Pod迁移重启使计算任务丢失的问题,从而能够更好地为基于Kubernetes构建的并行计算系统提供更灵活、更高性能的计算任务调度方式,能够针对网络规划中的特定业务场景提供更多灵活可定制的调度策略,保证计算任务的稳定运行,进一步提升并行计算效率和效果。
附图说明
图1为传统串行计算、单机多线程并行计算与本发明改进后的并行计算对比示意图;
图2为Kubernetes原生负载均衡效果与本发明改进后负载均衡效果示意图;
图3为本发明的任务调度队列与调度器架构示意图;
图4为本发明实施例中计算任务调度执行流程图;
图5为本发明实施例中Pod调度流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在网络规划场景中,单个的规划任务的计算需要消耗大量的时间和运算资源,传统的网络规划系统中,由于软件规模和架构的限制,计算任务通常是串行计算的,因此运算速度成为了网络规划中的巨大瓶颈。另一方面,由于计算任务需要的运行资源大,在单个软件中使用多线程进行并行计算,又会遇到单机资源不足的瓶颈,导致任务计算变慢。附图1描述了串行计算、使用线程并行计算与引入集群部署进行并行计算的差别。因此,本发明引入了Kubernetes对计算模块进行集群部署,以实现并行计算,提升运算速度。
基于Kubernetes进行并行计算的基础是Kubernetes提供的Service下可挂载多个运行相同应用的Pod,这些Pod具有可通过统一的Service入口进行访问的特性,Kubernetes的调度器按照默认策略将访问该Service的不同请求分发到各个Pod中。但Kubernetes原生的调度器是基于四层负载均衡的调度,即基于IP+端口的负载均衡,只能提供单一的轮询方式进行请求的分发,在网络规划场景下,会产生如下两个问题:
(1)如附图2中所示,任务1和任务4运行时间都较长,任务2和任务5运行时间较短,按照Kubernetes的分发机制,任务在最初分发时就会按照轮询的方式分配到各个Pod,而无法根据任务的实际完成时间调整分发顺序,因此集群中所有任务运行完成的时间为任务1加任务4的时间,该结果导致总体规划时间可能仍然过长,并未选择最优的分发方案。
(2)若任务1、2、3轮询同时分发到Pod1、Pod2、Pod3中,若Pod1、2、3部署在同一个节点,任务1、2的运行导致该节点资源不足,则Pod3会被Kubernetes调度到另外的节点(Pod1、2、3在同一节点运行时,当任务1、2发送到Pod1、2中,导致节点总体资源紧张,不足以支持Pod3继续运行时,Kubernetes的机制会导致Pod3被调度到别的节点以保证其正常运行),该调度动作会导致Pod3的消亡和重启,从而导致任务3丢失。现有的其他相关方案中提出的基于Kubernetes改进的负载均衡算法仍然存在该问题。
为解决上述技术问题,本发明提供一种基于Kubernetes的并行计算任务调度方案,具体包括:
实现基于Kubernetes集群部署的并行计算系统以解决串行计算与单机多线程计算中计算效率低下、资源受限的问题。该并行计算系统将运行计算任务的应用部署在Kubernetes Service的多个Pod复制集中,通过Service访问计算应用时,将请求的计算任务分发到这些运行相同程序的某个Pod中,从而实现并行计算。
实现基于七层负载均衡的任务调度以解决上文所述两个问题。
对问题一,即Kubernetes原生的调度器是基于四层负载均衡的调度(基于IP+端口的负载均衡),只能提供单一的轮询方式进行请求的分发的问题,本发明实现了基于七层负载均衡,即基于URL的负载均衡的外部调度器,能够根据多种指定策略和具体业务场景需求指定任务发往执行的Pod。在此外部调度器的支持下,计算任务分发时不会在最初完成所有任务的分发,而会在所有Pod均分入任务运行时暂停任务分发,等待某个Pod中的任务运行完成再进行分发,从而使得任务的运行时间整体更优。
对问题二,即任务的运行导致节点资源不足时,Kubernetes会迁移资源不足的Pod导致计算任务的丢失的问题,本发明提供了如下两种机制结合保证资源的合理调配和任务的稳定运行。其一、在外部调度器中实现任务分发时的检测机制,实时监控Pod所在节点资源的使用情况并预估待分发任务所需的资源,当资源不足时,暂缓任务分发,等待资源充足时再行分发或动态扩充资源。其二、当待分发的任务较多,负载较重时,为这些任务动态地分配更多Pod供其选择,从而保证任务的稳定运行。为实现这两点,本发明实现了多个个并行计算任务的任务调度队列,每个任务调度队列中收集一类有共同目标服务的任务,并为任务调度队列分配可使用的Pod资源,同时外部调度器实现任务调度队列与Pod绑定关系的功能。该功能的调度方式为将Pod分配给不同的任务调度队列,而非迁移Pod所在的物理机。当任务调度队列的任务负载过大时,该调度器可以动态地将分配给较空闲的任务调度队列的Pod调度至该负载较大的任务调度队列使用。
参见附图3,本发明提供的基于Kubernetes的并行计算任务调度系统分为三个部分:基于七层负载均衡的任务调度队列、调度Pod与任务调度队列绑定关系的外部调度器、计算资源(Pod)池。
任务调度队列提供根据计算任务创建任务调度队列、添加计算任务、调整计算任务优先级、记录已执行任务及其执行结果并根据结果决策后续处理、设定调度策略、定制调度策略等功能。
本系统定义了一种计算任务的模型(即图3中的task1、task2等),用于描述以下属性:
(1)任务组:描述多个计算任务间的关联关系;
(2)目标服务:描述执行该计算任务的目标服务;
(3)任务调度队列标识:描述计算任务加入的任务调度队列,任务调度队列标识由上层业务特征决定,根据目标服务和队列标识可得出计算任务应加入哪个任务调度队列;如图3中所示,任务队列与POD池是对应关系,例如图3中显示的有2个queue,则对应有2个POD池;
(4)任务的执行策略,包含:
(4.1)任务的优先级:决定任务的执行顺序,可动态修改,以调整任务调度队列中任务的执行顺序;
(4.2)选择Pod的策略:描述任务调度的策略,通常有以下几种:
(4.2.1)优先负载低的Pod:根据Pod所在物理机的CPU、内存等使用情况,选择计算资源池中负载最低的Pod;
(4.2.2)轮询:按照轮询的方式依次选择计算资源池中的Pod;
(4.2.3)优先空闲:选择未执行计算任务的较空闲的Pod;
(4.2.4)优先最久未使用:选择距执行上一个计算任务时间最久的Pod;
(4.3)并行计算最大Pod数:描述可同时执行某类计算任务的Pod的数量,在某些业务场景下,一些计算任务可进行并行计算,但并行计算会比串行计算牺牲一点的结果优势,在需要平衡速度和结果时,可通过设置该参数,使其不使用最多的可用Pod以保证结果较优。
(5)执行任务的目标服务的方法、参数:描述执行任务使用的目标服务中的具体方法和参数。为了达到外部调度模块与上下层业务解耦的目的,在计算任务中通过描述该参数,使下层模块根据该参数获取需要调用的方法。
计算资源(Pod)池提供对Kubernetes的Pod资源的管理。具体包括:Pod创建、变化、重启、消亡的监听及处理、Pod URL、端口的获取和管理等。
本系统为了实现七层负载均衡,采用了如下方法:
原生Kubernetes的服务调度与Pod访问逻辑为其内部系统所决定,只能提供四层负载均衡,即基于Pod的负载均衡。调度器所决策的内容为Pod运行在哪个物理机上,Pod的用途和运行的任务均需提取确定。该系统中,为了满足计算任务按需并行计算,需在任务调度时能够将任务发送到指定Pod执行,同时使用外部调度器决策计算任务需发往哪个Pod进行计算。为了实现这一目标,本系统利用了Kubernetes的以下特性:Kubernetes的StatefulSet生成的Pod集合中,Pod的名称是有规律的,比如一个Replicas为3的StatefulSet,其中的Pod命名将会遵循pod_prefix_0,pod_prefix_1,pod_prefix_2的规则创建,改变Replicas的值时,也不会破坏该规律。通过该特性调度器能够准确地获取到想要的Pod的访问URL,从而实现七层负载均衡,此时调度器再根据计算任务的特征和计算资源的情况进行决策,决定计算任务发往的目的Pod。
外部调度器提供了本系统的所有调度功能。区别于Kubernetes自身的调度器Scheduler,该外部调度器不会对Pod本身产生操作,而是通过编程手段,调度计算任务以及Pod归属。
其主要的调度功能分为两部分:
其一,计算任务的调度分发,部分流程参见附图4。
如图4所示,本系统接收根据上文所述计算任务模型创建的计算任务,并判断有无相应的任务调度队列,若无,则创建任务调度队列并为队列分配计算资源(Pod),并将任务加入任务调度队列,若有,则直接加入任务调度队列。分配计算资源的原则可依据需求定义,如以下几种:
均分:将所有计算资源均分给所有任务调度队列,新增任务调度队列时重新均分计算资源;
抢占:所有计算资源由任务调度队列共有,执行计算任务时抢占资源;
预留+抢占:将计算资源分为两部分,一部分为预留资源,保证该部分永远有空闲可用的计算资源能够快速响应任务调度队列的任务执行,另一部分共有资源采用抢占方式。
本文以均分方式为例进行描述。
任务加入队列后,进行任务的调度分发,判断是否有空闲可用的计算资源,获取到可用的计算资源后,下发任务调度队列中优先级最高的任务,在指定的计算资源中执行任务。若无空闲任务,则等待其他条件触发任务调度分发。
任务调度分发的触发条件有如下几种:(1)计算任务加入到任务调度队列;(2)分配给任务调度队列的计算资源(Pod)有新增;(3)任务调度队列中有执行完成的计算任务。
其二,计算资源(Pod)的调度,其调度流程如下:
初始为所有任务调度队列分配一定数量的计算资源(Pod)供其使用,初始的分配方式为均分或按需指定。当发生如下两种情况时,调度器会对计算资源进行动态调整:
(1)新增或删除任务调度队列:任务调度队列的总数量发生改变时,调度器会重复进行一次计算资源的分配,将所有Pod重新均分给所有队列,但会在执行该操作时,尽量减少计算资源归属的变化(即尽量保持已分配的计算资源归属不变,仅减少或增加必须变化的部分);
(2)任务调度队列负载过高时:当某一任务调度队列负载过高,超出预设的判定阈值(如新增速度>>消费速度)时,调度器会选择较空闲的任务调度队列持有的计算资源,调配给该任务调度队列暂时使用。当负载判定恢复正常后,调度器会将这些借调的计算资源恢复给原先的归属。
特别的,在计算资源调配过程中,Pod中仍有正在运行的原归属的任务,则任务会继续运行完成,之后Pod变为可用状态,重新加载新归属的执行服务。
附图5给出了一个示例,具体流程如下:
初始队列A和队列B各分配了1-4与5-10号Pod提供计算任务的执行服务,此时新增了队列C,经过调度器的统筹,按照资源均分的策略,调度器将队列A的4号Pod、队列B的9、10号Pod分配给队列C。图中颜色标识了各个Pod的归属。
当队列C的负载过高时,调度器决策需要将较空闲的A、B队列持有的Pod暂借给队列C使用以缓解压力。此时Pod3、Pod7、Pod8被分配给队列C使用,可执行队列C中的计算任务,若分配给C时,Pod中仍有正在运行的A、B的任务,则任务会继续运行完成,之后Pod变为可用状态,重新加载C的执行服务。但Pod3、Pod7、Pod8的实际归属仍为队列A、B,因此当队列C的负载恢复正常水平后,这些Pod会重新回到队列A、B的可用资源池中。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于Kubernetes的并行计算任务调度方法,其特征在于,包括:
将运行计算任务的应用部署在Kubernetes Service的多个Pod复制集中,通过Service访问计算应用时,利用基于七层负载均衡的策略以及Pod分配调度策略,将请求的计算任务分发到这些运行相同程序的某个Pod中,从而实现并行计算;其中,所述基于七层负载均衡的策略,具体为:
利用基于URL的七层负载均衡的外部调度器,根据多种指定策略和具体业务场景需求指定任务发往执行的Pod,在此外部调度器的支持下,计算任务分发时不会在最初完成所有任务的分发,而会在所有Pod均分入任务运行时暂停任务分发,等待某个Pod中的任务运行完成再进行分发,从而使得任务的运行时间整体更优。
2.如权利要求1所述的基于Kubernetes的并行计算任务调度方法,其特征在于,所述Pod分配调度策略,具体为:
在外部调度器中实现任务分发时的检测机制,实时监控Pod所在节点资源的使用情况并预估待分发任务所需的资源,当资源不足时,暂缓任务分发,等待资源充足时再行分发或动态扩充资源。
3.如权利要求1所述的基于Kubernetes的并行计算任务调度方法,其特征在于,所述Pod分配调度策略,具体为:
当待分发的任务较多,负载较重时,为这些任务动态地分配更多Pod供其选择,从而保证任务的稳定运行。
4.如权利要求1或2所述的基于Kubernetes的并行计算任务调度方法,其特征在于,所述Pod分配调度策略的实现方式为:
实现多个个并行计算任务的调度队列,每个任务调度队列中收集一类有共同目标服务的任务,并为任务调度队列分配可使用的Pod资源,同时外部调度器实现任务调度队列与Pod绑定关系的功能,该功能的调度方式为将Pod分配给不同的任务调度队列,而非迁移Pod所在的物理机,当任务调度队列的任务负载过大时,该外部调度器可以动态地将分配给较空闲的队列的Pod调度至该负载较大的任务调度队列使用。
5.如权利要求1或2所述的基于Kubernetes的并行计算任务调度方法,其特征在于,所述基于URL的七层负载均衡的外部调度器,实现方式为:
Kubernetes的StatefulSet生成的Pod集合中,Pod的名称是有规律并且不被破坏的,通过该特性调度器能够准确地获取到想要的Pod的访问URL,从而实现七层负载均衡,此时调度器再根据计算任务的特征和计算资源的情况进行决策,决定计算任务发往的目的Pod。
6.一种基于Kubernetes的并行计算任务调度系统,其特征在于,包括任务调度队列、计算资源池和外部调度器,其中:
所述任务调度队列,用于提供根据计算任务创建任务调度队列、添加计算任务、调整计算任务优先级、记录已执行任务及其执行结果并根据结果决策后续处理、设定调度策略和定制调度策略;
所述计算资源池,用于提供对Kubernetes的计算资源的管理;
所述外部调度器,用于实现计算任务的调度分发和计算资源的调度。
7.如权利要求6所述的基于Kubernetes的并行计算任务调度系统,其特征在于,所述计算任务的模型包括以下属性:
(1)任务组:描述多个计算任务间的关联关系;
(2)目标服务:描述执行该计算任务的目标服务;
(3)任务调度队列标识:描述计算任务加入的任务调度队列,任务调度队列标识由上层业务特征决定,根据目标服务和队列标识可得出计算任务应加入哪个任务调度队列;
(4)任务的执行策略,包含:(4.1)任务的优先级,(4.2)选择Pod的策略,(4.3)并行计算最大Pod数;
(5)执行任务的目标服务的方法、参数。
8.如权利要求6或7所述的基于Kubernetes的并行计算任务调度系统,其特征在于,所述计算资源池对Kubernetes的计算资源的管理包括:
Pod创建、变化、重启、消亡的监听及处理、Pod URL、端口的获取和管理。
9.如权利要求6或7所述的基于Kubernetes的并行计算任务调度系统,其特征在于,所述外部调度器实现计算任务的调度分发包括:
接收计算任务,并判断有无相应的任务调度队列,若无则创建任务调度队列并为队列分配计算资源,并将任务加入任务调度队列,若有则直接加入任务调度队列;任务调度分发的触发条件有如下几种:(1)计算任务加入到任务调度队列;(2)任务调度队列有新增的空闲Pod;(3)任务调度队列中有执行完成的计算任务。
10.如权利要求6或7所述的基于Kubernetes的并行计算任务调度系统,其特征在于,所述外部调度器实现计算资源的调度包括:初始为所有任务调度队列分配一定数量的计算资源供其使用,初始的分配方式为均分或按需指定,当发生如下两种情况时,调度器会对计算资源进行动态调整:
(1)新增或删除任务调度队列:任务调度队列的总数量发生改变时,调度器会重复进行一次计算资源的分配,将所有Pod重新均分给所有队列,但会在执行该操作时,尽量减少计算资源归属的变化,即尽量保持已分配的计算资源归属不变,仅减少或增加必须变化的部分;
(2)任务调度队列负载过高时:当某一任务调度队列负载过高,超出预设的判定阈值时,调度器会选择较空闲的任务调度队列持有的计算资源,调配给该任务调度队列暂时使用,当负载判定恢复正常后,调度器会将这些借调的计算资源恢复给原先的归属。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110968151.6A CN113672391B (zh) | 2021-08-23 | 2021-08-23 | 一种基于Kubernetes的并行计算任务调度方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110968151.6A CN113672391B (zh) | 2021-08-23 | 2021-08-23 | 一种基于Kubernetes的并行计算任务调度方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113672391A true CN113672391A (zh) | 2021-11-19 |
CN113672391B CN113672391B (zh) | 2023-11-28 |
Family
ID=78545014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110968151.6A Active CN113672391B (zh) | 2021-08-23 | 2021-08-23 | 一种基于Kubernetes的并行计算任务调度方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672391B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114897283A (zh) * | 2022-02-22 | 2022-08-12 | 武汉大学 | 一种分布式卫星任务规划系统 |
WO2023142843A1 (en) * | 2022-01-25 | 2023-08-03 | Zhejiang Dahua Technology Co., Ltd. | Resource management systems and methods thereof |
CN116775255A (zh) * | 2023-08-15 | 2023-09-19 | 长沙伊士格信息科技有限责任公司 | 一种支持广泛集成场景的全域集成系统 |
CN117955985A (zh) * | 2024-03-26 | 2024-04-30 | 佛山科学技术学院 | 一种基于并行计算的节点压力寻优方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101986272A (zh) * | 2010-11-05 | 2011-03-16 | 北京大学 | 一种云计算环境下的任务调度方法 |
CN102184125A (zh) * | 2011-06-02 | 2011-09-14 | 首都师范大学 | 异构多核环境下基于程序行为在线分析的负载均衡方法 |
CN104917825A (zh) * | 2015-05-20 | 2015-09-16 | 中国科学院信息工程研究所 | 一种面向实时流计算平台的负载均衡方法 |
CN108388472A (zh) * | 2018-03-01 | 2018-08-10 | 吉林大学 | 一种基于Docker集群的弹性任务调度系统及方法 |
US20180321971A1 (en) * | 2017-05-04 | 2018-11-08 | salesforce.com,inc. | Systems, methods, and apparatuses for implementing a scalable scheduler with heterogeneous resource allocation of large competing workloads types using qos |
CN109885389A (zh) * | 2019-02-19 | 2019-06-14 | 山东浪潮云信息技术有限公司 | 一种基于容器的并行深度学习调度训练方法及系统 |
WO2020000944A1 (zh) * | 2018-06-25 | 2020-01-02 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
CN110780998A (zh) * | 2019-09-29 | 2020-02-11 | 武汉大学 | 基于Kubernetes的动态负载均衡资源调度方法 |
CN111522639A (zh) * | 2020-04-16 | 2020-08-11 | 南京邮电大学 | Kubernetes集群架构系统下多维资源调度方法 |
US20200285510A1 (en) * | 2019-03-08 | 2020-09-10 | Fujitsu Limited | High precision load distribution among processors |
CN111800458A (zh) * | 2020-05-22 | 2020-10-20 | 浙商银行股份有限公司 | 一种Kubernetes容器云平台的动态负载均衡方法及系统 |
CN112540827A (zh) * | 2020-12-08 | 2021-03-23 | 北京航天云路有限公司 | 一种基于k8s平台的负载均衡系统及实现方法 |
US20210141655A1 (en) * | 2019-11-13 | 2021-05-13 | Vmware, Inc. | Unified resource management for containers and virtual machines |
-
2021
- 2021-08-23 CN CN202110968151.6A patent/CN113672391B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101986272A (zh) * | 2010-11-05 | 2011-03-16 | 北京大学 | 一种云计算环境下的任务调度方法 |
CN102184125A (zh) * | 2011-06-02 | 2011-09-14 | 首都师范大学 | 异构多核环境下基于程序行为在线分析的负载均衡方法 |
CN104917825A (zh) * | 2015-05-20 | 2015-09-16 | 中国科学院信息工程研究所 | 一种面向实时流计算平台的负载均衡方法 |
US20180321971A1 (en) * | 2017-05-04 | 2018-11-08 | salesforce.com,inc. | Systems, methods, and apparatuses for implementing a scalable scheduler with heterogeneous resource allocation of large competing workloads types using qos |
CN108388472A (zh) * | 2018-03-01 | 2018-08-10 | 吉林大学 | 一种基于Docker集群的弹性任务调度系统及方法 |
WO2020000944A1 (zh) * | 2018-06-25 | 2020-01-02 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
CN109885389A (zh) * | 2019-02-19 | 2019-06-14 | 山东浪潮云信息技术有限公司 | 一种基于容器的并行深度学习调度训练方法及系统 |
US20200285510A1 (en) * | 2019-03-08 | 2020-09-10 | Fujitsu Limited | High precision load distribution among processors |
CN110780998A (zh) * | 2019-09-29 | 2020-02-11 | 武汉大学 | 基于Kubernetes的动态负载均衡资源调度方法 |
US20210141655A1 (en) * | 2019-11-13 | 2021-05-13 | Vmware, Inc. | Unified resource management for containers and virtual machines |
CN111522639A (zh) * | 2020-04-16 | 2020-08-11 | 南京邮电大学 | Kubernetes集群架构系统下多维资源调度方法 |
CN111800458A (zh) * | 2020-05-22 | 2020-10-20 | 浙商银行股份有限公司 | 一种Kubernetes容器云平台的动态负载均衡方法及系统 |
CN112540827A (zh) * | 2020-12-08 | 2021-03-23 | 北京航天云路有限公司 | 一种基于k8s平台的负载均衡系统及实现方法 |
Non-Patent Citations (2)
Title |
---|
平凡等: "基于Kubernetes的动态负载均衡机制研究与设计", 计算机与数字工程, pages 141 - 146 * |
网友: "当Kubernets遇上阿里云 -之七层负载均衡(一)", pages 1, Retrieved from the Internet <URL:https://developer.aliyun.com/article/69580> * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023142843A1 (en) * | 2022-01-25 | 2023-08-03 | Zhejiang Dahua Technology Co., Ltd. | Resource management systems and methods thereof |
CN114897283A (zh) * | 2022-02-22 | 2022-08-12 | 武汉大学 | 一种分布式卫星任务规划系统 |
CN116775255A (zh) * | 2023-08-15 | 2023-09-19 | 长沙伊士格信息科技有限责任公司 | 一种支持广泛集成场景的全域集成系统 |
CN116775255B (zh) * | 2023-08-15 | 2023-11-21 | 长沙伊士格信息科技有限责任公司 | 一种支持广泛集成场景的全域集成系统 |
CN117955985A (zh) * | 2024-03-26 | 2024-04-30 | 佛山科学技术学院 | 一种基于并行计算的节点压力寻优方法 |
CN117955985B (zh) * | 2024-03-26 | 2024-06-07 | 佛山科学技术学院 | 一种基于并行计算的节点压力寻优方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113672391B (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113672391B (zh) | 一种基于Kubernetes的并行计算任务调度方法与系统 | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
US9218213B2 (en) | Dynamic placement of heterogeneous workloads | |
CN113064712B (zh) | 基于云边环境的微服务优化部署控制方法、系统及集群 | |
WO2016078178A1 (zh) | 一种虚拟cpu调度方法 | |
CN108123980B (zh) | 一种资源调度方法及系统 | |
CN113454614A (zh) | 用于分布式计算中的资源划分的系统和方法 | |
CN110221920B (zh) | 部署方法、装置、存储介质及系统 | |
Wided et al. | Load balancing with Job Migration Algorithm for improving performance on grid computing: Experimental Results | |
CN109783225B (zh) | 一种多租户大数据平台的租户优先级管理方法及系统 | |
WO2020134133A1 (zh) | 一种资源配置方法、变电站及计算机可读存储介质 | |
CN114356543A (zh) | 一种基于Kubernetes的多租户机器学习任务资源调度方法 | |
CN110838939B (zh) | 一种基于轻量级容器的调度方法及边缘物联管理平台 | |
CN114625500B (zh) | 云环境下拓扑感知的微服务应用调度的方法及应用 | |
US20230037293A1 (en) | Systems and methods of hybrid centralized distributive scheduling on shared physical hosts | |
Chai et al. | A parallel placement approach for service function chain using deep reinforcement learning | |
Elsharkawey et al. | Mlrts: multi-level real-time scheduling algorithm for load balancing in fog computing environment | |
CN116954905A (zh) | 一种面向Flink大数据的任务编排与迁移方法 | |
WO2020108337A1 (zh) | 一种cpu资源调度方法及电子设备 | |
Wu et al. | ABP scheduler: Speeding up service spread in docker swarm | |
CN117608760A (zh) | 应用于Kubernetes的云上应用混合部署方法 | |
CN109298949B (zh) | 一种分布式文件系统的资源调度系统 | |
CN112395052A (zh) | 一种面向混合负载基于容器的集群资源管理方法及系统 | |
CN115361349B (zh) | 资源使用方法和装置 | |
Du et al. | A combined priority scheduling method for distributed machine learning |
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 |