掌桥专利:专业的专利平台
掌桥专利
首页

资源调整方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 16:04:54



技术领域

本公开涉及电子数字数据处理技术领域,尤其涉及一种资源调整方法、装置、电子设备及存储介质。

背景技术

本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

Kubernetes是用于自动部署,扩展和管理容器化应用程序的开源系统,其将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。

Kubernetes将容器编排成一个集群,并采用一主多从的集群架构,即使用一个主节点(Master)管理多个子节点(Node),并以Pod(一个或多个容器的组合)作为基本单元分配到合适的子节点上。在处理任务时,Kubernetes选择适合该任务的子节点,在该子节点上分配资源并指派Pod来完成该任务。

然而,Kubernetes集群的可用资源是动态变化的,任务的资源需求也是动态变化的,现有技术中,资源一经分配,则后续不会进行调整,在一定程度上会造成资源浪费或者效率较低。

发明内容

有鉴于此,本公开的目的在于提出一种资源调整方法、装置、电子设备及存储介质。

基于上述目的,本公开示例性实施例提供了一种资源调整方法,基于Kubernetes系统实现,所述方法包括:

确定目标离线任务对应的目标Pod在目标时刻待获取的目标资源占用量和在历史时刻的历史资源占用量,并计算所述目标资源占用量相对于所述历史资源占用量的资源增加值;

获取所述目标Pod对应的目标节点对应的目标集群的离线任务可用资源量,响应于确定所述资源增加值未超过所述目标集群的离线任务可用资源量,获取所述目标节点的离线任务可用资源量,并判断所述资源增加值是否超过所述目标节点的离线任务可用资源量;

响应于确定所述资源增加值未超过所述目标节点的离线任务可用资源量,调整所述目标Pod在所述目标时刻的资源占用量为所述目标资源占用量。

在一些示例性实施例中,在所述计算所述目标资源占用相对于所述历史资源占用的资源增加值之后,还包括:

响应于确定所述资源增加值超过资源增加值阈值,判断所述目标Pod是否处于资源调整冷却阶段;

在所述获取所述目标Pod对应的目标节点对应的目标集群的离线任务可用资源量之前,还包括:

确定所述目标Pod不处于所述资源调整冷却阶段。

在一些示例性实施例中,所述判断所述目标Pod是否处于资源调整冷却阶段,包括:

获取所述目标Pod上一次进行资源调整的调整时刻;

响应于确定所述目标时刻与所述调整时刻的时间差值超过预设的时间差值阈值,确定所述目标Pod不处于所述资源调整冷却阶段。

在一些示例性实施例中,所述确定目标离线任务对应的目标Pod在目标时刻待获取的目标资源占用量,包括:

获取所述目标Pod在所述目标时刻的资源量需求;

根据所述资源量需求和预设的Pod资源期望利用率,得到所述目标资源占用量。

在一些示例性实施例中,在所述确定目标离线任务对应的目标Pod在目标时刻待获取的目标资源占用量之后,还包括:

响应于确定所述目标资源占用量超过预设的Pod资源占用量上限,将所述Pod资源占用量上限的值作为所述目标资源占用量的值。

在一些示例性实施例中,所述获取所述目标Pod对应的目标节点对应的目标集群的离线任务可用资源量,包括:

获取所述目标集群的集群离线任务资源池资源量;

获取所述目标集群的集群离线任务占用资源量;

根据所述集群离线任务资源池资源量和所述集群离线任务占用资源量,得到所述目标集群的离线任务可用资源量。

在一些示例性实施例中,所述获取所述目标集群的集群离线任务资源池资源量,包括:

获取所述目标集群的集群资源总量和集群在线业务占用资源量;

获取所述目标集群的预设的集群资源期望利用率和预设的集群在线业务预留资源量;

根据所述集群资源总量、所述集群资源期望利用率、所述集群在线业务占用资源量和所述集群在线业务预留资源量,得到所述集群离线任务资源池资源量。

在一些示例性实施例中,所述获取所述目标节点的离线任务可用资源量,包括:

获取所述目标节点的节点离线任务资源池资源量;

获取所述目标节点的节点离线任务占用资源量;

根据所述节点离线任务资源池资源量和所述节点离线任务占用资源量,得到所述目标节点的离线任务可用资源量。

在一些示例性实施例中,所述获取所述目标节点的节点离线任务资源池资源量,包括:

