集群资源调度的方法、装置及电子设备与流程

文档序号:22758150发布日期:2020-10-31 09:56阅读:148来源:国知局
集群资源调度的方法、装置及电子设备与流程

本发明涉及云计算技术领域,尤其是涉及一种集群资源调度的方法、装置及电子设备。



背景技术:

资源共享的分布式系统中,任务的调度是基于资源预定义进行划分的,这样系统可以根据当前集群资源情况将任务调度到最合理的节点上,尽可能地增加集群的资源使用率和节点间的负载均衡。

目前,在集群资源调度过程中,常用balancedresourceallocation算法确定调度节点实现任务或任务集合等实例的调度,但是,由于上述算法仅选取当前各项资源使用率最均衡的调度节点进行实例调度,极易使调度后的节点出现资源碎片化情况,造成该节点的剩余资源不可调度,一定程度上存在资源浪费问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种集群资源调度的方法、装置及电子设备,以优化实例调度,提升集群的资源利用率。

第一方面,本发明实施例提供了一种集群资源调度的方法,其中,通过调度服务器同步集群中各个节点的资源已占用信息,资源已占用信息包括第一资源的第一总量和第一已占用量,以及第二资源的第二总量和第二已占用量;方法包括:从集群中选择第一节点集合;其中,第一节点集合中的节点的资源剩余量满足待调度实例的资源需求量;计算第一节点集合中的节点的实际平衡度和虚拟平衡度;其中,实际平衡度用于表征节点当前的资源已占用信息对应的第一资源和第二资源的平衡值;虚拟平衡度用于表征假设将待调度实例调度至节点后的资源已占用信息对应的第一资源和第二资源的平衡值;基于第一节点集合中的节点的实际平衡度和虚拟平衡度,确定待调度实例的目标节点;将待调度实例调度至目标节点。

上述基于第一节点集合中的节点的实际平衡度和虚拟平衡度,确定待调度实例的目标节点的步骤,包括:将第一节点集合中的节点分为增强节点组和削弱节点组;其中,增强节点组中的节点的虚拟平衡度大于或等于实际平衡度,削弱节点组中的节点为第一节点集合中除增强节点组之外的节点;以增强节点组优于削弱节点组的原则,按照虚拟平衡度的大小确定待调度实例的目标节点。

上述以增强节点组优于削弱节点组的原则,按照虚拟平衡度的大小确定待调度实例的目标节点的步骤,包括:从增强节点组中选择虚拟平衡度最大的节点或者虚拟平衡度大于设定阈值的节点,作为待定节点;如果待定节点满足预设条件,将待定节点作为待调度实例的目标节点;预设条件包括:如果将待调度实例调度至待定节点,调度后的待定节点的第一已占用量小于预设第一值,且第二已占用量小于预设第二值;和/或,待定节点的虚拟平衡度大于预设容忍度。

上述预设第一值、预设第二值和预设容忍度中的至少一个值为与集群的业务对应的值。

上述以增强节点组优于削弱节点组的原则,按照虚拟平衡度的大小确定待调度实例的目标节点的步骤,包括:如果待定节点不满足预设条件,基于虚拟平衡度的大小从增强节点组中选择下一个待定节点,直到选择的待定节点满足预设条件为止。

上述以增强节点组优于削弱节点组的原则,按照虚拟平衡度的大小确定待调度实例的目标节点的步骤,包括:如果待定节点不满足预设条件,假设将待调度实例逐一调度至增强节点组和削弱节点组中的节点;计算调度后的节点的资源剩余量占比值;其中,资源剩余量占比值等于节点的第一资源的资源剩余量占比与第二资源的资源剩余量占比的和值;基于增强节点组和削弱节点组中的节点的虚拟平衡度和资源剩余量占比值,确定待调度实例的目标节点。

上述基于增强节点组和削弱节点组中的节点的虚拟平衡度和资源剩余量占比值,确定待调度实例的目标节点的步骤,包括:对于增强节点组和削弱节点组中的节点,分别计算节点的加权平衡度;加权平衡度score=λ*newbalancescore+ω*surplusscore;λ为预设第一权重,newbalancescore为节点的虚拟平衡度,ω为预设第二权重,surplusscore为节点的资源剩余量占比值;选择加权平衡度最大的节点作为待调度实例的目标节点。

