CN112860383A - 集群资源调度方法、装置、设备及存储介质 - Google Patents
集群资源调度方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112860383A CN112860383A CN202110271771.4A CN202110271771A CN112860383A CN 112860383 A CN112860383 A CN 112860383A CN 202110271771 A CN202110271771 A CN 202110271771A CN 112860383 A CN112860383 A CN 112860383A
- Authority
- CN
- China
- Prior art keywords
- node
- resource
- cluster
- target
- scheduling
- 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 57
- 238000012216 screening Methods 0.000 claims abstract description 53
- 238000004422 calculation algorithm Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 12
- 230000000875 corresponding effect Effects 0.000 description 16
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 15
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000006467 substitution reaction 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种集群资源调度方法、装置、设备及存储介质,其中,该方法包括:接收目标容器组的运行请求,运行请求包括目标容器组的资源申请量,从集群中筛选出满足资源申请量对应的资源申请条件的至少一个目标节点,获取集群的资源使用率,若集群的资源使用率大于或等于预设阈值,则从至少一个目标节点中筛选出满足预设资源剩余条件的调度节点,在调度节点上运行目标容器组。本申请在集群的资源使用率大于或等于预设阈值时,优先将目标容器组分配到满足预设资源剩余条件的调度节点上,优先把一个调度节点打满,那么在后续接收到大资源申请量的运行请求时,可以提高资源调度的成功率,以提高集群资源利用率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种集群资源调度方法、装置、设备及存储介质。
背景技术
容器技术是当前热门且最前沿的技术,基于K8S集群设计的底层架构越来越普及,Kubernetes(简称K8S)提供了应用部署、规划、更新、维护的一种机制,使得软件的部署更为容易,真正实现了“一次部署,到处运行”。
现阶段,在基于K8S搭建的集群中存在若干节点,K8S默认调度策略为均衡调度策略,在该策略作用下,使得集群中的节点不至于太空闲也不至于被堆满,最终的结果是集群中所有节点大致处于同一水位。
然而,当集群的资源占用达到一定水位线后,对于一些大资源的容器组的运行请求来说,往往会导致资源调度失败。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种集群资源调度方法、装置、设备及存储介质,以解决现有技术中当集群的资源占用达到一定水位线后,对于大资源的运行请求,导致资源调度失败的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请一实施例提供了一种集群资源调度方法,所述方法包括:
接收目标容器组的运行请求,所述运行请求包括所述目标容器组的资源申请量;
从集群中筛选出满足所述资源申请量对应的资源申请条件的至少一个目标节点;
获取所述集群的资源使用率;
若所述集群的资源使用率大于或等于预设阈值,则从所述至少一个目标节点中筛选出满足预设资源剩余条件的调度节点;
在所述调度节点上运行所述目标容器组。
在一可选的实施方式中,所述从所述至少一个目标节点中筛选出满足预设资源剩余条件的调度节点,包括:
从所述至少一个目标节点中筛选出资源剩余量最小的节点;
将所述资源剩余量最小的节点作为所述调度节点。
在一可选的实施方式中,所述从所述至少一个目标节点中筛选出资源剩余量最小的节点,包括:
计算每个目标节点的节点得分,所述节点得分用于表征所述每个目标节点的资源使用情况;
根据所述节点得分,确定所述至少一个目标节点中所述资源剩余量最小的节点。
在一可选的实施方式中,所述计算每个目标节点的节点得分,包括:
根据所述每个目标节点的资源使用率,计算所述每个目标节点的节点得分。
在一可选的实施方式中,所述计算每个目标节点的节点得分,包括:
根据所述每个目标节点的资源剩余量,计算所述每个目标节点的节点得分。
在一可选的实施方式中,所述根据所述节点得分,确定所述至少一个目标节点中所述资源剩余量最小的节点,包括:
将所述节点得分最大的目标节点确定为所述资源剩余量最小的节点。
在一可选的实施方式中,所述每个目标节点的资源使用率包括处理器(centralprocessing unit,CPU)资源使用率和内存资源使用率,所述根据所述每个目标节点的资源使用率,计算所述每个目标节点的节点得分,包括:
计算所述每个目标节点的处理器资源使用率和内存资源使用率的平均值;
将所述平均值作为所述每个目标节点的节点得分。
在一可选的实施方式中,所述获取所述集群的资源使用率,包括:
根据所述集群中每个节点的资源使用率,计算所述集群的资源使用率。
在一可选的实施方式中,所述根据所述集群中每个节点的资源使用率,计算所述集群的资源使用率,包括:
将所述集群中多个节点的资源使用率的平均值作为所述集群的资源使用率。
在一可选的实施方式中,若所述集群的资源使用率小于所述预设阈值,所述方法还包括:
采用预设的资源调度算法,从所述至少一个目标节点中筛选出所述调度节点,并在所述调度节点运行所述目标容器组。
第二方面,本申请另一实施例提供了一种集群资源调度装置,所述装置包括:
接收模块,用于接收目标容器组的运行请求,所述运行请求包括所述目标容器组的资源申请量;
筛选模块,用于从集群中筛选出满足所述资源申请量对应的资源申请条件的至少一个目标节点;
获取模块,用于获取所述集群的资源使用率;
所述筛选模块,还用于若所述集群的资源使用率大于或等于预设阈值,则从所述至少一个目标节点中筛选出满足预设资源剩余条件的调度节点;
运行模块,用于在所述调度节点上运行所述目标容器组。
在一可选的实施方式中,筛选模块,具体用于:
从所述至少一个目标节点中筛选出资源剩余量最小的节点;
将所述资源剩余量最小的节点作为所述调度节点。
在一可选的实施方式中,筛选模块,具体用于:
计算每个目标节点的节点得分,所述节点得分用于表征所述每个目标节点的资源使用情况;
根据所述节点得分,确定所述至少一个目标节点中所述资源剩余量最小的节点。
在一可选的实施方式中,筛选模块,具体用于:
根据所述每个目标节点的资源使用率,计算所述每个目标节点的节点得分。
在一可选的实施方式中,筛选模块,具体用于:
根据所述每个目标节点的资源剩余量,计算所述每个目标节点的节点得分。
在一可选的实施方式中,筛选模块,具体用于:
将所述节点得分最大的目标节点确定为所述资源剩余量最小的节点。
在一可选的实施方式中,所述每个目标节点的资源使用率包括处理器资源使用率和内存资源使用率,所述筛选模块,具体用于:
计算所述每个目标节点的处理器资源使用率和内存资源使用率的平均值;
将所述平均值作为所述每个目标节点的节点得分。
在一可选的实施方式中,获取模块,具体用于:
根据所述集群中每个节点的资源使用率,计算所述集群的资源使用率。
在一可选的实施方式中,获取模块,具体用于:
将所述集群中多个节点的资源使用率的平均值作为所述集群的资源使用率。
在一可选的实施方式中,若所述集群的资源使用率小于所述预设阈值,所述筛选模块,还用于:
采用预设的资源调度算法,从所述至少一个目标节点中筛选出所述调度节点,并在所述调度节点运行所述目标容器组。
第三方面,本申请另一实施例提供了一种节点设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的计算机程序,当节点设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述计算机程序,以执行如上述第一方面任一项所述的方法。
第四方面,本申请另一实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面任一项所述的方法。
本申请提供了一种集群资源调度方法、装置、设备及存储介质,其中,该方法包括:接收目标容器组的运行请求,运行请求所述目标容器组的资源申请量,从集群中筛选出满足资源申请量对应的资源申请条件的至少一个目标节点,获取集群的资源使用率,若集群的资源使用率大于或等于预设阈值,则从至少一个目标节点中筛选出满足预设资源剩余条件的调度节点,在调度节点上运行目标容器组。本申请在集群的资源使用率大于或等于预设阈值时,优先将目标容器组分配到满足预设资源剩余条件的调度节点上,优先把一个调度节点打满,那么在后续接收到大资源申请量的运行请求时,可以提高资源调度的成功率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1a-1b示出了本申请实施例提供的现有的集群资源调度的示意图;
图2示出了本申请实施例提供的集群资源调度方法的流程示意图一;
图3示出了本申请实施例提供的集群资源调度方法的流程示意图二;
图4示出了本申请实施例提供的集群资源调度方法的流程示意图三;
图5a-5b示出了本申请实施例提供的集群资源调度的示意图;
图6示出了本申请实施例提供的集群资源调度装置的结构示意图;
图7示出了本申请实施例提供的节点设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
在介绍本申请的技术方案之前,首先对本申请涉及的专业术语进行说明。
kubernetes,简称K8S,一个开源的用于管理云平台中多个主机上的容器化的应用。
容器组:英文名称Pod,可以创建和管理K8S计算的最小可部署单元,由一个或者多个容器组成,同时也是K8S调度的基本粒度,由于运行Pod需要一定的中央处理器(centralprocessing unit,CPU)、内存资源支撑,因此提交一个Pod到K8S时,需要为Pod申请一定的资源,例如2核CPU,4G内存。
节点:英文名称Node:指的是K8S集群中的服务器。
调度节点:若要将当前Pod调度到节点上运行,则该节点称为调度节点。
预选过程:过滤不满足Pod资源请求条件的节点,是K8S调度器的默认配置。
优选过程:从所有满足Pod资源请求条件的node中,选取一个调度节点。
水位:资源使用量/资源总量×100%。
通常情况下,在基于K8S搭建的集群中,有若干节点,K8S默认调度策略为均衡调度策略,且程序启动后,调度算法无法动态改变。在该策略作用下,使得集群中的节点不至于太空闲也不至于被堆满,最终的结果是集群中所有节点大致处于同一水位,其中,被堆满指的是比如一个节点总的资源量全部都被分配出去。
然而,当整个集群的资源占用达到一定水位线(如90%)后,一些大资源请求量(如15%)的Pod,就会很大概率出现调度失败的情况,举例而言,比如集群中有10个节点,每个节点资源总量为50核,100G,当集群总体水位为90%时,每个节点的资源占用为50*0.9=45,100*0.9=90。此时一个新的Pod(50*0.15=7.5,100*0.15=15)需要被调度,则每个节点剩余的资源都不满足,因此会调度失败。
K8S默认情况下,首先通过预选阶段,过滤出满足基本条件(如节点剩余资源大于等于Pod需求资源)的节点,然后经过优选阶段对预选出的节点打分,得分最高的节点为调度节点。
目前K8S的默认优选阶段调度算法,主要包括三种算法:
第一种算法、即BalancedResourceAllocation算法
选取各项资源使用率最均衡的节点作为调度节点,得分计算公式如下,得分最高的将被选为调度节点。
其中,UsedCPU为节点的CPU资源使用量与当前要调度的Pod的CPU请求量之和,CPUNodeCapacity为节点的CPU资源总量,UsedMemory为内存资源使用量与当前要调度的Pod的内存请求量之和,MemoryNodeCapacity为节点的内存资源总量,abs为绝对值。
例如,节点的资源总量为50核,100G,已被使用25核,50G,则(50-25)/50–(100-50)/100=0,此为均衡,也就是说,CPU资源的占用率和内存资源占用率差值越小,则均衡度越高。
第二种算法、LeastRequestedPriority算法
选取各项资源剩余率最多的节点作为调度节点,得分计算公式如下,得分最高的将被选为调度节点。
其中,surplusCPU=CPUNodeCapacity-UsedCPU,surplusMemory=MemoryNodeCapacity-UsedMemory。
第三种算法、MostRequestedPriority算法
选择各项资源剩余率最少的节点作为调度节点,得分计算公式如下,得分最高的将被选为调度节点。
其中,UsedCPU为节点CPU资源使用量,CPUNodeCapacity为节点的CPU资源总量,UsedMemory为节点内存资源使用量,MemoryNodeCapacity为节点的内存资源总量,abs为绝对值。
由上可知,LeastRequestedPriority使得节点资源占用不至于过多,MostRequestedPriority使得节点资源占用不至于过少,BalancedResourceAllocation使得节点资源占用不至于过滤碎片化,在以上三种算法的同时作用下,不断调整下,节点资源大致趋于同一水位,这样,对于一些大资源的容器组的运行请求来说,往往会导致资源调度失败。
例如,一个集群中有10个节点,每个节点资源总量为100核CPU,100G内存,当集群水位达到90%的时候,有一个新的Pod(15核15G)需要被调度,虽然集群的所有节点加起来的剩余资源总量(100*0.9*10=100)大于15,但没有任何一个节点能够满足该Pod的调度。参考图1a-1b,图1a-1b示出了本申请实施例提供的现有的集群资源调度的示意图,如图1a所示,集群包括节点1和节点2,CPU资源使用量和内存填充为斜线,CPU资源剩余量和内存标记为白色。
集群水位为80%,待调度容器组1的CPU申请量为一格,内存申请量为一格,待调度容器组2的CPU申请量为一格,内存申请量为一格,将待调度容器组1和待调度容器组2分别调度至节点1和节点2,如图1b所示,集群水位由80%变为90%,那么在待调度容器组3需要被调度时,待调度容器组3的CPU申请量为两格,内存申请量为两格,而此时没有一个节点的剩余资源满足待调度容器组3的需求,则待调度容器组3会调度失败。
需要说明的是,本申请涉及的资源总量均指的是容器资源总量,在K8S集群中,每个节点的资源总量包括该节点的容器资源总量和K8S资源的其它资源总量,类似地,资源使用量均指的是容器资源使用量。
基于上述问题,本申请提供了一种集群资源调度方法,在集群的资源使用率大于或等于预设阈值时,优先将目标容器组分配到满足预设资源剩余条件的调度节点上,优先把一个调度节点打满,那么在后续接收到大资源申请量的运行请求时,可以提高资源调度的成功率,以提高集群资源利用率。
下面结合几个具体实施例对本申请的集群资源调度方法进行详细说明。
图2示出了本申请实施例提供的集群资源调度方法的流程示意图一,本实施例的执行主体可以为K8S集群,例如可以为K8S集群中的节点设备,节点设备可以为K8S集群中的服务器。
如图2所示,该方法可以包括:
S101、接收目标容器组的运行请求。
S102、从集群中筛选出满足资源申请量对应的资源申请条件的至少一个目标节点。
目标容器组可以为待调度容器组,在实际开发过程中,若要在K8S集群中运行目标容器组,则开发人员可以提交一个目标容器组的运行请求,运行请求包括目标容器组的资源申请量,相应的,K8S集群接收目标容器组的运行请求,从集群中筛选出满足资源申请量对应的资源申请条件的至少一个目标节点。
也就是说,每个目标节点满足资源申请量对应的资源申请条件,其中,资源申请量对应的资源申请条件例如可以为目标节点的资源剩余量大于或等于目标容器组的资源申请量,因为只有满足节点的资源剩余量大于或等于目标容器组的资源申请量,那么才有可能将目标容器组调度至该节点,若节点的资源剩余量小于目标容器组的资源申请量,说明该节点无法满足目标容器组的调度,也就是目标容器组无法运行在该节点。
在本实施例中,根据接收到的目标容器组的运行请求,可以从集群中筛选出满足资源申请量对应的资源申请条件的至少一个目标节点,也就是说,将资源剩余量大于或等于目标容器组的资源申请量的目标节点筛选出来,至少一个目标节点可以分别记作{N1,N2,…Nm},m为至少一个目标节点的总数量,m大于或等于1。
需要说明的是,步骤S102为预选阶段筛选,以筛选出至少一个目标节点。资源申请量可以包括CPU资源申请量和/或内存资源申请量,若资源申请量包括CPU资源申请量和内存资源申请量,那么资源申请量对应的资源申请条件可以包括CPU资源剩余量大于或等于CPU资源申请量,且内存资源剩余量大于或等于内存资源申请量。
S103、获取集群的资源使用率。
集群的资源使用率为集群对应的资源使用量和集群对应的资源总量的比值,集群的资源使用量可以根据集群中每个节点的资源使用量确定,集群的资源总量可以根据集群中各个节点的资源总量确定。
在一可选的实施方式中,步骤S103包括:
根据集群中每个节点的资源使用率,计算集群的资源使用率。
节点的资源使用率可以为节点的资源使用量和节点的资源总量的比值,计算集群中每个节点的资源使用率,然后根据每个节点的资源使用率,计算集群的资源使用率。
其中,节点的资源使用量可以包括节点的处理器CPU资源使用量和内存资源使用量,节点的资源总量可以包括节点的CPU资源总量和内存资源总量,因此,节点的资源使用率可以根据节点的CPU资源使用率和内存资源使用率确定,其中,节点的CPU资源使用率为节点的CPU资源使用量和节点的CPU资源总量的比值,节点的内存资源使用率为节点的内存资源使用量和节点的内存资源总量的比值。
在一可选的实施方式中,根据集群中每个节点的资源使用率,计算集群的资源使用率,包括:
将集群中多个节点的资源使用率的平均值作为集群的资源使用率。
集群中包括多个节点,即多个节点设备,每个节点的资源使用率称为该节点的水位线,集群的资源使用率称为集群的水位线。
集群的资源使用率可以为集群中多个节点的资源使用率的平均值。
其中,每个节点的资源使用率根据每个节点的CPU资源使用率和内存资源使用率确定,例如每个节点的资源使用率可以为每个节点的CPU资源使用率和内存资源使用率的平均值,然后计算集群中多个节点的资源使用率的平均值,将集群中多个节点的资源使用率的平均值作为集群的资源使用率。
其中,每个节点的CPU资源使用率该节点的CPU资源使用量与CPU资源总量的比值,每个节点的内存资源使用率为该节点的内存资源使用量与内存资源总量的比值。
参见如下公式:
其中,ClusterLevel为集群的水位线,UsedCPUi为集群中第i个节点的CPU资源使用量,CPUNodeCapacityi为第i个节点的CPU资源总量,UsedMemoryi为第i个节点的内存资源使用量,MemoryNodeCapacityi为第i个节点的内存资源总量,n为集群中节点的总数量,n大于1,i大于或等于1,且小于n。
S104、若集群的资源使用率大于或等于预设阈值,则从至少一个目标节点中筛选出满足预设资源剩余条件的调度节点。
S105、在调度节点上运行目标容器组。
若集群的资源使用率大于或等于预设阈值,则可以从至少一个目标节点中筛选出满足预设资源剩余条件的调度节点,也即调度节点满足预设资源剩余条件,并在调度节点上运行目标容器组,以将目标容器组调度至调度节点上,实现集群资源的调度。
其中,预设资源剩余条件例如可以为按照资源剩余量从大到小的排列顺序,资源剩余量为至少一个目标节点中资源剩余量的最后x位,也即,调度节点的资源剩余量为至少一个目标节点的资源剩余量中的最后x位,x大于或等于1。若x大于1,则可以随机或采用预设挑选规则,从至少一个目标节点中选择满足预设资源剩余条件的一个节点作为调度节点;若x等于1,说明调度节点的资源剩余量为至少一个目标节点的资源剩余量中的最小值。
如此筛选,可以优先将资源剩余量满足预设资源剩余条件的一个调度节点打满,后续接收到大资源申请量的运行请求时可以提高资源调度的成功率。
本实施例的集群资源调度方法,包括:接收目标容器组的运行请求,运行请求目标容器组的资源申请量,从集群中筛选出满足资源申请量对应的资源申请条件的至少一个目标节点,获取集群的资源使用率,若集群的资源使用率大于或等于预设阈值,则从至少一个目标节点中筛选出满足预设资源剩余条件的调度节点,在调度节点上运行目标容器组。在本实施例中,在集群的资源使用率大于或等于预设阈值时,优先将目标容器组分配到满足预设资源剩余条件的调度节点上,优先把一个调度节点打满,那么在后续接收到大资源申请量的运行请求时,可以提高资源调度的成功率,以提高集群资源利用率。
在一可选的实施方式中,若集群的资源使用率小于预设阈值,则在图2实施例的基础上,还可以执行如下步骤:
采用预设的资源调度算法,从至少一个目标节点中确定调度节点,并在调度节点运行目标容器组。
其中,预设的资源调度算法可以为K8集群默认的资源调度算法,包括但不限于上述现有三种算法,也就是说,若集群的资源使用率小于预设阈值,则本申请的调度算法失效,则采用现有的调度算法从至少一个目标节点中确定调度节点,并在调度节点运行目标容器组。关于现有资源调度算法的实现过程具体可以参见现有技术中的相关描述,在此不再赘述。
图3示出了本申请实施例提供的集群资源调度方法的流程示意图二,如图3所示,从至少一个目标节点中筛选出满足预设资源剩余条件的调度节点,包括:
S201、从至少一个目标节点中筛选出资源剩余量最小的节点。
S203、将资源剩余量最小的节点作为调度节点。
其中,预设资源剩余条件可以为资源剩余量为至少一个目标资源的资源剩余量的最小值,也即,调度节点的资源剩余量为至少一个目标节点中资源剩余量最小的节点,那么可以从至少一个目标节点中筛选出资源剩余量最小的节点,并将资源剩余量最小的节点作为调度节点。
示例性地,节点的资源剩余量可以包括节点的CPU资源剩余量和节点的内存资源剩余量,CPU资源剩余量为CPU资源总量与CPU资源使用量的差值,内存资源剩余量为内存资源总量与内存资源使用量的差值。因此,节点的资源剩余量可以根据节点的CPU资源剩余量和节点的内存资源剩余量确定。在一可选的实施方式中,将节点的CPU资源剩余量和节点的内存资源剩余量的平均值作为节点的资源剩余量。
本实施例的资源调度方法,从至少一个目标节点中筛选出资源剩余量最小的节点,将资源剩余量最小的节点作为调度节点。从而使得资源剩余量最小的节点被优先调度,在后续接收到大资源申请量的运行请求时,明显提高了大资源申请量的调度成功率。
在一可选的实施方式中,若集群的资源使用率大于或等于预设阈值,则还可以执行压缩算法思想,引入节点得分,以确定出至少一个目标节点中资源剩余量最小的节点。
图4示出了本申请实施例提供的集群资源调度方法的流程示意图三,如图4所示,从至少一个目标节点中筛选出资源剩余量最小的节点,包括:
S301、计算每个目标节点的节点得分。
节点得分用于表征每个目标节点的资源使用情况。也就是说,根据每个目标节点的资源使用情况可以计算得到每个目标节点的节点得分,其中,每个目标节点的节点得分与每个目标节点的资源使用率成正相关,并与每个目标节点的资源剩余量成负相关。
在一可选的实施方式中,步骤S301可以包括:
根据每个目标节点的资源使用率,计算每个目标节点的节点得分。
其中,每个目标节点的资源使用率为每个目标节点的资源使用量与资源总量的比值,根据每个目标节点的资源使用量与资源总量的比值,计算得到每个目标节点的资源使用率,然后根据每个目标节点的资源使用率,计算每个目标节点的节点得分,其中,资源使用率越高,节点得分越大,资源使用率越低,节点得分越小。
示例性地,每个目标节点的资源使用量包括每个目标节点的CPU资源使用量和内存资源使用量,每个目标节点的资源总量包括每个目标节点的CPU资源总量和内存资源总量。因此,可以将CPU资源使用率和内存资源使用率作为打分影响因子,按照预设的CPU打分权重和内存打分权重,计算得到每个目标节点的节点得分。
当然,预设的CPU打分权重和内存打分权重的具体选取可以根据实际情况确定,本实施例对此不做特别限定。
在一可选的实施方式中,根据每个目标节点的资源使用率,计算每个目标节点的节点得分,包括:
计算每个目标节点的处理器资源使用率和内存资源使用率的平均值;
将平均值作为每个目标节点的节点得分。
每个目标节点的资源使用率包括CPU资源使用率和内存资源使用率,其中,每个目标节点的CPU资源使用率为每个目标节点的CPU资源使用量和CPU资源总量的比值,每个目标节点的内存资源使用率为每个目标节点的内存资源使用量和内存资源总量的比值。
针对每个目标节点,可以计算目标节点的处理器资源使用率和内存资源使用率的平均值,然后将该平均值作为目标节点的节点得分。
参见如下公式:
其中,UsedCPU为目标节点的CPU资源使用量,CPUNodeCapacity为目标节点的CPU资源总量,UsedMemory为目标节点内存资源使用量,MemoryNodeCapacity为目标节点的内存资源总量。
该可选实施方式的关键在于,以每个目标节点的CPU资源使用率和内存资源使用率作为打分因子,将每个目标节点的CPU资源使用率和内存资源使用率的平均值作为每个目标节点的节点得分,从而实现对每个目标节点的打分。
在另一可选的实施方式中,步骤S301可以包括:
根据每个目标节点的资源剩余量,计算每个目标节点的节点得分。
其中,每个目标节点的资源剩余量为每个目标节点的资源总量和资源使用量的差值。每个目标节点的资源剩余量可以包括每个目标节点的CPU资源剩余量和内存资源剩余量,因此,针对每个目标节点,CPU资源剩余量为CPU资源总量与CPU资源使用量的差值,内存资源剩余量为内存资源总量与内存资源使用量的差值。
因此,可以在得到每个目标节点的资源剩余量之后,采用每个目标节点的资源总量减去资源剩余量,得到每个目标节点的资源使用量,具体地,采用每个目标节点的CPU资源总量减去CPU资源剩余量,得到每个目标节点的CPU资源使用量,类似地,采用每个目标节点的内存资源总量减去内存资源剩余量,得到每个目标节点的内存资源使用量。
然后根据每个目标节点的CPU资源使用量和CPU资源总量的比值,计算得到每个目标节点的CPU资源使用率,并根据每个目标节点的内存资源使用量和内存资源总量的比值,计算得到每个目标节点的内存资源使用率。之后计算每个目标节点的处理器资源使用率和内存资源使用率的平均值,将平均值作为每个目标节点的节点得分。关于节点得分的具体计算过程可以参见上述相关记载。
S302、根据节点得分,确定至少一个目标节点中资源剩余量最小的节点。
节点得分用于表征每个目标节点的资源使用情况,那么根据节点得分可以确定每个目标节点的资源剩余量,并从至少一个目标节点中确定出资源剩余量最小的节点。
在一可选的实施方式中,步骤S302可以包括:
将节点得分最大的目标节点确定为资源剩余量最小的节点。
其中,节点得分与资源剩余量成负相关,也即,计算得到每个目标节点的节点得分后,可以将节点得分最大的目标节点作为至少一个目标节点中资源剩余量最小的节点。这样,将资源剩余量最小的节点作为调度节点,实现了对预选阶段筛选得到的至少一个目标节点再次进行筛选确定调度节点,通过在调度节点上运行目标容器组,将目标容器组分配到资源剩余量最少的节点上,优先把调度节点打满,那么在后续接收到大资源申请量的运行请求时,明显提高了大资源申请量的调度成功率。
参见图5a-5b,图5a-5b示出了本申请实施例提供的集群资源调度的示意图,如图5a所示,集群包括节点1和节点2,集群的资源使用率即集群水位为80%,预设阈值为80%,CPU资源使用量和内存填充为斜线,CPU资源剩余量和内存标记为白色。
待调度容器组1的CPU申请量为一格,内存申请量为一格,待调度容器组2的CPU申请量为一格,内存申请量为一格,采用本申请的调度方法,节点1和节点2均满足待调度容器组1对应的资源申请条件,则节点1和节点2均可以作为目标节点,然后根据节点1和节点2的资源使用率,计算节点1和节点2的节点得分,由于节点1和节点2的节点得分相等,则可以从节点1和节点2中任意挑选一个节点作为调度节点,本示例以节点1为调度节点为例,将待调度容器组1调度至节点1,然后按照相同的方式,将待调度容器组2调度至资源剩余量最少的节点1上,也即,将待调度容器组1和待调度容器组2均调度至节点1。
如图5b所示,集群水位由80%变为90%,那么在待调度容器组3需要被调度时,待调度容器组3的CPU申请量为两格,内存申请量为两格,此时节点2的CPU剩余资源量和内存剩余资源量满足待调度容器组3的需求,即实现了大资源申请量的调度。
需要说明的是,若集群的资源使用率小于预设阈值,则预先阶段筛选出的每个目标节点的节点得分均为0,那么可以采用预设的资源调度算法,从至少一个目标节点中确定调度节点,并在调度节点运行目标容器组。
本实施例的集群资源调度方法,计算每个目标节点的节点得分,根据节点得分,确定至少一个目标节点中资源剩余量最小的节点。通过引入节点得分,确定出资源剩余量最小的节点,通过定量计算,提高了调度节点筛选的准确度。
基于同一发明构思,本申请实施例中还提供了与集群资源调度方法对应的集群资源调度装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述集群资源调度方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
图6示出了本申请实施例提供的集群资源调度装置的结构示意图,集群资源调度装置可以集成在节点设备中,节点设备可以为K8S集群中的服务器。如图6所示,集群资源调度装置40可以包括:
接收模块401,用于接收目标容器组的运行请求,运行请求包括目标容器组的资源申请量;
筛选模块402,用于从集群中筛选出满足资源申请量对应的资源申请条件的至少一个目标节点;
获取模块403,用于获取集群的资源使用率;
筛选模块402,还用于若集群的资源使用率大于或等于预设阈值,则从至少一个目标节点中筛选出满足预设资源剩余条件的调度节点;
运行模块404,用于在调度节点上运行目标容器组。
在一可选的实施方式中,筛选模块402,具体用于:
从至少一个目标节点中筛选出资源剩余量最小的节点;
将资源剩余量最小的节点作为调度节点。
在一可选的实施方式中,筛选模块402,具体用于:
计算每个目标节点的节点得分,所述节点得分用于表征所述每个目标节点的资源使用情况;
根据所述节点得分,确定所述至少一个目标节点中所述资源剩余量最小的节点。
在一可选的实施方式中,筛选模块402,具体用于:
根据所述每个目标节点的资源使用率,计算所述每个目标节点的节点得分。
在一可选的实施方式中,筛选模块402,具体用于:
根据所述每个目标节点的资源剩余量,计算所述每个目标节点的节点得分。
在一可选的实施方式中,筛选模块402,具体用于:
将节点得分最大的目标节点确定为资源剩余量最小的节点。
在一可选的实施方式中,每个目标节点的资源使用率包括处理器资源使用率和内存资源使用率,筛选模块402,具体用于:
计算每个目标节点的处理器资源使用率和内存资源使用率的平均值;
将平均值作为每个目标节点的节点得分。
在一可选的实施方式中,获取模块403,具体用于:
根据集群中每个节点的资源使用率,计算集群的资源使用率。
在一可选的实施方式中,获取模块403,具体用于:
将每个节点的资源使用率的平均值作为集群的资源使用率。
在一可选的实施方式中,若集群的资源使用率小于预设阈值,筛选模块402,还用于:
采用预设的资源调度算法,从至少一个目标节点中筛选出调度节点,并在调度节点运行目标容器组。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
图7示出了本申请实施例提供的节点设备的结构示意图,节点设备可以为K8S集群中的服务器。如图7所示,节点设备50可以包括:
处理器501、存储器502、和总线503。存储器502存储有处理器501可执行的计算机程序,当节点设备50运行时,处理器501与存储器502之间通过总线503通信,计算机程序被处理器501执行时执行上述方法实施例。
本申请实施例还提供了一种存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (13)
1.一种集群资源调度方法,其特征在于,包括:
接收目标容器组的运行请求,所述运行请求包括所述目标容器组的资源申请量;
从集群中筛选出满足所述资源申请量对应的资源申请条件的至少一个目标节点;
获取所述集群的资源使用率;
若所述集群的资源使用率大于或等于预设阈值,则从所述至少一个目标节点中筛选出满足预设资源剩余条件的调度节点;
在所述调度节点上运行所述目标容器组。
2.根据权利要求1所述的方法,其特征在于,所述从所述至少一个目标节点中筛选出满足预设资源剩余条件的调度节点,包括:
从所述至少一个目标节点中筛选出资源剩余量最小的节点;
将所述资源剩余量最小的节点作为所述调度节点。
3.根据权利要求2所述的方法,其特征在于,所述从所述至少一个目标节点中筛选出资源剩余量最小的节点,包括:
计算每个目标节点的节点得分,所述节点得分用于表征所述每个目标节点的资源使用情况;
根据所述节点得分,确定所述至少一个目标节点中所述资源剩余量最小的节点。
4.根据权利要求3所述的方法,其特征在于,所述计算每个目标节点的节点得分,包括:
根据所述每个目标节点的资源使用率,计算所述每个目标节点的节点得分。
5.根据权利要求3所述的方法,其特征在于,所述计算每个目标节点的节点得分,包括:
根据所述每个目标节点的资源剩余量,计算所述每个目标节点的节点得分。
6.根据权利要求3-5任一项所述的方法,其特征在于,所述根据所述节点得分,确定所述至少一个目标节点中所述资源剩余量最小的节点,包括:
将所述节点得分最大的目标节点确定为所述资源剩余量最小的节点。
7.根据权利要求4所述的方法,其特征在于,所述每个目标节点的资源使用率包括处理器资源使用率和内存资源使用率,所述根据所述每个目标节点的资源使用率,计算所述每个目标节点的节点得分,包括:
计算所述每个目标节点的处理器资源使用率和内存资源使用率的平均值;
将所述平均值作为所述每个目标节点的节点得分。
8.根据权利要求1所述的方法,其特征在于,所述获取所述集群的资源使用率,包括:
根据所述集群中每个节点的资源使用率,计算所述集群的资源使用率。
9.根据权利要求8所述的方法,其特征在于,所述根据所述集群中每个节点的资源使用率,计算所述集群的资源使用率,包括:
将所述集群中多个节点的资源使用率的平均值作为所述集群的资源使用率。
10.根据权利要求1所述的方法,其特征在于,若所述集群的资源使用率小于所述预设阈值,所述方法还包括:
采用预设的资源调度算法,从所述至少一个目标节点中筛选出所述调度节点,并在所述调度节点运行所述目标容器组。
11.一种集群资源调度装置,其特征在于,包括:
接收模块,用于接收目标容器组的运行请求,所述运行请求包括所述目标容器组的资源申请量;
筛选模块,用于从集群中筛选出满足所述资源申请量对应的资源申请条件的至少一个目标节点;
获取模块,用于获取所述集群的资源使用率;
所述筛选模块,还用于若所述集群的资源使用率大于或等于预设阈值,则从所述至少一个目标节点中筛选出满足预设资源剩余条件的调度节点;
运行模块,用于在所述调度节点上运行所述目标容器组。
12.一种节点设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的计算机程序,当节点设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述计算机程序,以执行权利要求1至10任一项所述的方法。
13.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110271771.4A CN112860383A (zh) | 2021-03-12 | 2021-03-12 | 集群资源调度方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110271771.4A CN112860383A (zh) | 2021-03-12 | 2021-03-12 | 集群资源调度方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112860383A true CN112860383A (zh) | 2021-05-28 |
Family
ID=75994354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110271771.4A Pending CN112860383A (zh) | 2021-03-12 | 2021-03-12 | 集群资源调度方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860383A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590256A (zh) * | 2021-06-03 | 2021-11-02 | 新浪网技术(中国)有限公司 | 多Kubernetes集群的应用部署方法及装置 |
CN114726922A (zh) * | 2022-03-31 | 2022-07-08 | 联想(北京)有限公司 | 网络资源调度方法、装置及电子设备和存储介质 |
CN114756347A (zh) * | 2022-04-19 | 2022-07-15 | 中国联合网络通信集团有限公司 | 基于集群的服务器资源调度方法、装置、云平台及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918198A (zh) * | 2019-02-18 | 2019-06-21 | 中国空间技术研究院 | 一种基于用户特征预测的仿真云平台负载调度系统及方法 |
CN111880936A (zh) * | 2020-07-31 | 2020-11-03 | 广州华多网络科技有限公司 | 资源调度方法、装置、容器集群、计算机设备和存储介质 |
CN111966500A (zh) * | 2020-09-07 | 2020-11-20 | 网易(杭州)网络有限公司 | 资源调度方法、装置、电子设备及存储介质 |
-
2021
- 2021-03-12 CN CN202110271771.4A patent/CN112860383A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918198A (zh) * | 2019-02-18 | 2019-06-21 | 中国空间技术研究院 | 一种基于用户特征预测的仿真云平台负载调度系统及方法 |
CN111880936A (zh) * | 2020-07-31 | 2020-11-03 | 广州华多网络科技有限公司 | 资源调度方法、装置、容器集群、计算机设备和存储介质 |
CN111966500A (zh) * | 2020-09-07 | 2020-11-20 | 网易(杭州)网络有限公司 | 资源调度方法、装置、电子设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590256A (zh) * | 2021-06-03 | 2021-11-02 | 新浪网技术(中国)有限公司 | 多Kubernetes集群的应用部署方法及装置 |
CN114726922A (zh) * | 2022-03-31 | 2022-07-08 | 联想(北京)有限公司 | 网络资源调度方法、装置及电子设备和存储介质 |
CN114726922B (zh) * | 2022-03-31 | 2023-11-21 | 联想(北京)有限公司 | 网络资源调度方法、装置及电子设备和存储介质 |
CN114756347A (zh) * | 2022-04-19 | 2022-07-15 | 中国联合网络通信集团有限公司 | 基于集群的服务器资源调度方法、装置、云平台及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111966500B (zh) | 资源调度方法、装置、电子设备及存储介质 | |
US20200287961A1 (en) | Balancing resources in distributed computing environments | |
CN112860383A (zh) | 集群资源调度方法、装置、设备及存储介质 | |
CN112269641B (zh) | 一种调度方法、装置、电子设备及存储介质 | |
US9319281B2 (en) | Resource management method, resource management device, and program product | |
WO2016090946A1 (zh) | 一种虚拟数据中心资源映射方法和设备 | |
CN110474966B (zh) | 处理云平台资源碎片的方法及相关设备 | |
CN111182037B (zh) | 一种虚拟网络的映射方法和装置 | |
CN108965014A (zh) | QoS感知的服务链备份方法及系统 | |
CN111866054A (zh) | 一种云主机的搭建方法、装置、电子设备及可读存储介质 | |
US20190163528A1 (en) | Automated capacity management in distributed computing systems | |
CN113032102B (zh) | 资源重调度方法、装置、设备和介质 | |
JP2022539955A (ja) | タスクスケジューリング方法及び装置 | |
CN108376103A (zh) | 一种云平台的资源平衡控制方法及服务器 | |
CN114625500A (zh) | 云环境下拓扑感知的微服务应用调度的方法及应用 | |
CN112214288B (zh) | 基于Kubernetes集群的Pod调度方法、装置、设备和介质 | |
CN111796933A (zh) | 资源调度方法、装置、存储介质和电子设备 | |
CN116185623A (zh) | 任务分配方法、装置、电子设备及存储介质 | |
CN110958192B (zh) | 一种基于虚拟交换机的虚拟数据中心资源分配系统及方法 | |
CN116360994A (zh) | 分布式异构资源池的调度方法、装置、服务器及存储介质 | |
CN115562841A (zh) | 一种云视频服务自适应资源调度系统和方法 | |
CN113867919B (zh) | Kubernetes集群调度方法、系统、设备及介质 | |
CN111459651A (zh) | 一种负载均衡方法、装置、存储介质及调度系统 | |
CN112019368B (zh) | 一种vnf迁移方法、装置及存储介质 | |
Zhang et al. | Task assignment optimization in geographically distributed data centers |
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 |