获取所述目标节点的节点资源总量和节点在线业务占用资源量;

获取所述目标节点的预设的节点资源期望利用率和预设的节点在线业务预留资源量;

根据所述节点资源总量、所述节点资源期望利用率、所述节点在线业务占用资源量和所述节点在线业务预留资源量,得到所述节点离线任务资源池资源量。

在一些示例性实施例中,所述资源,包括以下至少一项:

CPU、内存、磁盘IO和网络IO。

基于同一发明构思,本公开示例性实施例还提供了一种资源调整装置,基于Kubernetes系统实现,所述装置包括:

资源增加值确定模块,被配置为确定目标离线任务对应的目标Pod在目标时刻待获取的目标资源占用量和在历史时刻的历史资源占用量,并计算所述目标资源占用量相对于所述历史资源占用量的资源增加值;

资源量第一判断模块,被配置为获取所述目标Pod对应的目标节点对应的目标集群的离线任务可用资源量,响应于确定所述资源增加值未超过所述目标集群的离线任务可用资源量,获取所述目标节点的离线任务可用资源量,并判断所述资源增加值是否超过所述目标节点的离线任务可用资源量;

资源占用调整模块,被配置为响应于确定所述资源增加值未超过所述目标节点的离线任务可用资源量,调整所述目标Pod在所述目标时刻的资源占用量为所述目标资源占用量。

基于同一发明构思,本公开示例性实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项所述的方法。

基于同一发明构思,本公开示例性实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如上任一所述方法。

从上面所述可以看出,本公开实施例提供的资源调整方法、装置、电子设备及存储介质,该方法包括:确定目标离线任务对应的目标Pod在目标时刻待获取的目标资源占用量和在历史时刻的历史资源占用量,并计算目标资源占用量相对于历史资源占用量的资源增加值;响应于确定资源增加值未超过目标Pod对应的目标节点对应的目标集群的离线任务可用资源量,且响应于确定资源增加值未超过目标节点的离线任务可用资源量,调整目标Pod在目标时刻的资源占用量为目标资源占用量。本公开根据离线任务在不同时刻的资源需求,动态调整分配给该任务对应的Pod的资源,能够提高资源的利用率。

附图说明

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

图1为本公开实施例提供的资源调整方法的一种流程示意图;

图2为本公开实施例提供的资源调整方法的另一种流程示意图;

图3为本公开实施例提供的资源调整方法的另一种流程示意图;

图4为本公开实施例提供的资源调整装置的一种结构示意图;

图5为本公开实施例提供的资源调整装置的另一种结构示意图;

图6为本公开实施例提供的电子设备的结构示意图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

根据本公开的实施方式,提出了一种资源调整方法、装置、电子设备及存储介质。

在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。

相关技术中,基于Kubernetes的资源分配方案,存在资源浪费或者效率较低的问题。

本公开的发明人发现,造成上述相关技术中存在资源浪费或者效率较低的问题的原因是:Kubernetes集群的可用资源是动态变化的,任务的资源需求也是动态变化的,而相关技术中在进行资源分配时,仅关注当前的Kubernetes集群的可用资源和任务的资源需求,资源一经分配,则不会再关注Kubernetes集群的可用资源和任务的资源需求是否发生变化。在这种方案下,当Kubernetes集群的可用资源变化时,例如增加时,任务的可用资源增加,但是由于任务被分配的资源不会发生改变,其显然失去了提高效率的机会。当任务的资源需求变化时,例如降低时,由于其被分配资源时的资源需求较高,因此被分配的资源较多,在资源需求下降时,则会出现资源浪费的情况。

另外,本公开的应用场景中,Kubernetes将在线业务(通常为延迟敏感型高优先级任务)和离线任务(通常为CPU消耗型低优先级任务)同时混合部署在同一个节点上,以期提升节点的资源利用率。

相关技术中的基于Kubernetes的资源管理方案,以同一节点上的离线任务作为整体,统一管理节点离线任务资源池的大小以控制离线任务对在线业务的整体影响。

然而,由于离线任务共享节点离线任务资源池,因此离线任务之间存在相互资源的竞争影响;容易导致一个离线任务影响节点上全部离线任务。