上述λ<ω。

上述所述平衡值与所述第一资源对应的第一占用信息百分比与所述第二资源对应的第二占用信息百分比的差值负相关;第一占用信息百分比为第一资源的第一已占用量与第一总量的百分比;第二占用信息百分比为第二资源的第二已占用量与第二总量的百分比;其中,第一资源为cpu资源,第二资源为内存资源。

第二方面,本发明实施例还提供一种集群资源调度的装置,其中,上述装置应用于调度服务器,通过调度服务器同步集群中各个节点的资源已占用信息,资源已占用信息包括第一资源的第一总量和第一已占用量,以及第二资源的第二总量和第二已占用量;上述装置包括:选择模块,用于从集群中选择第一节点集合;其中,第一节点集合中的节点的资源剩余量满足待调度实例的资源需求量;计算模块,用于计算第一节点集合中的节点的实际平衡度和虚拟平衡度;其中,实际平衡度用于表征节点当前的资源已占用信息对应的第一资源和第二资源的平衡值;虚拟平衡度用于表征假设将待调度实例调度至节点后的资源已占用信息对应的第一资源和第二资源的平衡值;确定模块,用于基于第一节点集合中的节点的实际平衡度和虚拟平衡度,确定待调度实例的目标节点;调度模块,用于将待调度实例调度至目标节点。

第三方面,本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述集群资源调度的方法的步骤。

第四方面,本发明实施例还提供一种计算机可读存储介质,其中,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述集群资源调度的方法的步骤。

本发明实施例带来了以下有益效果:

本发明实施例提供一种集群资源调度的方法、装置及电子设备,其中,通过调度服务器同步集群中各个节点的资源已占用信息,从上述集群中选择资源剩余量满足待调度实例的资源需求量的第一节点集合,计算第一节点集合中的节点的实际平衡度和虚拟平衡度,通过两个平衡度选择目标节点,该方式能够保障目标节点被调度实例后,目标节点的第一资源和第二资源的均衡性依然不错,一定程度上降低了节点因调度实例出现第一资源和第二资源的比例失衡引起的资源碎片化现象,进而提升了集群资源利用率,优化了实例调度,一定程度上保障了集群各节点间的整体均衡性。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种集群调度系统的结构示意图;

图2为本发明实施例提供的一种集群资源调度的方法的流程图;

图3为本发明实施例提供的另一种集群资源调度的方法的流程图;

图4为本发明实施例提供的一种节点存储结构示意图;

图5为本发明实施例提供的另一种集群资源调度的方法的流程图;

图6为本发明实施例提供的一种调度pod节点资源状况的示意图;

图7为本发明实施例提供的另一种调度pod节点资源状况的示意图;

图8为本发明实施例提供的一种集群资源调度的装置的结构示意图;

图9为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

通常,集群资源的调度是在加载并运行有多个节点的kubernetes容器集群系统上实现的,为了便于理解,图1示出了一种集群资源系统的结构示意图,该集群调度系统包括多个节点100和调度服务器101,如图1所示,以该集群调度系统中包括3个节点100为例进行说明,上述3个节点100均与调度服务器101连接,集群中节点的数量可以根据实际需要进行选定,在此不进行限定。

其中,每个节点100都有固定的硬件资源,比如,cpu(centralprocessingunit,中央处理器)资源、内存资源和硬盘等资源用于进行资源的调度使用,调度服务器101是整个集群调度系统的中枢神经,用于管理上述多个节点,以选取硬件资源较优的节点进行实例调度,为了提高资源利用率,优化实例调度,本发明实施例提供的一种集群资源调度的方法、装置及电子设备,通过引入实际平衡度和虚拟平衡度选择目标节点,能够保障目标节点被调度实例后,目标节点的资源均衡性依然不错。其中,实际平衡度指根据当前节点的各资源的总量和使用量计算出的资源平衡度,虚拟平衡度指假设将待调度实例调度至该节点后的各资源的总量和使用量计算出的资源平衡度。

