CN113377515A - 一种Kubernetes资源的任务预调度方法 - Google Patents
一种Kubernetes资源的任务预调度方法 Download PDFInfo
- Publication number
- CN113377515A CN113377515A CN202110691983.8A CN202110691983A CN113377515A CN 113377515 A CN113377515 A CN 113377515A CN 202110691983 A CN202110691983 A CN 202110691983A CN 113377515 A CN113377515 A CN 113377515A
- Authority
- CN
- China
- Prior art keywords
- task
- cluster
- kubernets
- resource
- kubernetes
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000008859 change Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 239000002699 waste material Substances 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/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/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种Kubernetes资源的任务预调度方法,涉及云计算任务调度技术领域;比较队列中待提交到Kubernetes集群的任务的需求资源信息与Kubernetes集群的剩余资源信息,并根据比较结果,决定将任务提交至Kubernetes集群或进行等待。
Description
技术领域
本发明公开一种方法,涉及云计算任务调度技术领域,具体地说是一种Kubernetes资源的任务预调度方法。
背景技术
云计算领域对服务发布等任务进行容器化部署,为不同任务提供不同且相对隔离的运行时环境,并基于Kubernetes进行管理,便于利用Kubernetes自身或其插件机制,实现灰度发布、弹性伸缩、资源监控等功能。
Kubernetes具有自身调度机制,但在集群规模一定的情况下,如果用户的每次任务请求直接提交给Kubernetes集群,一方面会造成集群压力,另一方面也会造成资源的抢占,特别是对资源比较有限的GPU集群来说,容易造成资源的抢占而无法确定任务的启动先后,导致不好的用户体验,同时对任务的状态监控、日志监控等形成困难。
发明内容
本发明针对现有技术的问题,提供一种Kubernetes资源的任务预调度方法,具有通用性强、实施简便等特点,具有广阔的应用前景。
本发明提出的具体方案是:
一种Kubernetes资源的任务预调度方法,比较队列中待提交到Kubernetes集群的任务的需求资源信息与Kubernetes集群的剩余资源信息,并根据比较结果,决定将任务提交至Kubernetes集群或进行等待。
优选地,所述的一种Kubernetes资源的任务预调度方法中将队列中任务进行优先级排队,根据任务的优先级从队列中获取任务,比较任务的需求资源信息与Kubernetes集群的剩余资源信息。
优选地,所述的一种Kubernetes资源的任务预调度方法中针对提交至Kubernetes集群的任务变动,动态监控Kubernetes集群的资源情况,获取Kubernetes集群的剩余资源信息。
优选地,所述的一种Kubernetes资源的任务预调度方法中对于进行等待的任务进行回滚。
优选地,所述的一种Kubernetes资源的任务预调度方法中针对待提交至Kubernetes集群中单节点的任务,比较任务所需GPU型号资源信息与Kubernetes集群中相同GPU型号的Node节点的剩余GPU信息,并根据比较结果,决定将任务提交至Kubernetes集群或进行等待。
一种Kubernetes资源的任务预调度系统,包括判断模块及调度模块,
判断模块比较队列中待提交到Kubernetes集群的任务的需求资源信息与Kubernetes集群的剩余资源信息,调度模块根据比较结果,决定将任务提交至Kubernetes集群或进行等待。
一种Kubernetes资源的任务预调度装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种Kubernetes资源的任务预调度方法。
计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行所述的一种Kubernetes资源的任务预调度方法。
本发明的有益之处是:
本发明提供一种Kubernetes资源的任务预调度方法,在任务提交给集群前进行预调度,将队列中任务资源需求与Kubernetes集群的剩余资源进行比较,将比较结果符合资源配置的任务提交给Kubernetes集群进行部署,避免造成任务积压在集群及资源抢占,并提供更好的用户体验。
附图说明
图1是本发明方法应用框架示意图。
图2是本发明方法任务预调度分配流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供一种Kubernetes资源的任务预调度方法,比较队列中待提交到Kubernetes集群的任务的需求资源信息与Kubernetes集群的剩余资源信息,并根据比较结果,决定将任务提交至Kubernetes集群或进行等待。
本发明方法主要针对Kubernetes的任务预调度,特别是在集群规模一定但用户或任务较多的情况下,如果直接将任务直接提交给Kubernetes集群,一方面会造成集群的压力,另一方面原生Kubernetes调度时会按照资源满足情况优先进行调度,在这种情况下,若某个任务A对资源需求较高,集群不能满足,集群可能会优先调度其他资源需求较小而资源满足的任务,这将导致任务A一直卡在待分配状态,带来不好的用户体验。而利用本发明方法在将任务提交给Kubernetes集群之前,增加预调度过程,通过比较任务需求资源与集群剩余资源,决定对任务提交或等待。将队列中合适的任务提交给Kubernetes进行部署,避免造成任务积压在集群及资源抢占。
具体应用中,新任务到来时,首先进入任务队列,任务可以是模型训练、服务发布等,也有可能会包含多个子任务,如服务的多版本灰度发布等。因用户在新建任务时可选择K8s集群,如果有多个K8s集群,每个K8s集群任务作为一个队列单独处理。
在本发明的一些实施例中,队列可以使用先入先出队列,也可以使用优先级队列,特别是在资源优先的边缘端,如需优先保证某些任务的部署,可以设置相应策略的优先级队列。根据任务优先级从队列中获取任务,通过获取Kubernetes集群的资源信息(主要是CPU、内存等),与任务需求的资源情况进行预比较,根据比较结果,决定是否将任务提交给Kubernetes集群。
对提交的任务,进行任务资源使用的监控,并监控K8s集群的资源情况,比如可借助Prometheus、Metrics等资源监控组件,也可以通过Kubernetes原生接口获取集群中Node节点的总的可用资源及已部署在节点所有pod的已用资源,从而获取节点剩余可用资源,而所有节点剩余资源之和即为集群总的剩余资源。
而对于提交失败需要等待的任务,可以进行回滚。回滚分两种情况,若部署不成功的原因是资源问题,即任务在集群中处于Pending状态,则删除已部署资源,任务回队列;若任务已成功分配到Node节点,不成功的原因是任务本身问题,则删除已部署资源,并将错误报告给用户。回滚流程可以有效解决预调度流程与Kubernetes自身比较策略存在的差异问题,并能够提高任务处理的效率。
在本发明的另一些实施例中,因预调度策略可根据实际情况进行选择,而考虑到GPU资源相对来说属于更加稀有、昂贵的资源,为提高GPU资源的利用率,并适应集群中可能有多种GPU型号同时存在的可能,在进行预调度时,比较GPU资源的过程可以为:
步骤1:建立GPU型号集合A(初始为空),任务集合B(初始为空)。
步骤2:若任务队列不为空,从队列中出列任务,获取任务所需的GPU型号,若GPU型号存在于集合A中,转向步骤4。否则,比较集群剩余GPU资源能否满足任务需求,即获取任务所需的GPU型号及个数(或显存数),获取集群中相同GPU型号的Node节点的剩余GPU个数(或显存数),进行比较,若满足,转向步骤3,若不满足,转向步骤4。
步骤3:若满足,则进一步比较CPU和内存资源,详细地,获取任务所需的CPU、内存等资源信息,获取步骤2中满足条件的Node节点的CPU、内存信息,比较看是否有满足条件的Node节点,若有,则将任务提交给集群;如不满足,转向步骤4。
步骤4:记录任务所需的GPU型号到集合A,记录任务到集合B,转向步骤2。
步骤5:每次提交任务后,清空集合A,将B中任务放回队列,转向步骤2。
步骤6:若队列已清空,清空集合A,将B中任务放回队列,转向步骤2。
上述过程优先满足GPU资源比较,可以提高比较效率,保证更好的利用GPU资源,而不致由于预调度的存在造成GPU资源的浪费,适用于单节点任务,即将任务部署到单一一个Node节点上。
同时本发明提供一种Kubernetes资源的任务预调度系统,包括判断模块及调度模块,
判断模块比较队列中待提交到Kubernetes集群的任务的需求资源信息与Kubernetes集群的剩余资源信息,调度模块根据比较结果,决定将任务提交至Kubernetes集群或进行等待。
上述系统内的各模块间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。同样地,本发明系统主要针对Kubernetes的任务预调度,利用本发明系统在将任务提交给Kubernetes集群之前,增加预调度过程,通过比较任务需求资源与集群剩余资源,决定对任务提交或等待。将队列中合适的任务提交给Kubernetes进行部署,避免造成任务积压在集群及资源抢占。
本发明还提供一种Kubernetes资源的任务预调度装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种Kubernetes资源的任务预调度方法。上述装置内的处理器的信息交互、执行可读程序过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。同样地,本发明装置主要针对Kubernetes的任务预调度,而利用本发明装置在将任务提交给Kubernetes集群之前,增加预调度过程,通过比较任务需求资源与集群剩余资源,决定对任务提交或等待。将队列中合适的任务提交给Kubernetes进行部署,避免造成任务积压在集群及资源抢占。
以及本发明提供计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行所述的一种Kubernetes资源的任务预调度方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,上述较佳实施例中各流程和各系统结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (8)
1.一种Kubernetes资源的任务预调度方法,其特征是比较队列中待提交到Kubernetes集群的任务的需求资源信息与Kubernetes集群的剩余资源信息,并根据比较结果,决定将任务提交至Kubernetes集群或进行等待。
2.根据权利要求1所述的一种Kubernetes资源的任务预调度方法,其特征是将队列中任务进行优先级排队,根据任务的优先级从队列中获取任务,比较任务的需求资源信息与Kubernetes集群的剩余资源信息。
3.根据权利要求1或2所述的一种Kubernetes资源的任务预调度方法,其特征是针对提交至Kubernetes集群的任务变动,动态监控Kubernetes集群的资源情况,获取Kubernetes集群的剩余资源信息。
4.根据权利要求1所述的一种Kubernetes资源的任务预调度方法,其特征是对于进行等待的任务进行回滚。
5.根据权利要求1所述的一种Kubernetes资源的任务预调度方法,其特征是针对待提交至Kubernetes集群中单节点的任务,比较任务所需GPU型号资源信息与Kubernetes集群中相同GPU型号的Node节点的剩余GPU信息,并根据比较结果,决定将任务提交至Kubernetes集群或进行等待。
6.一种Kubernetes资源的任务预调度系统,其特征是包括判断模块及调度模块,
判断模块比较队列中待提交到Kubernetes集群的任务的需求资源信息与Kubernetes集群的剩余资源信息,调度模块根据比较结果,决定将任务提交至Kubernetes集群或进行等待。
7.一种Kubernetes资源的任务预调度装置,其特征是包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至5中任一项所述的一种Kubernetes资源的任务预调度方法。
8.计算机可读介质,其特征是所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1至5任一项所述的一种Kubernetes资源的任务预调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110691983.8A CN113377515A (zh) | 2021-06-22 | 2021-06-22 | 一种Kubernetes资源的任务预调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110691983.8A CN113377515A (zh) | 2021-06-22 | 2021-06-22 | 一种Kubernetes资源的任务预调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113377515A true CN113377515A (zh) | 2021-09-10 |
Family
ID=77578210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110691983.8A Pending CN113377515A (zh) | 2021-06-22 | 2021-06-22 | 一种Kubernetes资源的任务预调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377515A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614211A (zh) * | 2018-11-28 | 2019-04-12 | 新华三技术有限公司合肥分公司 | 分布式任务预调度方法及装置 |
CN109634748A (zh) * | 2018-12-12 | 2019-04-16 | 深圳前海微众银行股份有限公司 | 集群资源调度方法、装置、设备及计算机可读存储介质 |
CN110442451A (zh) * | 2019-07-12 | 2019-11-12 | 中电海康集团有限公司 | 一种面向深度学习的多类型gpu集群资源管理调度方法和系统 |
CN110609742A (zh) * | 2019-09-25 | 2019-12-24 | 苏州浪潮智能科技有限公司 | 一种Kubernetes调度器的队列的配置方法和装置 |
-
2021
- 2021-06-22 CN CN202110691983.8A patent/CN113377515A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614211A (zh) * | 2018-11-28 | 2019-04-12 | 新华三技术有限公司合肥分公司 | 分布式任务预调度方法及装置 |
CN109634748A (zh) * | 2018-12-12 | 2019-04-16 | 深圳前海微众银行股份有限公司 | 集群资源调度方法、装置、设备及计算机可读存储介质 |
CN110442451A (zh) * | 2019-07-12 | 2019-11-12 | 中电海康集团有限公司 | 一种面向深度学习的多类型gpu集群资源管理调度方法和系统 |
CN110609742A (zh) * | 2019-09-25 | 2019-12-24 | 苏州浪潮智能科技有限公司 | 一种Kubernetes调度器的队列的配置方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8458712B2 (en) | System and method for multi-level preemption scheduling in high performance processing | |
US8789058B2 (en) | System and method for supporting batch job management in a distributed transaction system | |
US8756613B2 (en) | Scalable, parallel processing of messages while enforcing custom sequencing criteria | |
CN111949386A (zh) | 一种任务调度方法、系统、计算装置及可读存储介质 | |
CN103532823A (zh) | 物联网消息处理方法、装置及系统 | |
CN109710416B (zh) | 资源调度方法及装置 | |
CN111367679A (zh) | 人工智能算力资源复用方法及装置 | |
WO2013107012A1 (zh) | 分布式计算任务处理系统和任务处理方法 | |
CA2928865C (en) | Strict queue ordering in a distributed system | |
WO2015200830A1 (en) | Multi-tiered processing using a distributed strict queue | |
CN113132456B (zh) | 一种基于截止时间感知的边云协同任务调度方法及系统 | |
CN110365786B (zh) | 作业处理系统、异步作业调度方法和计算机设备 | |
CN116048825A (zh) | 容器集群构建方法及系统 | |
CN110888739B (zh) | 延迟任务的分布式处理方法与装置 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN113377515A (zh) | 一种Kubernetes资源的任务预调度方法 | |
CN115220908A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN115794335A (zh) | 算力网络任务调度引擎方法及装置 | |
CN109165027A (zh) | 虚拟机操作系统安装方法、装置、设备及可读存储介质 | |
CN101349975A (zh) | 实现中断底半部机制的方法及嵌入式系统 | |
CN115220907A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN111026809A (zh) | 一种调度流程分布式执行系统 | |
CN111090627A (zh) | 基于池化的日志存储方法、装置、计算机设备及存储介质 | |
US11789777B2 (en) | Resource utilization method, electronic device, and computer program product | |
CN104956328A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210910 |
|
RJ01 | Rejection of invention patent application after publication |