为了解决上述问题,本公开提供了一种资源调整方案,具体包括:确定目标离线任务对应的目标Pod在目标时刻待获取的目标资源占用量和在历史时刻的历史资源占用量,并计算目标资源占用量相对于历史资源占用量的资源增加值;获取目标Pod对应的目标节点对应的目标集群的离线任务可用资源量,响应于确定资源增加值未超过目标集群的离线任务可用资源量,获取目标节点的离线任务可用资源量,并判断资源增加值是否超过目标节点的离线任务可用资源量;响应于确定资源增加值未超过目标节点的离线任务可用资源量,调整目标Pod在目标时刻的资源占用量为目标资源占用量。本公开根据离线任务在不同时刻的资源需求,动态调整分配给该任务对应的Pod的资源,能够提高资源的利用率。

在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。

参考图1,资源调整方法,基于Kubernetes系统实现,所述方法包括以下步骤:

步骤S110、确定目标离线任务对应的目标Pod在目标时刻待获取的目标资源占用量和在历史时刻的历史资源占用量,并计算目标资源占用量相对于历史资源占用量的资源增加值。

其中,本公开基于Kubernetes系统实现。Kubernetes是用于自动部署,扩展和管理容器化应用程序的开源系统,其将组成应用程序的容器组合成逻辑单元。

具体实施时,Kubernetes将容器编排成一个集群,并采用一主多从的集群架构,即使用一个主节点(Master)管理多个子节点(Node),并以Pod(一个或多个容器的组合)作为基本单元,分配到合适的子节点上。在处理任务时,Kubernetes选择适合该任务的子节点,在该子节点上分配资源并指派Pod来完成该任务。

其中,资源占用量指的是Pod实际需要占用的资源量。

具体实施时,在Kubernetes中,对于任一任务,均基于为其指派的Pod完成,因此,在本公开的表述中,分配给Pod的资源量即为分配给任务的资源量。

在一些示例性实施例中,资源,包括以下至少一项:

CPU、内存、磁盘IO和网络IO。

其中,同一任务在不同时刻的资源量需求可能是不同的。

具体实施时,以资源包括CPU为例,同一任务在不同阶段对于CPU的需求是不同的,在进行相对复杂的运算时,对于CPU的需求较高,相反的,在进行相对简单的运算时,对于CPU的需求较低。通常情况下,CPU的资源单位是“核”,例如,任务对于CPU的需求是5核。

相关技术中,为Pod分配资源后,Pod则一直利用该资源,直到任务完成,分配的资源量不会发生变化。而在本公开中,根据任务在不同时刻的资源量需求,调整分配给Pod的资源量。因此,需要首先确定目标任务对应的Pod在目标时刻实际需要占用的资源量,即目标资源占用量。

在一些示例性实施例中,确定目标离线任务对应的目标Pod在目标时刻待获取的目标资源占用量,包括:

获取目标Pod在目标时刻的资源量需求;

根据资源量需求和预设的Pod资源期望利用率,得到目标资源占用量。

其中,目标资源占用量=资源量需求/Pod资源期望利用率。

其中,资源量需求与资源占用量相对应,资源量需求指的是Pod理论上需要占用的资源量。

具体的,考虑到Pod不能够百分之百的利用资源,本公开设置有Pod资源期望利用率,在已知资源量需求的基础上计算得到资源占用,以帮助Pod能够分配到足够的资源。

在一些示例性实施例中,在确定目标离线任务对应的目标Pod在目标时刻待获取的目标资源占用量之后,还包括:

响应于确定目标资源占用量超过预设的Pod资源占用量上限,将Pod资源占用量上限的值作为目标资源占用量的值。

其中,目标资源占用量=min(资源量需求/Pod资源期望利用率,Pod资源占用量上限),其中,min表示最小值。

其中,考虑到存在其他任务也需要占用资源,因此,本公开设置有Pod资源占用量上限,对于单一任务,一旦Pod的目标资源占用量超过预设的Pod资源占用量上限,则最多分配给该Pod以资源占用量上限的资源。

至此,在步骤S110中,确定了在目标时刻将要分配给目标离线任务对应的目标Pod的资源的量的变化即资源增加值,然而,由于系统的资源总量有限,且系统中存在其他离线任务以及在线任务,因此,在后续的步骤中,将进一步确定系统能否实现该资源变化。

步骤S120、获取目标Pod对应的目标节点对应的目标集群的离线任务可用资源量,响应于确定资源增加值未超过目标集群的离线任务可用资源量,获取目标节点的离线任务可用资源量,并判断资源增加值是否超过目标节点的离线任务可用资源量。