本实施例提供了一种集群资源调度的方法,其中,通过调度服务器同步集群中各个节点的资源已占用信息,该调度服务器如图1中的调度服务器101,集群中的各个节点均与该调度服务器101通讯连接,每个节点的资源已占用信息均可以实时同步至调度服务器101,本实施例中的资源已占用信息包括第一资源的第一总量和第一已占用量,以及第二资源的第二总量和第二已占用量。其中,第一资源和第二资源为两种不同的资源,该资源可以是节点的物理资源。例如,第一资源和第二资源可以分别为cpu资源和内存资源。参见图2所示的一种集群资源调度的方法的流程图,该方法以应用于上述调度服务器为例进行说明,该集群资源调度的方法包括如下步骤:

步骤s202,从集群中选择第一节点集合;其中,第一节点集合中的节点的资源剩余量满足待调度实例的资源需求量;

其中,资源剩余量包括第一资源的资源剩余量和第二资源的资源剩余量,第一资源的资源剩余量可用第一总量减去第一已占用量获得,第二资源的资源剩余量可用第二总量减去第二已占用量获得。

待调度实例的资源需求量包括第一资源需求量和第二资源需求量。基于此,在从集群中选择上述第一节点集合中的节点时,可利用预选策略在集群中筛选出同时满足第一资源的资源剩余量不小于第一资源需求量和第二资源的资源剩余量不小于第二资源需求量的节点,将筛选出的这些节点构成第一节点集合;上述预选策略可以参考kubernetes调度策略中的预选策略,这里不再详述。

步骤s204,计算第一节点集合中的节点的实际平衡度和虚拟平衡度;

其中,实际平衡度用于表征节点当前的资源已占用信息对应的第一资源和第二资源的平衡值;虚拟平衡度用于表征假设将待调度实例调度至该节点后的资源已占用信息对应的第一资源和第二资源的平衡值;

考虑到调度实例后的节点可能会出现资源碎片化,造成资源浪费的情况,在进行选取目标节点的过程中,本实施例引入上述实际平衡度和虚拟平衡度,可以根据当前的资源已占用信息计算第一资源和第二资源的实际平衡度,以及假设将待调度实例调度至节点,根据调度实例后该节点的资源已占用信息计算第一资源和第二资源的虚拟平衡度。

上述实际平衡度用于表征节点当前的资源已占用信息对应的第一资源和第二资源的平衡值。该平衡值可以称为第一平衡值,第一平衡值与第一资源对应的第一占用信息百分比与第二资源对应的第二占用信息百分比的差值负相关,例如该第一平衡值与该差值成反比,即差值越小,该第一平衡值越大;其中,第一占用信息百分比即为第一资源的第一已占用量(即第一资源的实际占用量)与第一总量(即第一资源的总量)的百分比;第二占用信息百分比即为第二资源的第二已占用量(即第二资源的实际占用量)与第二总量(即第二资源的总量)的百分比。

而上述虚拟平衡度虚拟平衡度用于表征假设将待调度实例调度至该节点后的资源已占用信息对应的第一资源和第二资源的平衡值。该平衡值可以称为第二平衡值,该第二平衡值与第一资源对应的第一占用信息百分比与第二资源对应的第二占用信息百分比的差值负相关,例如该第二平衡值与该差值成反比,即差值越小,该第二平衡值越大;其中,这里的第一占用信息百分比即为第一资源的第一已占用量(即假设将待调度实例调度至该节点后的第一资源的占用量)与第一总量(即第一资源的总量)的百分比;第二占用信息百分比即为第二资源的第二已占用量(即假设将待调度实例调度至该节点后的第二资源的占用量)与第二总量(即第二资源的总量)的百分比。

在实际使用时,可通过第一资源的第一占用信息百分比与第二资源的第二占用信息百分比之间的差值可确定出节点的实际平衡度或虚拟平衡度的平衡程度的好坏,差值越小表明平衡程度越好。比如,第一资源的第一占用信息百分比为90%,第二资源的第二占用信息百分比也为90%,由于两者差值为0,说明节点的实际平衡度或虚拟平衡度的平衡程度最好;如果第一资源的第一占用信息百分比为90%,第二资源的第二占用信息百分比也为30%,由于两者差值较大,说明节点的实际平衡度或虚拟平衡度的平衡程度不好。

步骤s206,基于第一节点集合中的节点的实际平衡度和虚拟平衡度,确定待调度实例的目标节点;

