CN117193947A - 基于多种资源的容器集分配方法、装置、设备及存储介质 - Google Patents

基于多种资源的容器集分配方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117193947A
CN117193947A CN202311257421.8A CN202311257421A CN117193947A CN 117193947 A CN117193947 A CN 117193947A CN 202311257421 A CN202311257421 A CN 202311257421A CN 117193947 A CN117193947 A CN 117193947A
Authority
CN
China
Prior art keywords
node
resource
score
resources
time
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
Application number
CN202311257421.8A
Other languages
English (en)
Inventor
陆祉丞
江浪
吴限
徐权威
邓见广
郭伦昊
吴桐
姜腾飞
李文月
靳尧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202311257421.8A priority Critical patent/CN117193947A/zh
Publication of CN117193947A publication Critical patent/CN117193947A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种基于多种资源的容器集分配方法、装置、设备及存储介质,涉及容器集技术领域。该方法包括:分别对每个第一节点的多种资源进行评分,得到每个第一节点的每种资源的评分;根据预存的每种资源的权重,以及每个第一节点的每种资源的评分,分别得到每个第一节点的评分;根据每个第一节点的评分,从多个第一节点中确定第二节点,以便于将创建的容器集分配到第二节点并进行绑定,其中,第二节点的评分,大于多个第一节点中除第二节点之外的节点的评分。本申请的方法,解决了Kubernetes的容器集分配方法只考虑了中央处理器资源和内存资源,并未考虑到其他类型的资源,导致其他某种类型的资源无法被充分利用的问题。

Description