在一些示例性实施例中,获取目标Pod对应的目标节点对应的目标集群的离线任务可用资源量,包括:

获取目标集群的集群离线任务资源池资源量;

获取目标集群的集群离线任务占用资源量;

根据集群离线任务资源池资源量和集群离线任务占用资源量,得到目标集群的离线任务可用资源量。

其中,集群离线任务资源池资源量指的是该集群中可分配给离线任务的资源的总量。集群离线任务占用资源量指的是该集群中已经分配给离线任务的资源的总量。

在一些示例性实施例中,获取目标集群的集群离线任务资源池资源量,包括:

获取目标集群的集群资源总量和集群在线业务占用资源量;

获取目标集群的预设的集群资源期望利用率和预设的集群在线业务预留资源量;

根据集群资源总量、集群资源期望利用率、集群在线业务占用资源量和集群在线业务预留资源量,得到集群离线任务资源池资源量。

其中,集群离线任务资源池资源量=max(集群资源总量*集群资源期望利用率-集群在线业务占用资源量-集群在线业务预留资源量,0)。

本公开针对集群在线业务设置预留资源,避免了离线任务对于同一集群的在线任务的过分影响,根据集群的实时离线可用资源量进行限制离线任务的创建。

其中,集群资源期望利用率还用于:针对CPU、内存等各个隔离指标设置期望利用率,当集群实际利用率小于期望利用率时,可以进行离线任务的调度;当集群实际利用率大于期望利用率时,需要对离线任务的进行驱逐。

在一些示例性实施例中,获取目标节点的离线任务可用资源量,包括:

获取目标节点的节点离线任务资源池资源量;

获取目标节点的节点离线任务占用资源量;

根据节点离线任务资源池资源量和节点离线任务占用资源量,得到目标节点的离线任务可用资源量。

其中,节点离线任务资源池资源量指的是该节点上可分配给离线任务的资源的总量。节点离线任务占用资源量指的是该节点上已经分配给离线任务的资源的总量。

在一些示例性实施例中,获取目标节点的节点离线任务资源池资源量,包括:

获取目标节点的节点资源总量和节点在线业务占用资源量;

获取目标节点的预设的节点资源期望利用率和预设的节点在线业务预留资源量;

根据节点资源总量、节点资源期望利用率、节点在线业务占用资源量和节点在线业务预留资源量,得到节点离线任务资源池资源量。

其中,节点离线任务资源池资源量=max(节点资源总量*节点资源期望利用率-节点在线业务占用资源量-节点在线业务预留资源量,0)。其中,max表示最大值。

本公开针对节点在线业务设置预留资源,避免了离线任务对于同一节点的在线任务的过分影响,根据节点的实时离线可用资源量进行限制离线任务的创建。

其中,节点资源期望利用率还用于:针对CPU、内存等各个隔离指标设置期望利用率,当节点实际利用率小于期望利用率时,可以进行离线任务的调度;当节点实际利用率大于期望利用率时,需要对离线任务的进行驱逐。

步骤S130、响应于确定资源增加值未超过目标节点的离线任务可用资源量,调整目标Pod在目标时刻的资源占用量为目标资源占用量。

至此,确定了系统能否满足目标Pod的资源增加值的需求,如果能够满足,调整目标Pod在目标时刻的资源占用量为目标资源占用量。

从上面所述可以看出,本公开实施例提供的资源调整方法,包括:确定目标离线任务对应的目标Pod在目标时刻待获取的目标资源占用量和在历史时刻的历史资源占用量,并计算目标资源占用量相对于历史资源占用量的资源增加值;响应于确定资源增加值未超过目标Pod对应的目标节点对应的目标集群的离线任务可用资源量,且响应于确定资源增加值未超过目标节点的离线任务可用资源量,调整目标Pod在目标时刻的资源占用量为目标资源占用量。本公开根据离线任务在不同时刻的资源需求,动态调整分配给该任务对应的Pod的资源,能够提高资源的利用率。

进一步的,本公开针对集群、节点和Pod三个维度进行了策略配置,既具有集群层面的统一管理,又具有Pod粒度级别的管理。并且,综合考虑了离线任务对在线业务的影响、离线任务和离线任务之间的影响、节点资源的利用率、集群层面的资源管理等多个因素,提高了资源的利用率和资源调整的效率。

参考图2,资源调整方法,基于Kubernetes系统实现,所述方法包括以下步骤:

步骤S210、确定目标离线任务对应的目标Pod在目标时刻待获取的目标资源占用量和在历史时刻的历史资源占用量,并计算目标资源占用量相对于历史资源占用量的资源增加值。

步骤S220、响应于确定资源增加值超过资源增加值阈值,判断目标Pod是否处于资源调整冷却阶段。

在一些示例性实施例中,响应于确定资源增加值未超过预设的资源增加值阈值,调整目标Pod在目标时刻的资源占用量为目标资源占用量。

其中,本公开设置有资源增加值阈值,允许资源进行微调,该微调对系统的影响较小。

在一些示例性实施例中,在获取目标Pod对应的目标节点对应的目标集群的离线任务可用资源量之前,还包括:

确定目标Pod不处于资源调整冷却阶段。

在一些示例性实施例中,判断目标Pod是否处于资源调整冷却阶段,包括:

获取目标Pod上一次进行资源调整的调整时刻;

响应于确定目标时刻与调整时刻的时间差值超过预设的时间差值阈值,确定目标Pod不处于资源调整冷却阶段。

其中,本公开设置有资源调整冷却阶段,避免频繁进行资源调整,从而避免因频繁调整导致的任务异常。

步骤S230、获取目标Pod对应的目标节点对应的目标集群的离线任务可用资源量,响应于确定资源增加值未超过目标集群的离线任务可用资源量,获取目标节点的离线任务可用资源量,并判断资源增加值是否超过目标节点的离线任务可用资源量。

步骤S240、响应于确定资源增加值未超过目标节点的离线任务可用资源量,调整目标Pod在目标时刻的资源占用量为目标资源占用量。

从上面所述可以看出,本公开实施例提供的资源调整方法,进一步判断资源增加值是否超过资源增加值阈值,以及,目标Pod是否处于资源调整冷却阶段,在一定程度上允许资源进行微调,并保证了资源调整的平稳性,提高了资源调整的效率。

在一些示例性实施例中,响应于确定存在多个需要进行资源调整的Pod,各个Pod的资源调整都是同比例线性调整,各个Pod的资源期望利用率尽可能均衡,Pod中资源最紧缺的Pod优先调整。

在一些示例性实施例中,通过采集器定时采集集群、节点、Pod维度的指标,包括CPU、内存、磁盘IO、网络IO等。

在一些示例性实施例中,通过隔离器对集群、节点、Pod等资源进行动态调整。

参考图3,资源调整方法,基于Kubernetes系统实现,所述方法包括以下步骤:

步骤S310、确定目标离线任务对应的目标Pod在目标时刻待获取的目标资源占用量和在历史时刻的历史资源占用量,并计算目标资源占用量相对于历史资源占用量的资源增加值。

步骤S320、判断资源增加值是否超过资源增加值阈值:

响应于确定资源增加值未超过资源增加值阈值,跳转到步骤S380;

响应于确定资源增加值超过资源增加值阈值,跳转到步骤S330。

步骤S330、判断目标Pod是否处于资源调整冷却阶段:

响应于确定目标Pod处于资源调整冷却阶段,跳转到开始;其中,跳转到开始即表示调整目标Pod在目标时刻的资源占用量为目标资源占用量是不合适的,需要重新确定调整目标Pod的资源的时刻和量;

响应于确定目标Pod不处于资源调整冷却阶段,跳转到步骤S340。

步骤S340、获取目标Pod对应的目标节点对应的目标集群的离线任务可用资源量。

步骤S350、判断资源增加值是否超过目标集群的离线任务可用资源量:

响应于确定资源增加值超过目标集群的离线任务可用资源量,跳转到开始;

响应于确定资源增加值未超过目标集群的离线任务可用资源量,跳转到步骤S360。

步骤S360、获取目标节点的离线任务可用资源量。

步骤S370、判断资源增加值是否超过目标节点的离线任务可用资源量:

响应于确定资源增加值超过目标节点的离线任务可用资源量,跳转到开始;

响应于确定资源增加值未超过目标节点的离线任务可用资源量,跳转步骤S380。

步骤S380、调整目标Pod在目标时刻的资源占用量为目标资源占用量。

需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。

需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种资源调整装置。

参考图4,资源调整装置,基于Kubernetes系统实现,所述装置包括:

资源增加值确定模块410,被配置为确定目标离线任务对应的目标Pod在目标时刻待获取的目标资源占用量和在历史时刻的历史资源占用量,并计算目标资源占用量相对于历史资源占用量的资源增加值。

在一些示例性实施例中,资源,包括以下至少一项:

CPU、内存、磁盘IO和网络IO。

在一些示例性实施例中,资源增加值确定模块410,具体被配置为:

获取目标Pod在目标时刻的资源量需求;

根据资源量需求和预设的Pod资源期望利用率,得到目标资源占用量。

在一些示例性实施例中,资源增加值确定模块410,具体还被配置为:

响应于确定目标资源占用量超过预设的Pod资源占用量上限,将Pod资源占用量上限的值作为目标资源占用量的值。

资源量第一判断模块420,被配置为获取目标Pod对应的目标节点对应的目标集群的离线任务可用资源量,响应于确定资源增加值未超过目标集群的离线任务可用资源量,获取目标节点的离线任务可用资源量,并判断资源增加值是否超过目标节点的离线任务可用资源量。

在一些示例性实施例中,资源量第一判断模块420,具体被配置为:

获取目标集群的集群离线任务资源池资源量;

获取目标集群的集群离线任务占用资源量;

根据集群离线任务资源池资源量和集群离线任务占用资源量,得到目标集群的离线任务可用资源量。

在一些示例性实施例中,资源量第一判断模块420,具体被配置为:

获取目标集群的集群资源总量和集群在线业务占用资源量;

获取目标集群的预设的集群资源期望利用率和预设的集群在线业务预留资源量;

根据集群资源总量、集群资源期望利用率、集群在线业务占用资源量和集群在线业务预留资源量,得到集群离线任务资源池资源量。

在一些示例性实施例中,资源量第一判断模块420,具体被配置为:

获取目标节点的节点离线任务资源池资源量;

获取目标节点的节点离线任务占用资源量;

根据节点离线任务资源池资源量和节点离线任务占用资源量,得到目标节点的离线任务可用资源量。

在一些示例性实施例中,资源量第一判断模块420,具体被配置为:

获取目标节点的节点资源总量和节点在线业务占用资源量;

获取目标节点的预设的节点资源期望利用率和预设的节点在线业务预留资源量;

根据节点资源总量、节点资源期望利用率、节点在线业务占用资源量和节点在线业务预留资源量,得到节点离线任务资源池资源量。

资源占用调整模块430,被配置为响应于确定资源增加值未超过目标节点的离线任务可用资源量,调整目标Pod在目标时刻的资源占用量为目标资源占用量。

参考图5,资源调整装置,基于Kubernetes系统实现,所述装置包括:

资源增加值确定模块510,被配置为确定目标离线任务对应的目标Pod在目标时刻待获取的目标资源占用量和在历史时刻的历史资源占用量,并计算目标资源占用量相对于历史资源占用量的资源增加值。

资源量第二判断模块520,被配置为响应于确定资源增加值超过资源增加值阈值,判断目标Pod是否处于资源调整冷却阶段。

在一些示例性实施例中,资源量第二判断模块520,具体被配置为:

获取目标Pod上一次进行资源调整的调整时刻;

响应于确定目标时刻与调整时刻的时间差值超过预设的时间差值阈值,确定目标Pod不处于资源调整冷却阶段。

资源量第一判断模块530,被配置为获取目标Pod对应的目标节点对应的目标集群的离线任务可用资源量,响应于确定资源增加值未超过目标集群的离线任务可用资源量,获取目标节点的离线任务可用资源量,并判断资源增加值是否超过目标节点的离线任务可用资源量。

资源占用调整模块540,被配置为响应于确定资源增加值未超过目标节点的离线任务可用资源量,调整目标Pod在目标时刻的资源占用量为目标资源占用量。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

上述实施例的装置用于实现前述任一实施例中相应的资源调整方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的资源调整方法。

图6示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

上述实施例的电子设备用于实现前述任一实施例中相应的资源调整方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的资源调整方法。

上述非暂态计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。

上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上示例性方法部分中任一实施例所述的资源调整方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

本领域技术技术人员知道,本公开的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本公开还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。

可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。

也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。

也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。

此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

申请文件中提及的动词“包括”、“包含”及其词形变化的使用不排除除了申请文件中记载的那些元素或步骤之外的元素或步骤的存在。元素前的冠词“一”或“一个”不排除多个这种元素的存在。

虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

技术分类

06120114693461