在基于节点的实际平衡度和虚拟平衡度确定目标节点时,可以将虚拟平衡度优于实际平衡度的节点作为目标节点,也可以将虚拟平衡度和实际平衡度均在一个比较合理范围内的节点作为目标节点,或者其它方式。如果确定出的目标节点不止一个,则可以根据虚拟平衡度和/或实际平衡度对这些目标节点排序,基于排序选择最终的目标节点。

步骤s208,将待调度实例调度至目标节点。

实例是任务或任务集合,作为一种可实现方式,上述待调度实例可以为待调度pod,其中,pod是kubernetes容器集群系统中能够创建和部署的最小单元,是kubernetes容器集群系统中的一个应用实例,部署在同一个节点上,在pod中包含了一个或多个容器,还包括了存储、网络等各个容器共享的资源。

pod作为一个可以独立运行的服务单元,简化了应用部署的难度,以更高的抽象层次为应用部署管提供了极大的方便,还可以作为最小的应用实例可以独立运行,方便进行部署、水平扩展和收缩,以及方便进行调度管理与资源的分配,并且,pod中的容器共享相同的数据和网络地址空间,而且pod之间也进行了统一的资源管理与分配。然而,pod并不提供保证正常运行的能力,因为可能遭受节点的物理故障、网络分区等影响,在本实施例中,整体的高可用可通过在kubernetes容器集群系统内基于实际平衡度和虚拟平衡度从第一节点集合中选取目标节点对待调度pod进行调度,以实现pod的正常运行。

本实施例的集群资源调度的方法,通过调度服务器同步集群中各个节点的资源已占用信息,从上述集群中选择资源剩余量满足待调度实例的资源需求量的第一节点集合,计算第一节点集合中的节点的实际平衡度和虚拟平衡度,通过两个平衡度选择目标节点,该方式能够保障目标节点被调度实例后,目标节点的第一资源和第二资源的均衡性依然不错,一定程度上降低了节点因调度实例出现第一资源和第二资源的比例失衡引起的资源碎片化现象,进而提升了集群资源利用率,优化了实例调度,一定程度上保障了集群各节点间的整体均衡性。

下面以第一资源为cpu资源,第二资源为内存资源为例进行说明,第一总量即为cpu资源的总资源量,第一已占用量为cpu资源的当前使用量,第二总量为内存资源的总资源量,第二已占用量为内存资源的当前使用量。在本实施例中,可通过下列公式计算节点的实际平衡度:

balancescore=10-abs(curusedcpu/cpucapacity-curusedmem/memcapacity)*10;

其中,balancescore表示实际平衡度,curusedcpu表示第一已占用量,curusedmem表示第二已占用量,cpucapacity表示第一总量,memcapacity表示第二总量,abs表示取绝对值运算。

基于上述实际平衡度公式,节点的虚拟平衡度用newbalancescore表示,newbalancescore=10-abs(newcurusedcpu/cpucapacity-newcurusedmem/memcapacity)*10;

其中,newcurusedcpu=reqcpu+curusedcpu,newcurusedmem=reqmem+curusedmem,reqcpu表示第一资源求量,reqmem表示第二资源需求量,其余变量的物理含义如上所述,这里不再赘述。

通过上述两个公式,能够准确计算出第一节点集合中每个节点对应的实际平衡和虚拟平衡度,通过两个平衡度参量进行目标节点的选取,利用选取出的目标节点进行实例调度,使得目标节点在调度实例后第一资源和第二资源的均衡性依然不错。

本实施例提供了另一种集群资源调度的方法,该方法在上述实施例的基础上实现;本实施例重点描述确定待调度实例的目标节点的一种具体实施方式。如图3所示的另一种集群资源调度的方法的流程图,本实施例中的集群资源调度的方法包括如下步骤:

步骤s302,从集群中选择第一节点集合;其中,第一节点集合中的节点的资源剩余量满足待调度实例的资源需求量;

步骤s304,计算第一节点集合中的节点的实际平衡度和虚拟平衡度;其中,实际平衡度用于表征节点当前的资源已占用信息对应的第一资源和第二资源的平衡值;虚拟平衡度用于表征假设将待调度实例调度至节点后的资源已占用信息对应的第一资源和第二资源的平衡值;

步骤s306,将第一节点集合中的节点分为增强节点组和削弱节点组;其中,增强节点组中的节点的虚拟平衡度大于或等于实际平衡度,削弱节点组中的节点为第一节点集合中除增强节点组之外的节点;