基于多种资源的容器集分配方法、装置、设备及存储介质
技术领域
本申请涉及容器集领域,尤其涉及一种基于多种资源的容器集分配方法、装置、设备及存储介质。
背景技术
Kubernetes(K8s)凭借着出色的节点分配与管理能力,成为了大多数云计算平台的基础设施。Kubernetes的容器集分配方法可以将容器集(Pod)分配到合适的节点(Node)上,从而提高集群的利用效率,节约硬件和运营成本,为用户提供更好的体验。因此,Kubernetes的容器集分配方法,是云计算中的关键。
Kubernetes的节点分配包括:预选阶段、优选阶段和选定阶段。其中,预选阶段用于过滤掉不符合要求的节点,得到多个第一节点;优选阶段用于对多个第一节点进行评分,并根据评分结果,从多个第一节点中确定第二节点;选定阶段用于将创建的容器集分配到第二节点并进行绑定(Binding)。
现有技术中,对多个第一节点进行评分,是指分别对每个第一节点的中央处理器(Central Processing Unit,CPU)资源和内存(Memory,MEM)资源进行评分,并根据中央处理器资源评分与内存资源评分,确定对应的第一节点的节点评分。然而,Kubernetes的容器集分配方法只考虑了中央处理器资源和内存资源,并未考虑到其他类型的资源,导致其他某种类型的资源无法被充分利用。
发明内容
本申请提供一种基于多种资源的容器集分配方法、装置、设备及存储介质,用以解决Kubernetes的容器集分配方法只考虑了中央处理器资源和内存资源,并未考虑到其他类型的资源,导致其他某种类型的资源无法被充分利用的问题。
第一方面,本申请提供一种基于多种资源的容器集分配方法,该方法包括:
分别对每个第一节点的多种资源进行评分,得到每个第一节点的每种资源的评分;
根据预存的每种资源的权重,以及每个第一节点的每种资源的评分,分别得到每个第一节点的评分;
根据每个第一节点的评分,从多个第一节点中确定第二节点,以便于将创建的容器集分配到第二节点并进行绑定,其中,第二节点的评分,大于多个第一节点中除第二节点之外的节点的评分。
在一种可能的设计中,多种资源包括:多种指标资源;
多种指标资源包括:中央处理器资源、内存资源、存储资源、网络带宽资源、磁盘读写资源和传输控制协议连接资源;
分别对每个第一节点的多种资源进行评分,得到每个第一节点的每种资源的评分,包括:
获取每个第一节点的每种指标资源的总量和需求量;
根据每个第一节点的每种指标资源的总量和需求量,得到每个第一节点的每种指标资源的评分,其中,指标资源的评分包括:中央处理器资源的评分、内存资源的评分、存储资源的评分、网络带宽资源的评分、磁盘读写资源的评分和传输控制协议连接资源的评分。
在一种可能的设计中,多种资源还包括:时间资源;
分别对每个第一节点的多种资源进行评分,得到每个第一节点的每种资源的评分,还包括:
获取每个第一节点的第一时间,第一时间为对应的第一节点加入集群的时间;
从多个第一时间中确定第二时间和第三时间,其中,第二时间早于多个第一时间中除第二时间之外的时间,第三时间晚于多个第一时间中除第三时间之外的时间;
根据第二时间和第三时间,以及每个第一节点的第一时间,得到每个第一节点的时间资源的评分。
在一种可能的设计中,确定第m个第一节点的第n种指标资源的评分Scoremn时,根据每个第一节点的每种指标资源的总量和需求量,得到每个第一节点的每种指标资源的评分,具体包括:
其中,m和n均为正整数,第m个第一节点为多个第一节点中的任意一个,第n种指标资源为多种指标资源中的任意一种,Totalmn为第m个第一节点的第n种指标资源的总量,Requestmn为第m个第一节点的第n种指标资源的需求量,为正数;
确定第m个第一节点的时间资源的评分Scorem7时,根据第二时间和第三时间,以及每个第一节点的第一时间,得到每个第一节点的时间资源的评分,具体包括:
其中,Nodetimelmt为第m个第一节点的第一时间,Nodetimel2为第二时间,Nodetimel3为第三时间。
在一种可能的设计中,确定第m个第一节点的评分FinalScorem时,根据预存的每种资源的权重,以及每个第一节点的每种资源的评分,分别得到每个第一节点的评分,具体包括:
其中,i为正整数,Weigthi为第i种资源的权重,Scoremi为第m个第一节点的第i种资源的评分,第i种资源为多种资源中的任意一种。
在一种可能的设计中,根据预存的每种资源的权重,以及每个第一节点的每种资源的评分,分别得到每个第一节点的评分之前,方法还包括:
获取容器集的业务类型,业务类型是创建容器集时确定的;
根据容器集的业务类型,从预存的多个第一权重集合中,确定容器集对应的第二权重集合,其中,每个第一权重集合分别对应一种业务类型;
根据第二权重集合,得到每种资源的权重。
在一种可能的设计中,同时创建多个容器集时,多个容器集的业务类型彼此相同;
根据每个第一节点的评分,从多个第一节点中确定第二节点,包括:
根据每个第一节点的评分,从多个第一节点中确定多个第二节点,以便于将创建的多个容器集,逐一分配到多个第二节点并进行绑定,其中,第二节点的数量小于第一节点的数量,第二节点的数量等于多个容器集的数量。
第二方面,本申请提供一种基于多种资源的容器集分配装置,包括:
资源评分装置,用于分别对每个第一节点的多种资源进行评分,得到每个第一节点的每种资源的评分;
节点评分装置,用于根据预存的每种资源的权重,以及每个第一节点的每种资源的评分,分别得到每个第一节点的评分;
节点确定装置,用于根据每个第一节点的评分,从多个第一节点中确定第二节点,以便于将创建的容器集分配到第二节点并进行绑定,其中,第二节点的评分,大于多个第一节点中除第二节点之外的节点的评分。
第三方面,本申请提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;
存储器存储计算机执行指令;
处理器执行存储器存储的计算机执行指令,用于实现第一方面发明内容的一种基于多种资源的容器集分配方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时,用于实现第一方面发明内容的一种基于多种资源的容器集分配方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时,用于实现第一方面发明内容的一种基于多种资源的容器集分配方法。
本申请提供的一种基于多种资源的容器集分配方法、装置、设备及存储介质,分别对每个第一节点的多种资源进行评分,得到每个第一节点的每种资源的评分;根据预存的每种资源的权重,以及每个第一节点的每种资源的评分,分别得到每个第一节点的评分;并根据每个第一节点的评分,从多个第一节点中确定第二节点,以便于将创建的容器集分配到第二节点并进行绑定。实现了如下技术效果:通过对每个第一节点的中央处理器资源、内存资源、存储资源、网络带宽资源、磁盘读写资源和传输控制协议连接资源等多种资源进行评分,解决了某种类型的资源无法被充分利用的问题;通过对每个第一节点的时间资源进行评分,解决了无法维持集群中多个节点的动态平衡的问题;通过业务类型,以及预存的业务类型和权重的对应关系,对每个第一节点的每种资源的评分,分配不同的权重,以计算每个第一节点的评分,解决了某种类型的资源无法被充分利用的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的Kubernetes的系统架构示意图;
图2为现有技术中的容器集分配的流程示意图;
图3为本申请实施例提供的基于多种资源的容器集分配方法的流程示意图一;
图4为本申请实施例提供的基于多种资源的容器集分配方法的流程示意图二;
图5为本申请实施例提供的基于多种资源的容器集分配装置的结构示意图;
图6为本申请实施例提供的电子设备硬件的结构示意图。
附图标记:
100-用户层;110-客户端;
200-主节点层;210-鉴权模块;220-应用程序接口服务器;230-分配模块;240-监控模块;250-分布式键值存储数据库;260-控制模块;
300-数据节点层;310-节点;311-Kubelet;312-容器集;
400-基于多种资源的容器集分配装置;410-资源评分模块;420-节点评分模块;430-节点确定模块;
500-电子设备;510-处理器;520-存储器;530-通信部件;540-总线。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。
需要说明的是,本申请实施例中的“在……时”,可以为在某种情况发生的瞬时,也可以为在某种情况发生后的一段时间内,本申请实施例对此不作具体限定。此外,本申请实施例提供的一种基于多种资源的容器集分配方法仅作为示例,基于多种资源的容器集分配方法还可以包括更多或更少的内容。
为了便于清楚描述本申请实施例的技术方案,以下,对本申请实施例中所涉及的部分术语和技术进行简单介绍:
云计算(Cloud Computing):是一种分布式计算。云计算通过网络,将巨大的数据计算程序分解为无数个小程序,通过多部服务器组成的系统处理和分析这些小程序,得到结果并返回给用户。
Kubernetes(K8s):是一种开源的,用于管理云平台中多个服务器上的容器化的应用。
容器(Container):是一种轻量级的虚拟化技术。容器将应用程序和其依赖项封装在一个独立的环境中,以使其可以在任何地方运行。
容器集(Pod):是一种容器的集合。Pod是Kubernetes的最小管理单元,可以包括一个或多个容器,并共享相同的网络命名空间和存储卷,相当于一个逻辑主机。
节点(Node):是一种执行具体工作的设备。节点可以是虚拟机也可以是物理机。每个节点都运行Kubernetes代理程序,并接受来自Kubernetes主控制平面的指令。
集群:是一种多个节点组成的Kubernetes环境。集群提供了高可用性、负载均衡、自动化扩展和故障恢复等功能,以确保应用程序始终可用并具有高可靠性。
权重:是指某一资源相对于节点的相对重要程度。
中央处理器资源:是指节点的中央处理器(Central Processing Unit,CPU)的算力(Computility)。中央处理器资源的单位为每秒浮点运算次数(Flpos)。
内存资源:是指节点的内存储器的内存(Memory,MEM)。内存资源的单位为千兆(Gigabyte,GB)。
存储资源:是指节点的外存储器的外存,具体是指磁盘(Disk)的外存。存储资源的单位GB。
网络带宽资源:是指节点在单位时间内网络传输的数据量。网络带宽资源的单位为每秒传输百万位比特数量(Million bits per second,Mbps)。
磁盘读写资源:是指节点的磁盘读写速度。磁盘读写资源的单位为每秒千兆位(GB/s)。
传输控制协议连接资源:是指节点发起的传输控制协议(Transmission ControlProtocol,TCP)连接的数量。传输控制协议连接资源的单位为个。
时间资源:是指节点加入集群的时间。时间资源的单位为秒。
图1为现有技术中的Kubernetes的系统架构示意图。如图1所示,Kubernetes的系统架构包括:用户层100、主节点层200(Master Node)和数据节点层300(Worker Node)。
用户层100中部署有客户端110;客户端110用于为用户(User)提供访问集群的功能,以便于用户管理和操作集群。通常情况下,客户端110为Kubectl,Kubectl是一种命令行工具(Command Line Interface,CLI)。
主节点层200用于Kubernetes的分配、管理和执行命令等。主节点层200中部署有鉴权模块210(Authorize,Auth)、应用程序接口服务器220(Application ProgramInterface,API)、分配模块230、监控模块240、分布式键值存储数据库250(ExtendedDistributed Key Value,ETCD)和控制模块260(Controll Manager);鉴权模块210用于根据用户从客户端110发来的鉴权(Authentication)信息,判断用户对集群拥有的权限大小;应用程序接口服务器220是Kubernetes的数据总线和数据中心,用于为主节点层200内部的各个组件提供相互访问的接口,还用于为用户提供操作数据节点层300的接口;分配模块230上运行有容器集分配算法,分配模块230用于从应用程序接口服务器220获取分配任务,还用于根据容器集分配算法,将容器集分配到节点上,以执行上述分配任务;监控模块240用于为分配模块230提供相应的节点资源的数据;分布式键值存储数据库250是Kubernetes使用的服务器,用于存储集群的各项元数据和信息;控制模块260用于Kubernetes的控制,以确保集群始终处于预期的工作状态。
数据节点层300中部署有多个节点310,每个节点310中部署有一个Kubelet311,以及若干个容器集312;Kubelet311是Kubernetes的代理组件,其上运行有Kubernetes的代理程序,Kubelet311用于从主节点层200接收命令,并根据命令在每个容器集312上执行相应的操作,还用于监控节点的各项数据,定期向主节点层200汇报。
现有技术中,Kubernetes的作业流程包括:
首先,容器集创建阶段。用户通过客户端110创建任务,进而通过应用程序接口服务器220对主节点层200发起容器集创建请求。主节点层200首先通过鉴权模块210对用户进行权限的判断,通过后,应用程序接口服务器220通过控制模块260创建容器集,将创建过程中的各项元数据和信息保存在分布式键值存储数据库250中,并将容器集分配的任务及相应的信息发送到分配模块230,开始进行容器集的分配。
其次,容器集分配阶段。
图2为现有技术中的容器集分配的流程示意图。如图2所示,容器集分配的流程包括:
S101、预选阶段。通过预选配置的过滤规则,判断每个节点的资源是否满足条件。排除掉资源不满足条件的节点,这些节点不可以被调用,剩余未被排除掉的节点可以被调用,将这些未被排除掉的节点作为第一节点。
S102、判断第一节点的数量是否满足要求。若是,执行S103;若否,执行S106。
S103、优选阶段。对多个第一节点进行评分,并从中选出分数最高的一批第一节点,作为第二节点,即节点310。
具体来说,通过最低请求优先级算法(Least RequestedPriority),对多个第一节点进行评分,评分的流程为:
首先,分别对每个第一节点的中央处理器资源和内存资源进行评分,得到每个第一节点的中央处理器资源的评分CPUScore,以及内存资源的评分MEMScore,计算公式为:
其中,CPUTotal为每个第一节点的中央处理器资源的总量,CPURequest为每个第一节点的中央处理器资源的需求量,MEMTotal为每个第一节点的内存资源的总量,MEMRequest为每个第一节点的内存资源的需求量。通过上述公式,可以计算出每个第一节点的每种资源的取值范围在[0,10]中的评分。
其次,根据每个第一节点的CPUScore和MEMScore,得到每个第一节点的评分FinalScore,计算公式为:
FinalScore=CPUScore+MEMScore
得到每个第一节点的评分之后,从中选出分数最高的一批第一节点,作为第二节点。
S104、选定阶段。将创建的容器集,即容器集312,分配到第二节点并进行绑定。
S105、判断容器集是否分配成功。若是,执行S106;若否,重新执行S104;
S106、容器集分配结束。
最后,容器集监控阶段。应用程序接口服务器220对第二节点上的Kubelet311进行定期访问,收集容器集312的运行状态、节点310的运行情况和节点310的资源使用情况等信息。
然而,现有技术中的容器集分配方法只考虑了中央处理器资源和内存资源,而没有考虑到其他类型的资源的影响,如存储资源、网络带宽资源、磁盘读写资源和传输控制协议连接资源等,导致其他某种类型的资源无法被充分利用。
同时,现有技术中的容器集分配方法默认集群的规模保持不变,且已分配的容器集对资源的需求保持不变,只考虑了单个节点的分配,没有考虑到集群中多个节点的动态平衡。而实际情况中,集群的规模不断扩大,且已分配的容器集对资源的需求也不断扩大,这就要求新加入集群的节点,相较于早期加入集群的节点应该容易被分配到容器集,上述情况导致无法维持集群中多个节点的动态平衡。
同时,现有技术中的容器集分配方法对各种类型的资源进行评分时,没有考虑到不同类型的业务对各种类型的资源的侧重,也导致其他某种类型的资源无法被充分利用。
最后,每完成一个容器集的分配,现有技术中的容器集分配方法便需要执行一次S101-S106,并进行一次运算。同一批次创建的容器集中,有多少个容器集,便需要进行多少次的运算,导致容器集分配过程中运算量大,且运算时间长。
基于此,本申请实施例提供一种基于多种资源的容器集分配方法、装置、设备及存储介质,可用于容器集技术领域,旨在解决上述的多个技术问题。
图3为本申请实施例提供的基于多种资源的容器集分配方法的流程示意图一。如图3所示,该方法包括:
S201、分别对每个第一节点的多种资源进行评分,得到每个第一节点的每种资源的评分;
具体来说,多种资源包括中央处理器资源、内存资源、存储资源、网络带宽资源、磁盘读写资源、传输控制协议连接资源和时间资源等。基于多种资源的容器集分配装置通过每个第一节点的中央处理器资源、内存资源、存储资源、网络带宽资源、磁盘读写资源和传输控制协议连接资源的评分,描述每个第一节点的每种资源的总量和需求量的关系,用于解决某种类型的资源无法被充分利用的问题;同时,通过每个第一节点的时间资源的评分,描述每个第一节点加入集群的时间,用于解决无法维持集群中多个节点的动态平衡的问题。
S202、根据预存的每种资源的权重,以及每个第一节点的每种资源的评分,分别得到每个第一节点的评分;
具体来说,不同类型的业务对各种类型的资源的侧重不同。为每个第一节点进行评分时,基于多种资源的容器集分配装置根据业务类型,以及预存的业务类型和权重的对应关系,对上述每个第一节点的每种资源的评分,分配不同的权重,以计算每个第一节点的评分,用于解决某种类型的资源无法被充分利用的问题。
S203、根据每个第一节点的评分,从多个第一节点中确定第二节点,以便于将创建的容器集分配到第二节点并进行绑定;
具体来说,基于多种资源的容器集分配装置将每个第一节点的评分进行正序排序,并根据排序结果,从排序靠前的多个第一节点中确定第二节点,以便于将创建的容器集分配到第二节点并进行绑定,其中,第二节点的评分,大于多个第一节点中除第二节点之外的节点的评分。
本实施例提供的一种基于多种资源的容器集分配方法,分别对每个第一节点的多种资源进行评分,得到每个第一节点的每种资源的评分;根据预存的每种资源的权重,以及每个第一节点的每种资源的评分,分别得到每个第一节点的评分;并根据每个第一节点的评分,从多个第一节点中确定第二节点,以便于将创建的容器集分配到第二节点并进行绑定。实现了如下技术效果:通过对每个第一节点的中央处理器资源、内存资源、存储资源、网络带宽资源、磁盘读写资源和传输控制协议连接资源等多种资源进行评分,解决了某种类型的资源无法被充分利用的问题;通过对每个第一节点的时间资源进行评分,解决了无法维持集群中多个节点的动态平衡的问题;通过业务类型,以及预存的业务类型和权重的对应关系,对每个第一节点的每种资源的评分,分配不同的权重,以计算每个第一节点的评分,解决了某种类型的资源无法被充分利用的问题。
图4为本申请实施例提供的基于多种资源的容器集分配方法的流程示意图二。如图4所示,本实施例在图3实施例的基础上,对基于多种资源的容器集分配方法进行详细说明,多种资源包括:多种指标资源和时间资源;多种指标资源包括:中央处理器资源、内存资源、存储资源、网络带宽资源、磁盘读写资源和传输控制协议连接资源。本实施例可以先执行S301再执行S303,也可以先执行S303再执行S301,还可以同时执行S301和S303,本实施例不做限定。本实施例提供的一种基于多种资源的容器集分配方法,包括:
S301、获取每个第一节点的每种指标资源的总量和需求量;
具体来说,基于多种资源的容器集分配装置获取每个第一节点的每种指标资源的总量和需求量,即获取每个第一节点的中央处理器资源的总量和需求量,内存资源的总量和需求量,存储资源的总量和需求量,网络带宽资源的总量和需求量,磁盘读写资源的总量和需求量,以及传输控制协议连接资源的总量和需求量。
S302、根据每个第一节点的每种指标资源的总量和需求量,得到每个第一节点的每种指标资源的评分;
具体来说,基于多种资源的容器集分配装置计算每个第一节点的每种指标资源的评分。确定第m个第一节点的第n种指标资源的评分Scoremn时,计算公式为:
其中,m和n均为正整数,第m个第一节点为多个第一节点中的任意一个,第n种指标资源为多种指标资源中的任意一种,即中央处理器资源、内存资源、存储资源、网络带宽资源、磁盘读写资源和传输控制协议连接资源中的任意一个,Totalmn为第m个第一节点的第n种指标资源的总量,Requestmn为第m个第一节点的第n种指标资源的需求量,Score0为正数,Score0可以是1、10或100等。
指标资源的评分Scoremn包括:中央处理器资源的评分Scorem1、内存资源的评分Scorem2、存储资源的评分Scorem3、网络带宽资源的评分Scorem4、磁盘读写资源的评分Scorem5和传输控制协议连接资源的评分Scorem6
执行完S302之后,继续执行S306。
S303、获取每个第一节点的第一时间;
具体来说,在实际生产中,节点是分批次逐渐加入集群的,并且已分配的容器集对资源的需求也不断扩大,因此,需要尽可能地将新创建的容器集分配到新加入集群的节点上。但是由于节点的指标资源的规格不一致,导致在集群的指标资源宽松时,新创建的容器集分配到新加入集群的节点和早期加入集群的节点的概率大致相同,进而导致无法维持集群中多个节点的动态平衡。因此,为每个第一节点加入集群的时间进行打分。基于多种资源的容器集分配装置获取每个第一节点的第一时间,第一时间为对应的第一节点加入集群的时间。
S304、从多个第一时间中确定第二时间和第三时间;
具体来说,基于多种资源的容器集分配装置从多个第一时间中确定第二时间和第三时间,第二时间早于多个第一时间中除第二时间之外的时间,即最早加入集群的第一节点的时间;第三时间晚于多个第一时间中除第三时间之外的时间,即最晚加入集群的第一节点的时间。
S305、根据第二时间和第三时间,以及每个第一节点的第一时间,得到每个第一节点的时间资源的评分;
具体来说,基于多种资源的容器集分配装置计算每个第一节点的时间资源的评分。确定第m个第一节点的时间资源的评分Scorem7时,计算公式为:
其中,Nodetimelmt为第m个第一节点的第一时间,Nodetimel2为第二时间,Nodetimel3为第三时间。
执行完S305之后,继续执行S306。
S306、获取容器集的业务类型;
具体来说,在实际生产中,不同类型的业务对各种类型的资源的侧重不同。因此,基于多种资源的容器集分配装置获取容器集的业务类型,业务类型是创建容器集时确定的,业务类型包括计算型业务、存储型业务和并发型业务。
S307、根据容器集的业务类型,从预存的多个第一权重集合中,确定容器集对应的第二权重集合;
具体来说,基于多种资源的容器集分配装置中预存有多个第一权重集合,每个第一权重集合分别对应一种业务类型,第一权重集合是指每种资源的权重构建成的向量集合。基于多种资源的容器集分配装置根据容器集的业务类型,从多个第一权重集合中确定该业务类型对应的第一权重集合,并将该第一权重集合确定为第二权重集合。例如,计算型业务侧重于中央处理器资源和内存资源,对应的第二权重集合再例如,存储型业务侧重于存储资源和磁盘读写资源,对应的第二权重集合
S308、根据第二权重集合,得到每种资源的权重;
具体来说,基于多种资源的容器集分配装置从第二权重集合中,得到每种资源的权重。
S309、根据预存的每种资源的权重,以及每个第一节点的每种资源的评分,分别得到每个第一节点的评分;
具体来说,基于多种资源的容器集分配装置将每种资源的权重,分别分配给每个第一节点对应的资源的评分,计算每个第一节点的评分。确定第m个第一节点的评分FinalScorem时,计算公式为:
其中,i为正整数,Weigthi为第i种资源的权重,Scoremi为第m个第一节点的第i种资源的评分,第i种资源为多种资源中的任意一种。为第m个第一节点的多种资源的评分构建成的向量集合,向量集合/>
现有技术中的容器集分配方法,同一批次创建了多少个容器集,便需要进行多少次的运算。例如,需要将a个容器集分配到b个第一节点,需要对每个第一节点的c种资源进行评分,则对应的复杂度为o(a×b×c)。本申请实施例提供一种基于多种资源的容器集分配方法,通过同时创建的多个容器集的业务类型彼此相同的特性,以及上述计算公式,将复杂度降低为o(b×c)。
S310、根据每个第一节点的评分,从多个第一节点中确定多个第二节点,以便于将创建的多个容器集,逐一分配到多个第二节点并进行绑定;
具体来说,同时创建多个容器集时,多个容器集的业务类型彼此相同。由于同时创建的容器集的功能同一性,以及对节点的互斥性,不会将两个容器集分配到同一个节点上。因此,基于多种资源的容器集分配装置根据多个第一节点的评分的排序结果,以及创建的容器集的数量,从排序靠前的多个第一节点中确定多个第二节点,第二节点的数量小于第一节点的数量,第二节点的数量等于多个容器集的数量。
将创建的多个容器集分配到多个第二节点的算法,可以是按容器集的创建顺序,将每个容器集逐一分配到每个第二节点,也可以是现有技术中的其他算法,本实施例不做限定。
本实施例提供的一种基于多种资源的容器集分配方法,分别对每个第一节点的多种资源进行评分,得到每个第一节点的每种资源的评分;根据预存的每种资源的权重,以及每个第一节点的每种资源的评分,分别得到每个第一节点的评分;并根据每个第一节点的评分,从多个第一节点中确定第二节点,以便于将创建的容器集分配到第二节点并进行绑定。实现了如下技术效果:通过对每个第一节点的中央处理器资源、内存资源、存储资源、网络带宽资源、磁盘读写资源和传输控制协议连接资源等多种资源进行评分,解决了某种类型的资源无法被充分利用的问题;通过对每个第一节点的时间资源进行评分,解决了无法维持集群中多个节点的动态平衡的问题;通过业务类型,以及预存的业务类型和权重的对应关系,对每个第一节点的每种资源的评分,分配不同的权重,以计算每个第一节点的评分,解决了某种类型的资源无法被充分利用的问题;通过同时创建的多个容器集的业务类型彼此相同的特性,将多个容器集逐一分配到多个第二节点只需要进行一次计算,解决了容器集分配过程中运算量大,且运算时间长的问题;根据每个第一节点的每种指标资源的总量和需求量,得到每个第一节点的每种指标资源的评分,并根据每个第一节点加入集群的时间,得到每个第一节点的时间资源的评分,解决了确定每个第一节点的每种资源的评分的问题。
本发明实施例可以根据上述方法示例对电子设备或主控设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图5为本申请实施例提供的基于多种资源的容器集分配装置的结构示意图。如图5所示,本申请实施例提供的基于多种资源的容器集分配装置400,包括:资源评分模块410、节点评分模块420和节点确定模块430;
资源评分模块410,用于分别对每个第一节点的多种资源进行评分,得到每个第一节点的每种资源的评分;
节点评分模块420,用于根据预存的每种资源的权重,以及每个第一节点的每种资源的评分,分别得到每个第一节点的评分;
节点确定模块430,用于根据每个第一节点的评分,从多个第一节点中确定第二节点,以便于将创建的容器集分配到第二节点并进行绑定,其中,第二节点的评分,大于多个第一节点中除第二节点之外的节点的评分。
在一种可能的设计中,多种资源包括:多种指标资源;
多种指标资源包括:中央处理器资源、内存资源、存储资源、网络带宽资源、磁盘读写资源和传输控制协议连接资源;
资源评分模块410,包括:指标资源获取模块和指标资源评分模块;
指标资源获取模块,用于获取每个第一节点的每种指标资源的总量和需求量;
指标资源评分模块,用于根据每个第一节点的每种指标资源的总量和需求量,得到每个第一节点的每种指标资源的评分,其中,指标资源的评分包括:中央处理器资源的评分、内存资源的评分、存储资源的评分、网络带宽资源的评分、磁盘读写资源的评分和传输控制协议连接资源的评分。
在一种可能的设计中,多种资源还包括:时间资源;
资源评分模块410,还包括:时间第一获取模块、时间第二获取模块和时间资源评分模块;
时间第一获取模块,用于获取每个第一节点的第一时间,第一时间为对应的第一节点加入集群的时间;
时间第二获取模块,用于从多个第一时间中确定第二时间和第三时间,其中,第二时间早于多个第一时间中除第二时间之外的时间,第三时间晚于多个第一时间中除第三时间之外的时间;
时间资源评分模块,用于根据第二时间和第三时间,以及每个第一节点的第一时间,得到每个第一节点的时间资源的评分。
在一种可能的设计中,确定第m个第一节点的第n种指标资源的评分Scoremn时,指标资源评分模块,具体用于运算:
其中,m和n均为正整数,第m个第一节点为多个第一节点中的任意一个,第n种指标资源为多种指标资源中的任意一种,Totalmn为第m个第一节点的第n种指标资源的总量,Requestmn为第m个第一节点的第n种指标资源的需求量,Score0为正数;
确定第m个第一节点的时间资源的评分Scorem7时,时间资源评分模块,具体用于运算:
其中,Nodetimelmt为第m个第一节点的第一时间,Nodetimel2为第二时间,Nodetimel3为第三时间。
在一种可能的设计中,确定第m个第一节点的评分FinalScorem时,节点评分模块420,具体用于运算:
其中,i为正整数,Weigthi为第i种资源的权重,Scoremi为第m个第一节点的第i种资源的评分,第i种资源为多种资源中的任意一种。
在一种可能的设计中,基于多种资源的容器集分配装置400,还包括:业务类型获取模块、权重第一确定模块和权重第二确定模块;
业务类型获取模块,用于获取容器集的业务类型,业务类型是创建容器集时确定的;
权重第一确定模块,用于根据容器集的业务类型,从预存的多个第一权重集合中,确定容器集对应的第二权重集合,其中,每个第一权重集合分别对应一种业务类型;
权重第二确定模块,用于根据第二权重集合,得到每种资源的权重。
在一种可能的设计中,同时创建多个容器集时,多个容器集的业务类型彼此相同;
节点确定模块430,用于根据每个第一节点的评分,从多个第一节点中确定多个第二节点,以便于将创建的多个容器集,逐一分配到多个第二节点并进行绑定,其中,第二节点的数量小于第一节点的数量,第二节点的数量等于多个容器集的数量。
本实施例提供的一种基于多种资源的容器集分配装置,可执行上述实施例的一种基于多种资源的容器集分配方法,其实现原理和技术效果类似,本实施例此处不再赘述。
在前述的一种基于多种资源的容器集分配方法的具体实现中,各模块可以被实现为处理器,处理器可以执行存储器中存储的计算机执行指令,使得处理器执行上述一种基于多种资源的容器集分配方法。
图6为本申请实施例提供的电子设备硬件的结构示意图。如图6所示,该电子设备500包括:至少一个处理器510和存储器520。该电子设备500还包括通信部件530。其中,处理器510、存储器520以及通信部件530通过总线540连接。
在具体实现过程中,至少一个处理器510执行存储器520存储的计算机执行指令,使得至少一个处理器510执行如上电子设备侧所执行的一种基于多种资源的容器集分配方法。
处理器510的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述实施例中,应理解,处理器可以是中央处理单元(英文:CentralProcessing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:DigitalSignal Processor,简称:DSP)、专用集成电路(英文:Application Specific IntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述针对电子设备以及主控设备所实现的功能,对本发明实施例提供的方案进行了介绍。可以理解的是,电子设备或主控设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的技术方案的范围。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,用于实现如上一种基于多种资源的容器集分配方法。
上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于电子设备或主控设备中。
本申请还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
至此,已经结合附图所示的优选实施方式描述了本申请的技术方案,但是,本领域技术人员容易理解的是,本申请的保护范围显然不局限于这些具体实施方式,以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种基于多种资源的容器集分配方法,其特征在于,所述方法包括:
分别对每个第一节点的多种资源进行评分,得到所述每个第一节点的每种资源的评分;
根据预存的每种资源的权重,以及所述每个第一节点的每种资源的评分,分别得到所述每个第一节点的评分;
根据所述每个第一节点的评分,从多个第一节点中确定第二节点,以便于将创建的容器集分配到所述第二节点并进行绑定,其中,所述第二节点的评分,大于所述多个第一节点中除所述第二节点之外的节点的评分。
2.根据权利要求1所述的方法,其特征在于,所述多种资源包括:多种指标资源;
所述多种指标资源包括:中央处理器资源、内存资源、存储资源、网络带宽资源、磁盘读写资源和传输控制协议连接资源;
所述分别对每个第一节点的多种资源进行评分,得到所述每个第一节点的每种资源的评分,包括:
获取所述每个第一节点的每种指标资源的总量和需求量;
根据所述每个第一节点的每种指标资源的总量和需求量,得到所述每个第一节点的每种指标资源的评分,其中,所述指标资源的评分包括:中央处理器资源的评分、内存资源的评分、存储资源的评分、网络带宽资源的评分、磁盘读写资源的评分和传输控制协议连接资源的评分。
3.根据权利要求2所述的方法,其特征在于,所述多种资源还包括:时间资源;
所述分别对每个第一节点的多种资源进行评分,得到所述每个第一节点的每种资源的评分,还包括:
获取所述每个第一节点的第一时间,所述第一时间为对应的第一节点加入集群的时间;
从多个第一时间中确定第二时间和第三时间,其中,所述第二时间早于所述多个第一时间中除所述第二时间之外的时间,所述第三时间晚于所述多个第一时间中除所述第三时间之外的时间;
根据所述第二时间和第三时间,以及所述每个第一节点的第一时间,得到所述每个第一节点的时间资源的评分。
4.根据权利要求3所述的方法,其特征在于,确定第m个第一节点的第n种指标资源的评分Scoremn时,所述根据所述每个第一节点的每种指标资源的总量和需求量,得到所述每个第一节点的每种指标资源的评分,具体包括:
其中,所述m和所述n均为正整数,所述第m个第一节点为所述多个第一节点中的任意一个,所述第n种指标资源为所述多种指标资源中的任意一种,所述Totalmn为所述第m个第一节点的第n种指标资源的总量,所述Requestmn为所述第m个第一节点的第n种指标资源的需求量,所述Score0为正数;
确定第m个第一节点的时间资源的评分Scorem7时,所述根据所述第二时间和第三时间,以及所述每个第一节点的第一时间,得到所述每个第一节点的时间资源的评分,具体包括:
其中,所述Nodetimelmt为第m个第一节点的第一时间,所述Nodetimel2为第二时间,所述Nodetimel3为第三时间。
5.根据权利要求4所述的方法,其特征在于,确定第m个第一节点的评分FinalScorem时,所述根据预存的每种资源的权重,以及所述每个第一节点的每种资源的评分,分别得到所述每个第一节点的评分,具体包括:
其中,所述i为正整数,所述Weigthi为第i种资源的权重,所述Scoremi为第m个第一节点的第i种资源的评分,所述第i种资源为所述多种资源中的任意一种。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据预存的每种资源的权重,以及所述每个第一节点的每种资源的评分,分别得到所述每个第一节点的评分之前,所述方法还包括:
获取所述容器集的业务类型,所述业务类型是创建所述容器集时确定的;
根据所述容器集的业务类型,从预存的多个第一权重集合中,确定所述容器集对应的第二权重集合,其中,每个第一权重集合分别对应一种业务类型;
根据所述第二权重集合,得到所述每种资源的权重。
7.根据权利要求6所述的方法,其特征在于,同时创建多个容器集时,所述多个容器集的业务类型彼此相同;
所述根据所述每个第一节点的评分,从多个第一节点中确定第二节点,包括:
根据所述每个第一节点的评分,从所述多个第一节点中确定多个第二节点,以便于将创建的多个容器集,逐一分配到多个第二节点并进行绑定,其中,所述第二节点的数量小于所述第一节点的数量,所述第二节点的数量等于所述多个容器集的数量。
8.一种基于多种资源的容器集分配装置,其特征在于,所述装置包括:
资源评分装置,用于分别对每个第一节点的多种资源进行评分,得到所述每个第一节点的每种资源的评分;
节点评分装置,用于根据预存的每种资源的权重,以及所述每个第一节点的每种资源的评分,分别得到所述每个第一节点的评分;
节点确定装置,用于根据所述每个第一节点的评分,从多个第一节点中确定第二节点,以便于将创建的容器集分配到所述第二节点并进行绑定,其中,所述第二节点的评分,大于所述多个第一节点中除所述第二节点之外的节点的评分。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,用于实现如权利要求1至7任一项所述的一种基于多种资源的容器集分配方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时,用于实现如权利要求1至7任一项所述的一种基于多种资源的容器集分配方法。
CN202311257421.8A 2023-09-26 2023-09-26 基于多种资源的容器集分配方法、装置、设备及存储介质 Pending CN117193947A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311257421.8A CN117193947A (zh) 2023-09-26 2023-09-26 基于多种资源的容器集分配方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311257421.8A CN117193947A (zh) 2023-09-26 2023-09-26 基于多种资源的容器集分配方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117193947A true CN117193947A (zh) 2023-12-08

Family

ID=88985003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311257421.8A Pending CN117193947A (zh) 2023-09-26 2023-09-26 基于多种资源的容器集分配方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117193947A (zh)

Similar Documents

Publication Publication Date Title
EP3761170B1 (en) Virtual machine creation method and apparatus
US11714671B2 (en) Creating virtual machine groups based on request
US7945913B2 (en) Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system
CN110908770A (zh) 虚拟机的运行及创建方法、虚拟机及虚拟机化管理平台
US10616134B1 (en) Prioritizing resource hosts for resource placement
EP3442201B1 (en) Cloud platform construction method and cloud platform
EP4187813A1 (en) Resource distribution method for cloud service and related device
CN117480494A (zh) 改进虚拟计算环境中资源分配的协调容器调度
CN111736957A (zh) 多类型业务的混合部署方法、装置、设备及存储介质
CN113674131A (zh) 硬件加速器设备管理方法、装置及电子设备和存储介质
CN106789421B (zh) 协同设计的方法和装置
KR20220025746A (ko) 컴퓨팅 자원의 동적 할당
CN116069493A (zh) 一种数据处理方法、装置、设备以及可读存储介质
CN113626173A (zh) 调度方法、装置及存储介质
CN107329798B (zh) 数据复制的方法、装置和虚拟化系统
CN116157778A (zh) 共享物理主机上混合集中分布式调度的系统和方法
CN114153549A (zh) 一种虚拟机创建方法及相关设备
CN112631994A (zh) 数据迁移方法及系统
US11080092B1 (en) Correlated volume placement in a distributed block storage service
CN116360994A (zh) 分布式异构资源池的调度方法、装置、服务器及存储介质
WO2020024207A1 (zh) 处理业务请求的方法、装置与存储系统
CN117193947A (zh) 基于多种资源的容器集分配方法、装置、设备及存储介质
CN115665231A (zh) 服务创建方法、装置以及计算机可读存储介质
CN109558214B (zh) 异构环境下宿主机资源管理方法、装置和存储介质
CN114281516A (zh) 一种基于numa属性的资源分配方法及装置

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