[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN117762605A - 容器组部署方法、装置、电子设备和介质 - Google Patents

容器组部署方法、装置、电子设备和介质 Download PDF

Info

Publication number
CN117762605A
CN117762605A CN202211148230.3A CN202211148230A CN117762605A CN 117762605 A CN117762605 A CN 117762605A CN 202211148230 A CN202211148230 A CN 202211148230A CN 117762605 A CN117762605 A CN 117762605A
Authority
CN
China
Prior art keywords
resource
computing node
resources
determining
created
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
CN202211148230.3A
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 Telecom Corp Ltd
Original Assignee
China Telecom Corp 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 Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202211148230.3A priority Critical patent/CN117762605A/zh
Publication of CN117762605A publication Critical patent/CN117762605A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本公开实施例提供了一种容器组部署方法、装置、电子设备和介质,涉及通信技术领域。该方法包括:确定集群中各个计算节点当前的资源状态信息和待创建Pod所需的资源量;根据当前的资源状态信息和待创建Pod所需的资源量,确定计算节点在未创建待创建容器组情况下的第一资源负载情况和计算节点在创建待创建容器组情况下的第二资源负载情况;根据第一资源负载情况和第二资源负载情况,确定计算节点的资源负载变化情况;根据各个计算节点的资源负载变化情况,从各个计算节点中确定部署待创建Pod的目标节点。该方法根据每个计算节点创建Pod前后的资源负载情况,确定创建Pod的目标节点,使得节点的选取更加合理有效,整个集群的负载更为均衡。

Description

容器组部署方法、装置、电子设备和介质
技术领域
本公开涉及通信技术领域,具体而言,涉及一种容器组部署方法、装置、电子设备和介质。
背景技术
Kubernetes是一个大规模容器集群管理系统,它对容器化的应用提供部署运行、资源调度、负载均衡、自动扩容等一系列功能,已成为云平台的主流。Kubernetes集群中包括主节点(Master)和分别与主节点通信连接的多个计算节点(Node)。主节点用于管理和控制多个计算节点。计算节点是工作负载节点,每个计算节点中部署有多个容器组(Pod)。Pod是Kubernetes集群上的最基本单元,用于存放一组容器及这些容器的共享资源。Node是Pod真正运行的主机,可以是物理机,也可以是虚拟机。Kubernetes的默认资源调度是按照各计算节点(Node)的资源使用情况和Pod创建时请求的资源量进行。提高Kubernetes集群的容器调度的效率对于云计算或者基于Kubernetes的超算中心的资源高效应用有很重要的意义。
Kubernetes在Node优选阶段仅根据计算节点CPU和内存的利用率来决定节点的分值,这只能保证单节点的资源利用率,无法保证集群资源的负载均衡,从而导致Kubernetes集群出现负载不均衡、资源利用率低等问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例提供一种容器组部署方法、装置、电子设备和计算机可读存储介质,根据每个计算节点创建Pod前后的资源负载情况,确定创建Pod的目标节点,使得节点的选取更加合理有效,整个集群的负载更为均衡。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种容器组部署方法,包括:
确定集群中各个计算节点当前的资源状态信息和待创建容器组所需的资源量;
针对每一所述计算节点,根据所述计算节点当前的资源状态信息和所述待创建容器组所需的资源量,确定所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况和所述计算节点在创建所述待创建容器组情况下的第二资源负载情况;
根据所述第一资源负载情况和所述第二资源负载情况,确定所述计算节点的资源负载变化情况;
根据所述各个计算节点的资源负载变化情况,从所述各个计算节点中确定部署所述待创建容器组的目标节点。
在本公开的一些实施例中,所述确定集群中各个计算节点当前的资源状态信息,包括:针对每一计算节点,确定所述计算节点当前的存量资源信息和可用资源信息,将所述存量资源信息和所述可用资源信息确定为所述计算节点当前的资源状态信息。
在本公开的一些实施例中,所述存量资源信息包括以下一种或多种类型的资源的总量:CPU资源、存储资源、GPU资源、网络资源和内存资源;所述可用资源信息包括以下一种或多种类型的资源的可用量:CPU资源、存储资源、GPU资源、网络资源和内存资源。
在本公开的一些实施例中,所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况根据如下过程确定:根据所述各个计算节点的当前的存量资源信息和可用资源信息,确定各个类型的资源的第一消耗比率;根据所述各个类型的资源的第一消耗比率,对所述计算节点各个类型的资源的总量进行合成统计,确定所述计算节点的资源的第一统计总量;以及,根据所述各个类型的资源的第一消耗比率,对所述计算节点各个类型的资源的可用量进行合成统计,确定所述计算节点的资源的第一统计可用量;根据所述第一统计总量和所述第一统计可用量,确定所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况。
在本公开的一些实施例中,所述根据所述各个类型的资源的第一消耗比率,对所述计算节点各个类型的资源的总量进行合成统计,确定所述计算节点的资源的第一统计总量包括:根据所述各个类型的资源的第一消耗比率,计算所述各个类型的资源的权重;根据所述各个类型的资源的权重,对所述计算节点各个类型的资源的总量进行加权求和计算,得到第一加权和;将所述第一加权和确定为所述计算节点的资源的第一统计总量;
所述根据所述各个类型的资源的第一消耗比率,对所述计算节点各个类型的资源的可用量进行合成统计,确定所述计算节点的资源的第一统计可用量,包括:根据所述各个类型的资源的权重,对所述计算节点各个类型的资源的可用量进行加权求和计算,得到第二加权和;将所述第二加权和确定为所述计算节点的资源的第一统计可用量。
在本公开的一些实施例中,所述根据所述第一统计总量和所述第一统计可用量,确定所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况,包括:根据所述第一统计总量和所述第一统计可用量,确定所述计算节点的可用资源占比;根据所述可用资源占比,确定所述计算节点的第一资源负载率,将所述第一资源负载率确定为所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况。
在本公开的一些实施例中,所述计算节点在创建所述待创建容器组情况下的第二资源负载情况根据如下过程确定:根据所述待创建容器组所需的资源量,确定所述计算节点在创建所述待创建容器组情况下的存量资源信息和可用资源信息;根据所述计算节点在创建所述待创建容器组情况下的存量资源信息和可用资源信息,确定所述各个类型的资源的第二消耗比率;根据所述各个类型的资源的第二消耗比率,对所述计算节点各个类型的资源的总量进行合成统计,确定所述计算节点的资源的第二统计总量;以及,根据所述各个类型的资源的第二消耗比率,对所述计算节点创建所述待创建容器组之后的各个类型的资源的可用量进行合成统计,确定所述计算节点的资源的第二统计可用量;根据所述第二统计总量和所述第二统计可用量,确定所述计算节点在创建所述待创建容器组情况下的第二资源负载情况。
在本公开的一些实施例中,所述第二资源负载情况为第二资源负载率;
所述根据所述第一资源负载情况和所述第二资源负载情况,确定所述计算节点的资源负载变化情况包括:根据所述各个节点的第一资源负载率,确定平均资源负载率;根据所述平均资源负载率和所述计算节点的第二资源负载率,确定所述计算节点的负载均方差,将所述负载均方差确定为所述计算节点的资源负载变化情况。
在本公开的一些实施例中,所述根据所述各个计算节点的资源负载变化情况,从所述各个计算节点中确定部署所述待创建容器组的目标节点,包括:确定所述各个计算节点中所述负载均方差最小的计算节点,将所述负载均方差最小的计算节点确定为部署所述待创建容器组的目标节点。
根据本公开的另一个方面,提供了一种容器组部署装置,包括:
信息采集模块,用于确定集群中各个计算节点当前的资源状态信息和待创建容器组所需的资源量;
负载确定模块,用于针对每一所述计算节点,根据所述计算节点当前的资源状态信息和所述待创建容器组所需的资源量,确定所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况和所述计算节点在创建所述待创建容器组情况下的第二资源负载情况;
计算模块,用于根据所述第一资源负载情况和所述第二资源负载情况,确定所述计算节点的资源负载变化情况;
节点筛选模块,用于根据所述各个计算节点的资源负载变化情况,从所述各个计算节点中确定部署所述待创建容器组的目标节点。
在本公开的一些实施例中,所述信息采集模块还用于:针对每一计算节点,确定所述计算节点当前的存量资源信息和可用资源信息,将所述存量资源信息和所述可用资源信息确定为所述计算节点当前的资源状态信息。
在本公开的一些实施例中,所述负载确定模块还用于:根据所述各个计算节点的当前的存量资源信息和可用资源信息,确定各个类型的资源的第一消耗比率;根据所述各个类型的资源的第一消耗比率,对所述计算节点各个类型的资源的总量进行合成统计,确定所述计算节点的资源的第一统计总量;以及,根据所述各个类型的资源的第一消耗比率,对所述计算节点各个类型的资源的可用量进行合成统计,确定所述计算节点的资源的第一统计可用量;根据所述第一统计总量和所述第一统计可用量,确定所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况。
在本公开的一些实施例中,所述负载确定模块还用于:根据所述各个类型的资源的第一消耗比率,计算所述各个类型的资源的权重;根据所述各个类型的资源的权重,对所述计算节点各个类型的资源的总量进行加权求和计算,得到第一加权和;将所述第一加权和确定为所述计算节点的资源的第一统计总量;根据所述各个类型的资源的权重,对所述计算节点各个类型的资源的可用量进行加权求和计算,得到第二加权和;将所述第二加权和确定为所述计算节点的资源的第一统计可用量。
在本公开的一些实施例中,所述负载确定模块还用于:根据所述第一统计总量和所述第一统计可用量,确定所述计算节点的可用资源占比;根据所述可用资源占比,确定所述计算节点的第一资源负载率,将所述第一资源负载率确定为所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况。
在本公开的一些实施例中,所述负载确定模块还用于:根据所述待创建容器组所需的资源量,确定所述计算节点在创建所述待创建容器组情况下的存量资源信息和可用资源信息;根据所述计算节点在创建所述待创建容器组情况下的存量资源信息和可用资源信息,确定所述各个类型的资源的第二消耗比率;根据所述各个类型的资源的第二消耗比率,对所述计算节点各个类型的资源的总量进行合成统计,确定所述计算节点的资源的第二统计总量;以及,根据所述各个类型的资源的第二消耗比率,对所述计算节点创建所述待创建容器组之后的各个类型的资源的可用量进行合成统计,确定所述计算节点的资源的第二统计可用量;根据所述第二统计总量和所述第二统计可用量,确定所述计算节点在创建所述待创建容器组情况下的第二资源负载情况。
在本公开的一些实施例中,所述第二资源负载情况为第二资源负载率;
所述计算模块还用于:根据所述各个节点的第一资源负载率,确定平均资源负载率;根据所述平均资源负载率和所述计算节点的第二资源负载率,确定所述计算节点的负载均方差,将所述负载均方差确定为所述计算节点的资源负载变化情况。
在本公开的一些实施例中,所述节点筛选模块还用于:确定所述各个计算节点中所述负载均方差最小的计算节点,将所述负载均方差最小的计算节点确定为部署所述待创建容器组的目标节点。
在本公开的一些实施例中,所述装置还包括存储模块,用于存储所述各个计算节点当前的资源状态信息。
根据本公开的又一个方面,提供一种电子设备,包括:一个或多个处理器;存储装置,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的方法。
根据本公开的又一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的方法。
本公开实施例提供的容器组部署方法,通过根据集群中每一计算节点当前的资源状态信息和待创建容器组所需的资源量,确定在未创建待创建容器组的情况下,各个计算节点的第一资源负载情况,以及各个计算节点在创建待创建容器组的情况下的第二资源负载情况;根据该第一资源负载情况和第二资源负载情况,确定各个计算节点的资源负载变化情况;根据各个计算节点的资源负载变化情况,从各个计算节点中确定部署待创建容器组的目标节点的技术方案,使得计算节点的选取更加合理有效,整个集群的负载更为均衡。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1示出了本公开实施例的容器组部署方法的流程示意图;
图2示出了本公开实施例的容器组部署方法的子流程示意图;
图3示出了本公开实施例的容器组部署方法的另一子流程示意图;
图4示出了本公开实施例的容器组部署装置的结构示意图;
图5示出了本公开实施例的容器组部署装置的另一结构示意图;
图6示出了本公开实施例中一种电子设备的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了本公开实施例的容器组部署方法的流程示意图,如图1所示,该方法包括:
步骤S110:确定集群中各个计算节点当前的资源状态信息和待创建容器组所需的资源量。
本实施例中的集群可以是Kubernetes集群。Kubernetes集群是一组运行容器化应用程序的节点,由一个主节点(Master)和若干个计算节点(Node)组成,这些节点可以是物理计算机或虚拟机。主节点控制集群的状态,例如哪些应用程序正在运行以及它们对应的容器映像,主节点是所有任务分配的来源。本发明实施例的容器组部署方法可以应用于主节点,由该主节点确定待创建容器组所需的资源量。计算节点是运行应用程序的组件,执行主节点分配的任务。每个计算节点中部署有多个容器组(Pod),Pod是Kubernetes集群上的最基本单元,用于存放一组容器及这些容器的共享资源,待创建容器组即为待创建Pod。
本实施例中,计算节点的资源可以包括以下一种或多种:CPU资源(也可以称为计算资源)、存储资源、GPU资源(Graphics Processing Unit,图形处理器)、网络资源和内存资源。
计算节点当前的资源状态信息可以包括该计算节点的存量资源信息和可用资源信息。其中,存量资源是指已用资源和可用资源的总和,即资源总量。
则,存量资源信息可以包括以下一种或多种类型的资源的总量:CPU资源、存储资源、GPU资源、网络资源和内存资源。可用资源信息可以包括以下一种或多种类型的资源的可用量:CPU资源、存储资源、GPU资源、网络资源和内存资源。
作为具体的示例,如下表1所示,该表1示出了Kubernetes集群中各计算节点(Node)的资源数据模型,该资源数据模型中包含了计算节点的存量资源信息以及可用资源信息:
表1:
其中,Node_ID表示计算节点的ID。
C表示CPU资源的总量,ΔV表示CPU资源的可用量,Vi表示计算节点在第i个物理主机或虚拟机中的CPU资源的总量,ΔVi表示计算节点的在第i个物理主机或虚拟机中的CPU资源的可用量。
S表示存储资源的总量,ΔS表示存储资源的可用量,Li表示计算节点在第i个物理主机或虚拟机中的存储资源的总量,ΔLi表示计算节点的在第i个物理主机或虚拟机中的存储资源的可用量,
U表示GPU资源的总量,ΔU表示GPU资源的可用量,Pi表示计算节点在第i个物理主机或虚拟机中的GPU资源的总量,ΔPi表示计算节点的在第i个物理主机或虚拟机中的GPU资源的可用量,
N表示网络资源的总量,ΔN表示网络资源的可用量,Di表示计算节点在第i个物理主机或虚拟机中的网络资源的总量,ΔDi表示计算节点的在第i个物理主机或虚拟机中的网络资源的可用量,
G表示内存资源的总量,ΔG表示内存资源的可用量,Wi表示计算节点在第i个物理主机或虚拟机中的内存资源的总量,ΔWi表示计算节点的在第i个物理主机或虚拟机中的内存资源的可用量。
待创建Pod所需的资源量可以包括以下一种或多种:CPU资源的资源量、存储资源的资源量、GPU资源的资源量、网络资源的资源量或内存资源的资源量。
步骤S120:针对每一计算节点,根据计算节点当前的资源状态信息和待创建容器组所需的资源量,确定计算节点在未创建待创建容器组情况下的第一资源负载情况和计算节点在创建待创建容器组情况下的第二资源负载情况。
在本步骤中,根据计算节点当前的资源状态信息,可以确定该计算节点在未创建待创建容器组的情况下的第一资源负载情况,即该计算节点创建待创建Pod之前的第一资源负载情况。根据计算节点当前的资源状态信息和待创建Pod所需的资源量,可以确定该计算节点在创建待创建容器组的情况下的第二资源负载情况,即该计算节点在创建待创建Pod之后的第二资源负载情况。其中,对于每一计算节点,可以假设将待创建Pod部署在该计算节点上,根据待创建Pod所需的资源量更新计算节点当前的资源状态信息,根据更新后的资源状态信息计算该计算节点的第二资源负载情况。
第一资源负载情况和第二资源负载情况可以包括以下一种或多种:CPU资源的负载情况、存储资源的负载情况、GPU资源的负载情况、网络资源的负载情况和内存资源的负载情况。
步骤S130:根据第一资源负载情况和第二资源负载情况,确定计算节点的资源负载变化情况。
本步骤中,计算节点的资源负载变化情况可以包括以下一种或多种:CPU资源的负载变化情况、存储资源的负载变化情况、GPU资源的负载变化情况、网络资源的负载变化情况和内存资源的负载变化情况。
步骤S140:根据各个计算节点的资源负载变化情况,从各个计算节点中确定部署待创建容器组的目标节点。
本步骤中,可以从所有计算节点中筛选出资源变化情况满足预设条件的计算节点,将满足预设条件的计算节点确定为待创建Pod的目标节点。
在本公开的一些实施例中,资源变化情况满足预设条件可以包括:CPU资源的负载变化情况、存储资源的负载变化情况、GPU资源的负载变化情况、网络资源的负载变化情况和内存资源的负载变化情况中的一种或多种满足预设条件。
在本公开的另一些实施例中,资源变化情况满足预设条件可以包括:根据预设的策略对CPU资源的负载变化情况、存储资源的负载变化情况、GPU资源的负载变化情况、网络资源的负载变化情况和内存资源的负载变化情况进行综合统计,然后判断统计后的结果是否满足预设条件。
本发明实施例的容器组部署方法,通过根据集群中每一计算节点当前的资源状态信息和待创建容器组所需的资源量,确定在未创建待创建容器组的情况下,各个计算节点的第一资源负载情况,以及各个计算节点在创建待创建容器组的情况下的第二资源负载情况;根据该第一资源负载情况和第二资源负载情况,确定各个计算节点的资源负载变化情况;根据各个计算节点的资源负载变化情况,从各个计算节点中确定部署待创建容器组的目标节点的技术方案,使得计算节点的选取更加合理有效,整个集群的负载更为均衡。
图2示出了本公开实施例的容器组部署方法的子流程示意图,如图2所示,在本公开的一些实施例中,计算节点在未创建待创建容器组的情况下的第一资源负载情况可以根据如下过程确定:
步骤S210:根据各个计算节点的当前的存量资源信息和可用资源信息,确定各个类型的资源的第一消耗比率。
本步骤中,根据各个计算节点当前的存量资源信息和可用资源信息,可以确定集群当前的已用资源信息,根据该已用资源信息和所有计算节点的存量资源信息,确定各个类型的资源的第一消耗比率,即各个类型的资源的第一消耗比率等于该类资源的使用量与该类资源的总量的比值。具体的,可以根据下式确定各个类型的资源的第一消耗比率:
其中,n表示集群中计算节点的数量,α1表示CPU资源的第一消耗比率,α2表示存储资源的第一消耗比率,α3表示GPU资源的第一消耗比率,α4表示网络资源的第一消耗比率,α5表示内存资源的第一消耗比率。
步骤S220:根据各个类型的资源的第一消耗比率,对计算节点各个类型的资源的总量进行合成统计,确定计算节点的资源的第一统计总量。
在本步骤中,可以根据各个类型的资源的第一消耗比率,确定各个类型的资源的第一权重,根据各个类型的资源的第一权重,对每个计算节点的各类型资源的总量进行合成统计。其中,各个类型的资源的第一权重可以根据下式确定:
其中,β1表示CPU资源的第一权重,β2表示存储资源的第一权重,β3表示GPU资源的第一权重,β4表示网络资源的第一权重,β5表示内存资源的第一权重。
鉴于资源状态信息中的资源具有不同的类型、量纲、数据单位或者数量级,为了方便不同类型的资源相互之间能够进行比较,在计算得到各个类型的资源的第一权重之后,可以对该计算节点各个类型的资源的总量进行加权求和计算,得到第一加权和;将第一加权和确定为计算节点的资源的第一统计总量,如下式所示:
Rj=β1×Gj2×Sj3×Uj4×Nj5×Gj
其中,Rj表示第j个计算节点的资源的第一统计总量。
步骤S230:根据各个类型的资源的第一消耗比率,对计算节点各个类型的资源的可用量进行合成统计,确定计算节点的资源的第一统计可用量。
同样地,计算节点的资源的第一统计可用量可以根据如下过程确定:根据各个类型的资源的第一权重,对计算节点各个类型的资源的可用量进行加权求和计算,得到第二加权和;将第二加权和确定为计算节点的资源的第一统计可用量。如下式所示:
ΔRj=β1×ΔCj2×ΔSj3×ΔUj4×ΔNj5×ΔGj
ΔRj表示第j个计算节点的资源的第一统计可用量。
步骤S240:根据第一统计总量和第一统计可用量,确定计算节点在未创建待创建容器组的情况下的第一资源负载情况。
在本公开的一些实施例中,该步骤S240可以包括:
根据第一统计总量和第一统计可用量,确定计算节点的可用资源占比;
根据可用资源占比,确定计算节点的第一资源负载率,将第一资源负载率确定为计算节点在未创建待创建容器组情况下的第一资源负载情况。
其中,可以根据下式确定计算节点的可用资源占比:
IRj表示第j个计算节点的可用资源占比。
根据下式确定计算节点的第一资源负载率:
LRj表示第j个计算节点的第一资源负载率。
图3示出了本公开实施例的容器组部署方法的另一子流程示意图,如图3所示,在本公开的一些实施例中,计算节点创建待创建容器组之后的第二资源负载情况根据如下过程确定:
步骤S310:根据待创建容器组所需的资源量,确定计算节点在创建待创建容器组的情况下的存量资源信息和可用资源信息。
步骤S320:根据计算节点载创建待创建容器组的情况下的存量资源信息和可用资源信息,确定各个类型的资源的第二消耗比率。
步骤S330:根据各个类型的资源的第二消耗比率,对计算节点各个类型的资源的总量进行合成统计,确定计算节点的资源的第二统计总量。
步骤S340:根据各个类型的资源的第二消耗比率,对计算节点在创建待创建容器组的情况下的各个类型的资源的可用量进行合成统计,确定计算节点的资源的第二统计可用量。
步骤S350:根据第二统计总量和第二统计可用量,确定计算节点创建待创建容器组之后的第二资源负载情况,第二资源负载情况为第二资源负载率。
其中,确定计算节点的第二资源负载情况的过程与确定计算节点的第一资源负载情况的过程相同,本公开在此不再赘述。
在本公开的一些实施例中,根据第一资源负载情况和第二资源负载情况,确定计算节点的资源负载变化情况包括:
根据各个节点的第一资源负载率,确定平均资源负载率。具体的,可以根据下式确定平均资源负载率:
表示平均资源负载率。
根据平均资源负载率和计算节点的第二资源负载率,确定计算节点的负载均方差,将负载均方差确定为计算节点的资源负载变化情况。具体的,可以根据下式确定负载均方差:
其中,SDj表示第j个计算节点的负载均方差。
在本公开的一些实施例中,根据各个计算节点的资源负载变化情况,从各个计算节点中确定部署待创建容器组的目标节点,包括:
确定各个计算节点中负载均方差最小的计算节点,将负载均方差最小的计算节点确定为部署待创建容器组的目标节点。
本公开实施例的容器组部署方法,通过根据集群中每一计算节点当前的资源状态信息和待创建容器组所需的资源量,确定在未创建待创建容器组的情况下,各个计算节点的第一资源负载情况,以及各个计算节点在创建待创建容器组的情况下的第二资源负载情况;根据该第一资源负载情况和第二资源负载情况,确定各个计算节点的资源负载变化情况;根据各个计算节点的资源负载变化情况,从各个计算节点中确定部署待创建容器组的目标节点的技术方案,使得计算节点的选取更加合理有效,整个集群的负载更为均衡。
图4示意性示出了本公开实施例的容器组部署装置400的结构示意图,如图4所示,该容器组部署装置400包括:
信息采集模块410,用于确定集群中各个计算节点当前的资源状态信息和待创建容器组所需的资源量;
负载确定模块420,用于针对每一所述计算节点,根据所述计算节点当前的资源状态信息和所述待创建容器组所需的资源量,确定所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况和所述计算节点在创建所述待创建容器组情况下的第二资源负载情况;
计算模块430,用于根据所述第一资源负载情况和所述第二资源负载情况,确定所述计算节点的资源负载变化情况;
节点筛选模块440,用于根据所述各个计算节点的资源负载变化情况,从所述各个计算节点中确定部署所述待创建容器组的目标节点。
在本公开的一些实施例中,该信息采集模块还用于:针对每一计算节点,确定计算节点当前的存量资源信息和可用资源信息,将存量资源信息和可用资源信息确定为计算节点当前的资源状态信息。
在本公开的一些实施例中,该负载确定模块还用于:根据所述各个计算节点的当前的存量资源信息和可用资源信息,确定各个类型的资源的第一消耗比率;根据所述各个类型的资源的第一消耗比率,对所述计算节点各个类型的资源的总量进行合成统计,确定所述计算节点的资源的第一统计总量;以及,根据所述各个类型的资源的第一消耗比率,对所述计算节点各个类型的资源的可用量进行合成统计,确定所述计算节点的资源的第一统计可用量;根据所述第一统计总量和所述第一统计可用量,确定所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况。
在本公开的一些实施例中,该负载确定模块还用于:根据所述各个类型的资源的第一消耗比率,计算所述各个类型的资源的权重;根据所述各个类型的资源的权重,对所述计算节点各个类型的资源的总量进行加权求和计算,得到第一加权和;将所述第一加权和确定为所述计算节点的资源的第一统计总量;根据所述各个类型的资源的权重,对所述计算节点各个类型的资源的可用量进行加权求和计算,得到第二加权和;将所述第二加权和确定为所述计算节点的资源的第一统计可用量。
在本公开的一些实施例中,该负载确定模块还用于:根据所述第一统计总量和所述第一统计可用量,确定所述计算节点的可用资源占比;根据所述可用资源占比,确定所述计算节点的第一资源负载率,将所述第一资源负载率确定为所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况。
在本公开的一些实施例中,该负载确定模块还用于:根据所述待创建容器组所需的资源量,确定所述计算节点在创建所述待创建容器组情况下的存量资源信息和可用资源信息;根据所述计算节点在创建所述待创建容器组情况下的存量资源信息和可用资源信息,确定所述各个类型的资源的第二消耗比率;根据所述各个类型的资源的第二消耗比率,对所述计算节点各个类型的资源的总量进行合成统计,确定所述计算节点的资源的第二统计总量;以及,根据所述各个类型的资源的第二消耗比率,对所述计算节点创建所述待创建容器组之后的各个类型的资源的可用量进行合成统计,确定所述计算节点的资源的第二统计可用量;根据所述第二统计总量和所述第二统计可用量,确定所述计算节点在创建所述待创建容器组情况下的第二资源负载情况。
在本公开的一些实施例中,第二资源负载情况为第二资源负载率;
该计算模块还用于:根据各个节点的第一资源负载率,确定平均资源负载率;根据平均资源负载率和计算节点的第二资源负载率,确定计算节点的负载均方差,将负载均方差确定为计算节点的资源负载变化情况。
在本公开的一些实施例中,该节点筛选模块还用于:确定各个计算节点中负载均方差最小的计算节点,将负载均方差最小的计算节点确定为部署待创建容器组的目标节点。
上述装置可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
图5示出了本公开另一实施例的容器组部署装置500的结构示意图。如图5所示,该容器组部署装置500可以应用于主节点,该容器组部署装置500包括:
信息采集模块510,用于确定集群中各个计算节点当前的资源状态信息和待创建容器组所需的资源量;
存储模块520,用于存储各个计算节点当前的资源状态信息;
负载确定模块530,用于针对每一所述计算节点,根据所述计算节点当前的资源状态信息和所述待创建容器组所需的资源量,确定所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况和所述计算节点在创建所述待创建容器组情况下的第二资源负载情况;
计算模块540,用于根据所述第一资源负载情况和所述第二资源负载情况,确定所述计算节点的资源负载变化情况;
节点筛选模块550,用于根据所述各个计算节点的资源负载变化情况,从所述各个计算节点中确定部署所述待创建容器组的目标节点。
在本公开实施例中,主节点上还部署有以下功能模块:
API Server:Kubernetes集群既有的模块,为Kubernetes集群资源操作提供唯一入口,并提供认证、授权、访问控制、API注册和发现机制;
etcd:Kubernetes集群既有的模块,保存Kubernetes所有集群数据的后台数据库(例如Pod的数量、状态、命名空间等)、API对象和服务发现细节;
Control manager:Kubernetes集群既有的模块,运行多种不同的控制器进程,负责集群内Node、Namespace、Service、Token、Replication等资源对象的管理;
Scheduler:Kubernetes集群既有的模块,负责节点资源管理,接收来自kube-apiserver创建Pods的任务,收到任务后它会检索出所有符合该Pod要求的Node节点。
由图5可知,本公开实施例的容器组部署装置没有修改现有Kubernetes集群中既有模块的功能和运作,而是增加新的功能模块来实现本公开的目的,在Kubernetes集群的优选过程中无需人工进行参数和权重的调整和配置,而是自动化、动态地筛选部署待创建Pod的目标节点。
图6示出了本公开实施例中一种电子设备的结构框图。下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)621和/或高速缓存存储单元622,还可以进一步包括只读存储单元(ROM)623。
存储单元620还可以包括具有一组(至少一个)程序模块625的程序/实用工具624,这样的程序模块625包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备670(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
根据本发明实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (13)

1.一种容器组部署方法,其特征在于,包括:
确定集群中各个计算节点当前的资源状态信息和待创建容器组所需的资源量;
针对每一所述计算节点,根据所述计算节点当前的资源状态信息和所述待创建容器组所需的资源量,确定所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况和所述计算节点在创建所述待创建容器组情况下的第二资源负载情况;
根据所述第一资源负载情况和所述第二资源负载情况,确定所述计算节点的资源负载变化情况;
根据所述各个计算节点的资源负载变化情况,从所述各个计算节点中确定部署所述待创建容器组的目标节点。
2.根据权利要求1所述的方法,其特征在于,所述确定集群中各个计算节点当前的资源状态信息,包括:
针对每一计算节点,确定所述计算节点当前的存量资源信息和可用资源信息,将所述存量资源信息和所述可用资源信息确定为所述计算节点当前的资源状态信息。
3.根据权利要求2所述的方法,其特征在于,所述存量资源信息包括以下一种或多种类型的资源的总量:CPU资源、存储资源、GPU资源、网络资源和内存资源;
所述可用资源信息包括以下一种或多种类型的资源的可用量:CPU资源、存储资源、GPU资源、网络资源和内存资源。
4.根据权利要求3所述的方法,其特征在于,所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况根据如下过程确定:
根据所述各个计算节点的当前的存量资源信息和可用资源信息,确定各个类型的资源的第一消耗比率;
根据所述各个类型的资源的第一消耗比率,对所述计算节点各个类型的资源的总量进行合成统计,确定所述计算节点的资源的第一统计总量;以及,根据所述各个类型的资源的第一消耗比率,对所述计算节点各个类型的资源的可用量进行合成统计,确定所述计算节点的资源的第一统计可用量;
根据所述第一统计总量和所述第一统计可用量,确定所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况。
5.根据权利要求4所述的方法,其特征在于,所述根据所述各个类型的资源的第一消耗比率,对所述计算节点各个类型的资源的总量进行合成统计,确定所述计算节点的资源的第一统计总量包括:
根据所述各个类型的资源的第一消耗比率,计算所述各个类型的资源的权重;
根据所述各个类型的资源的权重,对所述计算节点各个类型的资源的总量进行加权求和计算,得到第一加权和;
将所述第一加权和确定为所述计算节点的资源的第一统计总量;
所述根据所述各个类型的资源的第一消耗比率,对所述计算节点各个类型的资源的可用量进行合成统计,确定所述计算节点的资源的第一统计可用量,包括:
根据所述各个类型的资源的权重,对所述计算节点各个类型的资源的可用量进行加权求和计算,得到第二加权和;
将所述第二加权和确定为所述计算节点的资源的第一统计可用量。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一统计总量和所述第一统计可用量,确定所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况,包括:
根据所述第一统计总量和所述第一统计可用量,确定所述计算节点的可用资源占比;
根据所述可用资源占比,确定所述计算节点的第一资源负载率,将所述第一资源负载率确定为所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况。
7.根据权利要求6所述的方法,其特征在于,所述计算节点在创建所述待创建容器组情况下的第二资源负载情况根据如下过程确定:
根据所述待创建容器组所需的资源量,确定所述计算节点在创建所述待创建容器组情况下的存量资源信息和可用资源信息;
根据所述计算节点在创建所述待创建容器组情况下的存量资源信息和可用资源信息,确定所述各个类型的资源的第二消耗比率;
根据所述各个类型的资源的第二消耗比率,对所述计算节点各个类型的资源的总量进行合成统计,确定所述计算节点的资源的第二统计总量;以及,根据所述各个类型的资源的第二消耗比率,对所述计算节点创建所述待创建容器组之后的各个类型的资源的可用量进行合成统计,确定所述计算节点的资源的第二统计可用量;
根据所述第二统计总量和所述第二统计可用量,确定所述计算节点在创建所述待创建容器组情况下的第二资源负载情况。
8.根据权利要求7所述的方法,其特征在于,所述第二资源负载情况为第二资源负载率;
所述根据所述第一资源负载情况和所述第二资源负载情况,确定所述计算节点的资源负载变化情况包括:
根据所述各个节点的第一资源负载率,确定平均资源负载率;
根据所述平均资源负载率和所述计算节点的第二资源负载率,确定所述计算节点的负载均方差,将所述负载均方差确定为所述计算节点的资源负载变化情况。
9.根据权利要求8所述的方法,其特征在于,所述根据所述各个计算节点的资源负载变化情况,从所述各个计算节点中确定部署所述待创建容器组的目标节点,包括:
确定所述各个计算节点中所述负载均方差最小的计算节点,将所述负载均方差最小的计算节点确定为部署所述待创建容器组的目标节点。
10.一种容器组部署装置,其特征在于,包括:
信息采集模块,用于确定集群中各个计算节点当前的资源状态信息和待创建容器组所需的资源量;
负载确定模块,用于针对每一所述计算节点,根据所述计算节点当前的资源状态信息和所述待创建容器组所需的资源量,确定所述计算节点在未创建所述待创建容器组情况下的第一资源负载情况和所述计算节点在创建所述待创建容器组情况下的第二资源负载情况;
计算模块,用于根据所述第一资源负载情况和所述第二资源负载情况,确定所述计算节点的资源负载变化情况;
节点筛选模块,用于根据所述各个计算节点的资源负载变化情况,从所述各个计算节点中确定部署所述待创建容器组的目标节点。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括存储模块,用于存储所述各个计算节点当前的资源状态信息。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至9中任一项所述的方法。
13.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的方法。
CN202211148230.3A 2022-09-19 2022-09-19 容器组部署方法、装置、电子设备和介质 Pending CN117762605A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211148230.3A CN117762605A (zh) 2022-09-19 2022-09-19 容器组部署方法、装置、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211148230.3A CN117762605A (zh) 2022-09-19 2022-09-19 容器组部署方法、装置、电子设备和介质

Publications (1)

Publication Number Publication Date
CN117762605A true CN117762605A (zh) 2024-03-26

Family

ID=90320653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211148230.3A Pending CN117762605A (zh) 2022-09-19 2022-09-19 容器组部署方法、装置、电子设备和介质

Country Status (1)

Country Link
CN (1) CN117762605A (zh)

Similar Documents

Publication Publication Date Title
CN111966500B (zh) 资源调度方法、装置、电子设备及存储介质
US10733026B2 (en) Automated workflow selection
CN107743611B (zh) 优化动态资源分配的系统、方法和计算机存储介质
US8108855B2 (en) Method and apparatus for deploying a set of virtual software resource templates to a set of nodes
US7945913B2 (en) Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system
US9021477B2 (en) Method for improving the performance of high performance computing applications on Cloud using integrated load balancing
CN101512488B (zh) 在虚拟机环境中提供硬件虚拟化的系统和方法
US20070180453A1 (en) On demand application scheduling in a heterogeneous workload environment
CN104050042B (zh) Etl作业的资源分配方法及装置
US20040177244A1 (en) System and method for dynamic resource reconfiguration using a dependency graph
US8473427B2 (en) Block allocation times in a computer system
US20040177245A1 (en) Automated resource management using perceptron prediction
US11502972B2 (en) Capacity optimization in an automated resource-exchange system
JP2004288183A (ja) コンピューティングリソースを自動的に割り振る方法
CN104050043A (zh) 基于共享缓存感知的虚拟机调度方法和装置
CN112862098B (zh) 一种集群训练任务处理的方法及系统
CN111666158A (zh) 一种基于Kubernetes的容器调度方法、装置、存储介质及电子设备
CN111796933A (zh) 资源调度方法、装置、存储介质和电子设备
US8819239B2 (en) Distributed resource management systems and methods for resource management thereof
CN114237894A (zh) 容器调度方法、装置、设备以及可读存储介质
CN117762605A (zh) 容器组部署方法、装置、电子设备和介质
CN112925640B (zh) 一种集群训练节点分配方法、电子设备
CN114942830A (zh) 容器调度方法、容器调度装置、存储介质和电子设备
CN112019628A (zh) 一种基于物联网的低延迟低能耗的智慧平台系统
Lv et al. GABB: the plan-based job scheduling optimized by genetic algorithm for HPC systems with shared burst buffers

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