在对第一节点集合进行节点组划分时,可以比较每个节点的虚拟平衡度和实际平衡度的大小关系,基于大小关系将节点归入对应的节点组。具体划分方式如下:

(1)如果一个节点的虚拟平衡度大于实际平衡度,说明该节点被调度实例后,第一资源与第二资源的平衡度更好了,这种节点可以放入增强节点组。

(2)如果一个节点的虚拟平衡度等于实际平衡度,说明该节点被调度实例后,第一资源与第二资源的平衡度和之前一样,没有变差,这种节点也可以放入增强节点组;当然,作为一种可实现方式,这种节点也可以放入削弱节点组,本实施例以将这种节点放入增强节点组为例进行说明。

(3)如果一个节点的虚拟平衡度小于实际平衡度,说明该节点被调度实例后,第一资源与第二资源的平衡度更差了,这种节点可以放入削弱节点组。

通过上述增强节点组和削弱节点组的划分方式,可以有效地区分出第一节点集合中哪些节点被调度实例后,第一资源和第二资源的平衡度有变好趋势,哪些节点被调度实例后,第一资源和第二资源的平衡度有变差趋势,为后续选择目标节点提供有力的参考依据。

步骤s308,以增强节点组优于削弱节点组的原则,按照虚拟平衡度的大小确定待调度实例的目标节点;

由于增强节点组中节点在进行实例调度后的资源均衡性要优于削弱节点组中节点调度实例后的资源均衡性,因此,基于增强节点组优于削弱节点组的原则可将第一节点集合中的节点进行调度优先级排序,具体排序原则为:1、增强节点组优先级大于削弱节点组,故将增强节点组中的所有节点排在削弱节点组中所有节点的前面;2、增强节点组内部排序为虚拟平衡度大的优先级更高排在更前面,削弱节点组内部排序同理,在此不进行赘述。

为了更好的将上述增强节点组中的节点和削弱节点组中的节点进行存储,继续以待调度pod为例进行说明,图4示出了一种节点存储结构示意图,如图4所示,可在调度服务器的存储器中设置两个存储区,在存储区400中存储增强节点组中的节点,该增强节点组中的多个节点nx、nx+1、nx+2,……,是按照虚拟平衡度由大到小进行排序存储的;在存储区401中存储削弱节点组中的节点,该削弱节点组中的多个节点ny、ny+1、ny+2,……,同样是按照虚拟平衡度由大到小进行排序存储的。基于上述调度优先级排序,以及虚拟平衡度的大小可确定出待调度pod的目标节点的步骤,可由步骤a1-步骤a3实现:

步骤a1,从增强节点组中选择虚拟平衡度最大的节点或者虚拟平衡度大于设定阈值的节点,作为待定节点;

在本实施例中,可选择增强节点组中虚拟平衡度最大的节点作为待定节点,或者,从增强节点组中虚拟平衡度大于设定阈值的节点中随机选择一个或多个节点,作为待定节点,其中,设定阈值可以根据实际需要进行设定,在此不进行限定。

步骤a2,如果待定节点满足预设条件,将待定节点作为待调度pod的目标节点;该预设条件包括:如果将待调度pod调度至待定节点,调度后的待定节点的第一已占用量小于预设第一值,且第二已占用量小于预设第二值;和/或,待定节点的虚拟平衡度大于预设容忍度。

其中,如果在步骤a1中选取的虚拟平衡度最大的节点满足上述预设条件,则可以将该节点确定为目标节点;如果在步骤a1中选取的虚拟平衡度大于设定阈值的多个节点均满足预设条件时,可将其中任意一个节点作为目标节点。

上述预设条件包含两个条件,条件一:如果将待调度pod调度至待定节点,调度后的待定节点的第一已占用量小于预设第一值,且第二已占用量小于预设第二值;条件二:待定节点的虚拟平衡度大于预设容忍度。该预设条件可以包括以下情况之一:(1)条件一和条件二同时成立视为该待定节点满足预设条件;(2)仅关注条件一,只要条件一成立即视为该待定节点满足预设条件;(3)仅关注条件二,只要条件二成立即视为该待定节点满足预设条件。具体预设条件的实现形式,可以从上述(1)、(2)和(3)中选择,本实施例对此不进行限定。

由于集群的业务(即待调度pod)不同,资源需求量也不相同,比如,强化学习ai(artificialintelligence,人工智能)训练任务,单个pod的资源需求量为30核,120g;普通ai训练任务,单个pod的资源需求量为4核,8g;在线应用,单个pod资源的需求量为2核,4g;不同的业务类型,对资源需求量的不同,其阈值点(即预设第一值、预设第二值和预设容忍度中的至少一个值)的设定也会存在差异,其中,上述预设第一值、预设第二值和预设容忍度中的至少一个值为与集群的业务对应的值,根据业务可以对上述预设第一值、预设第二值和预设容忍度中的至少一个值进行设定,在此不进行限定。

步骤a3,如果待定节点不满足上述预设条件,基于虚拟平衡度的大小从增强节点组中选择下一个待定节点,直到选择的待定节点满足上述预设条件为止。

作为一种可实现方式,如果将待调度pod调度至待定节点,调度后的待定节点的第一已占用量不小于预设第一值,或者,第二已占用量不小于预设第二值,或者,待定节点的虚拟平衡度不大于预设容忍度满足上述任一判断条件时,则可以确定该待定节点不满足上述预设条件。

如果在步骤a1中选取的待定节点不满足预设条件时,则可以按照虚拟平衡度的大小选取虚拟平衡度第二大的节点作为待定节点,再次判定该待定节点是否满足上述预设条件,如果满足上述预设条件则将其作为待调度pod的目标节点,如果不满足上述预设条件则选取虚拟平衡度第三大的节点作为待定节点进行上述目标节点的判定,以此类推,在此不进行赘述,直至选择的待定节点满足上述预设条件为止,将满足预设条件的节点确定为目标节点。

步骤s310,将待调度实例调度至目标节点。

在本实施例中,可利用增强节点组优于削弱节点组的原则和虚拟平衡度确定出的目标节点对待调度实例进行调度运行。

本发明实施例提供的上述集群资源调度的方法,能够通过将节点划分为增强节点组和削弱节点组进行目标节点的确定,一方面通过优先调度增强节点(即调度后的均衡度比调度前的均衡度更好的节点)来提高了集群整体的节点均衡度,另一方面也尽可能避免原先均衡度好的节点因调度实例后均衡度变差的情况发生;在一定程度上保障实例调度的合理性和整体均衡性。

当然,作为一种可实现方式,当执行上述步骤a1得到待定节点时,也可以直接将该待定节点作为目标节点,进行后续的pod调度。这种方式相比于将满足上述预设条件的待定节点作为目标节点的方式,可能待定节点被调度pod后的资源均衡度不是最优的,但是该方式中的待定节点因为是从增强节点组中选取的,一定程度上也保障了调度pod后的资源均衡度。如果增强节点组中所有节点均不满足上述预设条件,则退而求其次,从削弱节点组中选择待定节点,选择方式也可以按照削弱节点组中各节点的排序进行选择,直到找到满足预设条件的待定节点。

本实施例提供了另一种集群资源调度的方法,该方法在上述实施例的基础上实现;本实施例重点描述确定待调度实例的目标节点的一种具体实施方式。如图5所示的另一种集群资源调度的方法的流程图,本实施例中的集群资源调度的方法包括如下步骤:

步骤s502,从集群中选择第一节点集合;其中,第一节点集合中的节点的资源剩余量满足待调度实例的资源需求量;

步骤s504,计算第一节点集合中的节点的实际平衡度和虚拟平衡度;其中,实际平衡度用于表征节点当前的资源已占用信息对应的第一资源和第二资源的平衡值;虚拟平衡度用于表征假设将待调度实例调度至节点后的资源已占用信息对应的第一资源和第二资源的平衡值;

步骤s506,将第一节点集合中的节点分为增强节点组和削弱节点组;其中,增强节点组中的节点的虚拟平衡度大于或等于实际平衡度,削弱节点组中的节点为第一节点集合中除增强节点组之外的节点;

步骤s508,从增强节点组中选择虚拟平衡度最大的节点或者虚拟平衡度大于设定阈值的节点,作为待定节点;

步骤s510,如果待定节点不满足预设条件,假设将待调度实例逐一调度至增强节点组和削弱节点组中的节点;

步骤s512,计算调度后的节点的资源剩余量占比值;其中,资源剩余量占比值等于节点的第一资源的资源剩余量占比与第二资源的资源剩余量占比的和值;

为了便于说明,可通过下列公式计算出第一节点集合中每个节点在调度实例后的资源剩余量占比值:

surplusscore=(surpluscpu/cpucapacity+surplusmemory/memcapacity)/2;

其中,surplusscore表示资源剩余量占比值,surpluscpu表示第一资源的资源剩余量,surplusmemory表示第二资源的资源剩余量。

其中,第一资源的资源剩余量surpluscpu=cpucapacity-curusedcpu;

第二资源的资源剩余量surplusmemory=memcapacity-curusedmem。

步骤s514,基于增强节点组和削弱节点组中的节点的虚拟平衡度和资源剩余量占比值,确定待调度实例的目标节点;

具体地,上述确定待调度实例的目标节点的步骤,可由步骤b1和步骤b2实现:

步骤b1,对于增强节点组和削弱节点组中的节点,分别计算节点的加权平衡度;

加权平衡度score=λ*newbalancescore+ω*surplusscore;

其中,λ为预设第一权重,newbalancescore为节点的虚拟平衡度,ω为预设第二权重,surplusscore为节点的资源剩余量占比值。

通常,λ+ω=1,由于基于加权平衡度选取目标节点时更倾向于资源剩余更多的节点,在本实施例中,将设定λ<ω。

步骤b2,选择加权平衡度最大的节点作为待调度实例的目标节点。

步骤s516,将待调度实例调度至目标节点。

将上述步骤b2选取出的加权平衡度最大的节点作为目标节点进行实例的调度运行。

本发明实施例提供的上述集群资源调度的方法,能够在确定出待定节点不满足预设条件时,计算第一节点集合中每个节点的加权平衡度,选择加权平衡度最大的节点作为目标节点用于实例调度,基于加权平衡度选取目标节点在尽量保证均衡度较高的情况下,尽可能将实例调度至剩余资源多的节点上,以此减少资源碎片化的出现,提高了资源的使用率。

为了理解资源碎片化的现象,继续以待调度pod为例进行说明,图6示出了一种调度pod节点资源状况的示意图,在图6中左侧方框中示出了调度前三个节点的资源状况,分别为n1、n2和n3,其中,每个节点对应的cpu已占用量用白色方框进行表示,内存已占用量用斜线方框进行表示,资源剩余量用点横线进行表示,在图6的左上角示出了待调度pod的资源需求量,通过均衡度计算可知,调度后节点n1的均衡度比其他的更好,故可以调度pod至节点n1上,图6中右侧方框中示出了调度pod至节点n1后三个节点的资源状况,节点n1的cpu资源剩余量较小,因此,不利于后续pod的调度,使得节点n1产生不可调度碎片化资源,如图6所示右侧方框,由于节点n2和节点n3不进行pod调度,所以,调度前后节点n2和节点n3的资源无改变。

为了充分说明利用本实施例的方法在尽量保证均衡度较高的情况下,尽可能将pod调度至剩余资源多的节点上,以减少图6中资源碎片化的出现。在图6的基础上,图7示出了另一种调度pod节点资源状况的示意图,在图7中左上角不仅示出了待调度pod的资源需求量,还示出了后续新的待调度pod的资源需求量,由于节点n2和节点n3的资源剩余量比节点n1的资源剩余量要多,且,节点n2和节点n3的资源剩余量相同,所以,可将待调度pod调度至节点n2上或节点n3上,为了便于说明,以将待调度pod调度至节点n2上为例进行说明,从图7可知看出,在将后续新的pod调度至节点n2后能够提升节点的均衡度,并且,不可调度资源剩余量很小,在一定程度上降低了资源碎片化,提升了集群资源利用率,从而优化了pod调度。

对应于上述方法实施例,本发明实施例提供了一种集群资源调度的装置,其中,通过调度服务器同步集群中各个节点的资源已占用信息,资源已占用信息包括第一资源的第一总量和第一已占用量,以及第二资源的第二总量和第二已占用量;图8示出了一种集群资源调度的装置的结构示意图,如图8所示,该装置包括:

选择模块802,用于从集群中选择第一节点集合;其中,第一节点集合中的节点的资源剩余量满足待调度实例的资源需求量;

计算模块804,用于计算第一节点集合中的节点的实际平衡度和虚拟平衡度;其中,实际平衡度用于表征节点当前的资源已占用信息对应的第一资源和第二资源的平衡值;虚拟平衡度用于表征假设将待调度实例调度至节点后的资源已占用信息对应的第一资源和第二资源的平衡值;

确定模块806,用于基于第一节点集合中的节点的实际平衡度和虚拟平衡度,确定待调度实例的目标节点;

调度模块808,用于将待调度实例调度至目标节点。

本发明实施例提供一种集群资源调度的装置,其中,通过调度服务器同步集群中各个节点的资源已占用信息,从上述集群中选择资源剩余量满足待调度实例的资源需求量的第一节点集合,计算第一节点集合中的节点的实际平衡度和虚拟平衡度,通过两个平衡度选择目标节点,该方式能够保障目标节点被调度实例后,目标节点的第一资源和第二资源的均衡性依然不错,一定程度上降低了节点因调度实例出现第一资源和第二资源的比例失衡,减少了资源碎片化现象,进而提升了集群资源利用率,优化了实例调度,一定程度上保障了集群各节点间的整体均衡性。

上述确定模块806还用于,将第一节点集合中的节点分为增强节点组和削弱节点组;其中,增强节点组中的节点的虚拟平衡度大于或等于实际平衡度,削弱节点组中的节点为第一节点集合中除增强节点组之外的节点;以增强节点组优于削弱节点组的原则,按照虚拟平衡度的大小确定待调度实例的目标节点。

上述确定模块806还用于,从增强节点组中选择虚拟平衡度最大的节点或者虚拟平衡度大于设定阈值的节点,作为待定节点;如果待定节点满足预设条件,将待定节点作为待调度实例的目标节点;预设条件包括:如果将待调度实例调度至待定节点,调度后的待定节点的第一已占用量小于预设第一值,且第二已占用量小于预设第二值;或者,待定节点的虚拟平衡度大于预设容忍度。

其中,上述预设第一值、预设第二值和预设容忍度中的至少一个值为与集群的业务对应的值。

上述确定模块806还用于,如果待定节点不满足预设条件,基于虚拟平衡度的大小从增强节点组中选择下一个待定节点,直到选择的待定节点满足预设条件为止。

上述确定模块806还用于,如果待定节点不满足预设条件,假设将待调度实例逐一调度至增强节点组和削弱节点组中的节点;计算调度后的节点的资源剩余量占比值;其中,资源剩余量占比值等于节点的第一资源的资源剩余量占比与第二资源的资源剩余量占比的和值;基于增强节点组和削弱节点组中的节点的虚拟平衡度和资源剩余量占比值,确定待调度实例的目标节点。

上述确定模块806还用于,对于增强节点组和削弱节点组中的节点,分别计算节点的加权平衡度;加权平衡度score=λ*newbalancescore+ω*surplusscore;λ为预设第一权重,newbalancescore为节点的虚拟平衡度,ω为预设第二权重,surplusscore为节点的资源剩余量占比值;选择加权平衡度最大的节点作为待调度实例的目标节点。

通常,上述λ<ω。所述平衡值与所述第一资源对应的第一占用信息百分比与所述第二资源对应的第二占用信息百分比的差值负相关;所述第一占用信息百分比为所述第一资源的第一已占用量与第一总量的百分比;所述第二占用信息百分比为所述第二资源的第二已占用量与第二总量的百分比;上述第一资源为cpu资源,第二资源为内存资源。

本发明实施例提供的集群资源调度的装置,与上述实施例提供的集群资源调度的方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

本发明实施例还提供了一种电子设备,用于运行上述目标模型的渲染方法;参见图9所示的一种电子设备的结构示意图,该电子设备包括存储器900和处理器901,其中,存储器900用于存储一条或多条计算机指令,一条或多条计算机指令被处理器901执行,以实现上述集群资源调度的方法。

进一步地,图9所示的电子设备还包括总线902和通信接口903,处理器901、通信接口903和存储器900通过总线902连接。

其中,存储器900可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口903(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线902可以是isa总线、pci总线或eisa总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器901可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器901中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器901可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器900,处理器901读取存储器900中的信息,结合其硬件完成前述实施例的方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述集群资源调度的方法,具体实现可参见方法实施例,在此不再赘述。

本发明实施例所提供的集群资源调度的方法、装置及电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子设备和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1