CN114995957A - 容器组部署方法、装置、电子设备及计算机可读存储介质 - Google Patents
容器组部署方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114995957A CN114995957A CN202210721869.XA CN202210721869A CN114995957A CN 114995957 A CN114995957 A CN 114995957A CN 202210721869 A CN202210721869 A CN 202210721869A CN 114995957 A CN114995957 A CN 114995957A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- container group
- deployed
- flow
- machine
- 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
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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开实施例提供了一种容器组部署方法、装置、电子设备及计算机可读存储介质,涉及云计算技术领域。获取当前Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量以及每一虚拟机与每一物理机之间的第二真实流量;确定第一虚拟机中与待部署容器组的业务类型相同的容器组,作为第一容器组;得到待部署容器组与每一虚拟机之间的第一预测流量;得到在该第一虚拟机中部署待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量;基于第二预测流量,从各第一虚拟机中确定出用于部署待部署容器组的目标虚拟机,能够降低集群的流量成本。
Description
技术领域
本公开涉及云计算技术领域,特别是涉及一种容器组部署方法、装置、电子设备及计算机可读存储介质。
背景技术
K8s(Kubernetes)集群用于管理云平台中多个主机上的容器。Kubernetes集群中至少包括多个节点,例如,可以包括一个主节点(Master Node)和多个工作节点(WorkerNodes)。Kubernetes集群中的节点可以是虚拟机(VM,Virtual Machine)或者物理机(PM,Physical Machine)。容器组(Pod)是Kubernetes集群中最小的调度单元,可以部署在节点中,容器组与容器组之间可以进行通信。
相关技术中,当需要部署容器组时,调度器(Kube-Scheduler)可以确定当前各虚拟机的资源剩余量,进而,可以确定出当前的资源剩余量最大的虚拟机,并将容器组部署至该虚拟机中。例如,在云数据中心中,可以将云原生网元以微服务的形式部署在虚拟机中,得到对应的微服务容器组。
在Kubernetes集群的运行过程中各容器组之间需要进行通信,相应的,容器组与虚拟机之间,虚拟机与物理机之间,以及容器组与物理机之间均会产生流量。然而,相关技术中,在部署容器组时,仅考虑了各虚拟机当前的资源剩余量,并未考虑Kubernetes集群中产生的上述流量。基于上述处理,会将容器组部署至目标虚拟机中,在Kubernetes集群运行过程中,该容器组可能需要与目标虚拟机所属物理机以外的其他物理机中的容器组进行大量的数据通信,进而,会导致Kubernetes集群的流量成本较大。
发明内容
本公开实施例的目的在于提供一种容器组部署方法、装置、电子设备及计算机可读存储介质,能够降低集群的流量成本。具体技术方案如下:
本公开实施例的第一方面,首先提供了一种容器组部署方法,所述方法应用于Kubernetes集群中的管理节点,所述方法包括:
获取当前所述Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量,以及当前所述Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量;
针对当前所述Kubernetes集群中的每一第一虚拟机,确定该第一虚拟机中与待部署容器组的业务类型相同的容器组,作为第一容器组;
基于当前所述第一容器组与每一虚拟机之间的真实流量进行预测,得到所述待部署容器组与每一虚拟机之间的第一预测流量;
基于当前所述Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、所述待部署容器组与每一虚拟机之间的第一预测流量,以及当前所述Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量进行预测,得到在该第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量;
基于在各第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出用于部署所述待部署容器组的目标虚拟机;其中,所述目标虚拟机所属的物理机与所述待部署容器组之间的第二预测流量大于预设流量阈值。
在一些实施例中,在所述基于在各第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出用于部署所述待部署容器组的目标虚拟机之前,所述方法还包括:
确定所述待部署容器组对应的需求资源配比;其中,所述需求资源配比表示:所述待部署容器组所需的存储资源与计算资源的第一权重的比值;
所述基于在各第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出用于部署所述待部署容器组的目标虚拟机,包括:
基于在各第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出所属的物理机与所述待部署容器组之间的第二预测流量大于预设流量阈值的虚拟机,作为第二虚拟机;
获取每一第二虚拟机对应的提供资源配比;其中,所述提供资源配比表示:该第二虚拟机所提供的存储资源与计算资源的第二权重的比值;
从各第二虚拟机中,选择对应的提供资源配比与所述需求资源配比一致的虚拟机,作为第三虚拟机;
基于所述第三虚拟机,确定用于部署所述待部署容器组的目标虚拟机。
在一些实施例中,所述基于所述第三虚拟机,确定用于部署所述待部署容器组的目标虚拟机,包括:
根据每一第三虚拟机当前剩余的存储资源的大小、剩余的计算资源的大小,以及所述待部署容器组所需的存储资源的大小、计算资源的大小,从各第三虚拟机中确定允许部署所述待部署容器组的虚拟机,作为第四虚拟机;
基于所述第四虚拟机,确定用于部署所述待部署容器组的目标虚拟机。
在一些实施例中,所述基于所述第四虚拟机,确定用于部署所述待部署容器组的目标虚拟机,包括:
针对每一第四虚拟机,基于所述第一权重,计算该第四虚拟机当前剩余的存储资源的大小与剩余的计算资源的大小的加权和;
将加权和最大的第四虚拟机,确定为用于部署所述待部署容器组的目标虚拟机。
在一些实施例中,所述基于当前所述Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、所述待部署容器组与每一虚拟机之间的第一预测流量,以及当前所述Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量进行预测,得到在该第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,包括:
将当前所述Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、所述待部署容器组与每一虚拟机之间的第一预测流量,以及当前所述Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量,输入至预先训练的预测模型,得到在该第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量;其中,所述预测模型为:基于所述Kubernetes集群中每一容器组与每一虚拟机之间的第三真实流量、每一虚拟机与每一物理机之间的第四真实流量,以及每一容器组与每一物理机之间的第五真实流量进行训练得到的。
在一些实施例中,所述预测模型的训练过程包括以下步骤:
将样本时刻所述Kubernetes集群中每一容器组与每一虚拟机之间的第三真实流量,以及每一虚拟机与每一物理机之间的第四真实流量,输入至初始结构的卷积神经网络模型,得到所述样本时刻每一容器组与每一物理机之间的第三预测流量;
基于所述样本时刻每一容器组与每一物理机之间的第五真实流量,与所述样本时刻每一容器组与每一物理机之间的第三预测流量之间的差异,计算损失值;
基于所述损失值对初始结构的卷积神经网络模型的模型参数进行调整,直至收敛,得到所述预测模型。
在一些实施例中,所述方法还包括:
在所述目标虚拟机中,部署所述待部署容器组。
本公开实施例的第二方面,提供了一种容器组部署装置,所述装置应用于Kubernetes集群中的管理节点,所述装置包括:
真实流量获取模块,获取当前所述Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量,以及当前所述Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量;
第一容器组确定模块,用于针对当前所述Kubernetes集群中的每一第一虚拟机,确定该第一虚拟机中与待部署容器组的业务类型相同的容器组,作为第一容器组;
第一预测流量获取模块,用于基于当前所述第一容器组与每一虚拟机之间的真实流量进行预测,得到所述待部署容器组与每一虚拟机之间的第一预测流量;
第二预测流量获取模块,用于基于当前所述Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、所述待部署容器组与每一虚拟机之间的第一预测流量,以及当前所述Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量进行预测,得到在该第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量;
目标虚拟机确定模块,用于基于在各第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出用于部署所述待部署容器组的目标虚拟机;其中,所述目标虚拟机所属的物理机与所述待部署容器组之间的第二预测流量大于预设流量阈值。
在一些实施例中,所述装置还包括:
第一资源配比确定模块,用于在所述基于在各第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出用于部署所述待部署容器组的目标虚拟机之前,确定所述待部署容器组对应的需求资源配比;其中,所述需求资源配比表示:所述待部署容器组所需的存储资源与计算资源的第一权重的比值;
所述目标虚拟机确定模块,包括:
第一虚拟机确定子模块,用于基于在各第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出所属的物理机与所述待部署容器组之间的第二预测流量大于预设流量阈值的虚拟机,作为第二虚拟机;
资源配比获取子模块,用于获取每一第二虚拟机对应的提供资源配比;其中,所述提供资源配比表示:该第二虚拟机所提供的存储资源与计算资源的第二权重的比值;
第二虚拟机确定子模块,用于从各第二虚拟机中,选择对应的提供资源配比与所述需求资源配比一致的虚拟机,作为第三虚拟机;
目标虚拟机确定子模块,用于基于所述第三虚拟机,确定用于部署所述待部署容器组的目标虚拟机。
在一些实施例中,所述目标虚拟机确定子模块,包括:
虚拟机确定单元,用于根据每一第三虚拟机当前剩余的存储资源的大小、剩余的计算资源的大小,以及所述待部署容器组所需的存储资源的大小、计算资源的大小,从各第三虚拟机中确定允许部署所述待部署容器组的虚拟机,作为第四虚拟机;
目标虚拟机确定单元,用于基于所述第四虚拟机,确定用于部署所述待部署容器组的目标虚拟机。
在一些实施例中,所述目标虚拟机确定单元,具体用于:
针对每一第四虚拟机,基于所述第一权重,计算该第四虚拟机当前剩余的存储资源的大小与剩余的计算资源的大小的加权和;
将加权和最大的第四虚拟机,确定为用于部署所述待部署容器组的目标虚拟机。
在一些实施例中,所述第二预测流量获取模块,具体用于:
将当前所述Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、所述待部署容器组与每一虚拟机之间的第一预测流量,以及当前所述Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量,输入至预先训练的预测模型,得到在该第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量;其中,所述预测模型为:基于所述Kubernetes集群中每一容器组与每一虚拟机之间的第三真实流量、每一虚拟机与每一物理机之间的第四真实流量,以及每一容器组与每一物理机之间的第五真实流量进行训练得到的。
在一些实施例中,所述装置还包括:
预测模型训练模块,用于将样本时刻所述Kubernetes集群中每一容器组与每一虚拟机之间的第三真实流量,以及每一虚拟机与每一物理机之间的第四真实流量,输入至初始结构的卷积神经网络模型,得到所述样本时刻每一容器组与每一物理机之间的第三预测流量;
基于所述样本时刻每一容器组与每一物理机之间的第五真实流量,与所述样本时刻每一容器组与每一物理机之间的第三预测流量之间的差异,计算损失值;
基于所述损失值对初始结构的卷积神经网络模型的模型参数进行调整,直至收敛,得到所述预测模型。
在一些实施例中,所述装置还包括:
部署模块,用于在所述目标虚拟机中,部署所述待部署容器组。
本公开实施例的第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的容器组部署方法步骤。
本公开实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的容器组部署方法步骤。
本公开实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的容器组部署方法。
本公开实施例提供的容器组部署方法,可以应用于Kubernetes集群中的管理节点,可以获取当前Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量,以及当前Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量;针对当前Kubernetes集群中的每一第一虚拟机,确定该第一虚拟机中与待部署容器组的业务类型相同的容器组,作为第一容器组;基于当前第一容器组与每一虚拟机之间的真实流量进行预测,得到待部署容器组与每一虚拟机之间的第一预测流量;基于当前Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、待部署容器组与每一虚拟机之间的第一预测流量,以及当前Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量进行预测,得到在该第一虚拟机中部署待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量;基于在各第一虚拟机中部署待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出用于部署待部署容器组的目标虚拟机;其中,目标虚拟机所属的物理机与待部署容器组之间的第二预测流量大于预设流量阈值。
本公开实施例提供的容器组部署方法,能够预测在各第一虚拟机中部署待部署容器组后,该待部署容器组与各物理机之间的第二预测流量。目标虚拟机所属的物理机与待部署容器组之间的第二预测流量大于预设流量阈值,也就是说,目标虚拟机所属的物理机与待部署容器组之间需要进行较多的数据通信。因此,确定目标虚拟机用于部署待部署容器组,也就能够在目标虚拟机中部署待部署容器组后,尽可能地减少待部署容器组与物理机之间的流量,进而,能够降低集群的流量成本。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本公开实施例提供的容器组部署方法的一种流程示意图;
图2为本公开实施例提供的容器组部署方法的另一种流程示意图;
图3为本公开实施例提供的容器组部署方法的又一种流程示意图;
图4为本公开实施例提供的一种基于第三虚拟机进行容器组部署的流程示意图;
图5为本公开实施例提供的一种预测模型的训练过程流程图;
图6为本公开实施例提供的一种部署容器组的原理示意图;
图7为本公开实施例提供的一种部署容器组的流程示意图;
图8为本公开实施例提供的另一种部署容器组的流程示意图;
图9为本公开实施例提供的一种容器组部署装置的结构图;
图10为本申请实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员基于本公开所获得的所有其他实施例,都属于本公开保护的范围。
为了降低集群的流量成本,本公开实施例提供了一种容器组部署方法、装置、电子设备及计算机可读存储介质,以下分别进行详细说明。
本公开实施例提供了一种容器组部署方法,该方法应用于Kubernetes集群中的管理节点。参见图1,图1为本公开实施例提供的容器组部署方法的一种流程示意图。可以包括如下步骤:
S101:获取当前Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量,以及当前Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量。
S102:针对当前Kubernetes集群中的每一第一虚拟机,确定该第一虚拟机中与待部署容器组的业务类型相同的容器组,作为第一容器组。
S103:基于当前第一容器组与每一虚拟机之间的真实流量进行预测,得到待部署容器组与每一虚拟机之间的第一预测流量。
S104:基于当前Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、待部署容器组与每一虚拟机之间的第一预测流量,以及当前Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量进行预测,得到在该第一虚拟机中部署待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量。
S105:基于在各第一虚拟机中部署待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出用于部署待部署容器组的目标虚拟机。
其中,目标虚拟机所属的物理机与待部署容器组之间的第二预测流量大于预设流量阈值。
本公开实施例提供的容器组部署方法,能够预测在各第一虚拟机中部署待部署容器组后,该待部署容器组与各物理机之间的第二预测流量。目标虚拟机所属的物理机与待部署容器组之间的第二预测流量大于预设流量阈值,也就是说,目标虚拟机所属的物理机与待部署容器组之间需要进行较多的数据通信。因此,确定目标虚拟机用于部署待部署容器组,也就能够在目标虚拟机中部署待部署容器组后,尽可能地减少待部署容器组与物理机之间的流量,进而,能够降低集群的流量成本。
针对步骤S101,Kubernetes集群包括物理机、虚拟机等基础设施即服务(IaaS,Infrastructure as a Service)资源。在一个Kubernetes集群中,可以包含至少一个物理机,每一物理机中可以运行至少一个虚拟机,每一虚拟机中可以部署至少一个容器组。
一种实现方式中,当前Kubernetes集群中每一容器组与每一虚拟机之间的真实流量可以用矩阵表示,该矩阵能够体现当前Kubernetes集群中每一容器组与每一虚拟机之间的真实流量的相关性,该矩阵可以称为第一真实矩阵,例如,第一真实矩阵如矩阵(1)所示。
其中,m表示当前Kubernetes集群中虚拟机的个数,n表示当前Kubernetes集群中容器组的个数,ρ1ij表示当前Kubernetes集群中的第i个容器组与第j个虚拟机之间的真实流量。
一种实现方式中,可以获取一个时刻之前的预设时长内,容器组与虚拟机之间的真实流量,作为该时刻容器组与虚拟机之间的真实流量。
或者,第一真实矩阵也可以用矩阵(1)的转置矩阵表示。
一种实现方式中,当前Kubernetes集群中每一虚拟机与每一物理机之间的真实流量可以用矩阵表示,该矩阵能够体现当前Kubernetes集群中每一虚拟机与每一物理机之间的真实流量的相关性,该矩阵可以称为第二真实矩阵,例如,第二真实矩阵如矩阵(2)所示。
其中,p表示当前Kubernetes集群中物理机的个数,m表示当前Kubernetes集群中虚拟机的个数,ρ2jk表示当前Kubernetes集群中第j个虚拟机与第k个物理机之间的真实流量。
一种实现方式中,可以获取一个时刻之前的预设时长内,虚拟机与物理机之间的真实流量,作为该时刻虚拟机与物理机之间的真实流量。
或者,第二真实矩阵也可以用矩阵(2)的转置矩阵表示。
一种实现方式中,可以在当前Kubernetes集群中的每一容器组、虚拟机和物理机中部署流量监控插件,进而,可以基于流量监控插件获取当前Kubernetes集群中的每一容器组与每一虚拟机之间的真实流量,以及每一虚拟机与每一物理机之间的真实流量。或者,也可以通过用于进行流量监控的辅助容器获取上述真实流量。上述流量监控插件可以为Kube-Router插件,辅助容器可以为Sidecar容器。
针对步骤S102,待部署容器组表示当前需要部署在Kubernetes集群中的容器组。
一种实现方式中,第一虚拟机可以包括当前Kubernetes集群中的所有虚拟机,也就是说,针对当前Kubernetes集群中的每一虚拟机,均可以执行上述步骤S102。
另一种实现方式中,也可以确定当前Kubernetes集群中,部署有与待部署容器组的业务类型相同的容器组的虚拟机,作为第一虚拟机。
其中,容器组的业务类型表示该容器组所处理的业务的类型。
针对步骤S103,针对每一第一虚拟机,确定出的第一容器组可以为一个,或者,也可以为多个。
若确定出的第一容器组为一个,则可以将该第一容器组与每一虚拟机之间的真实流量,作为待部署容器组与每一虚拟机之间的第一预测流量。
若确定出的第一容器组为多个,则可以基于该多个第一容器组与每一虚拟机之间的真实流量,得到待部署容器组与每一虚拟机之间的第一预测流量。
例如,可以计算该多个第一容器组与同一个虚拟机之间的真实流量的均值,作为待部署容器组与该虚拟机之间的第一预测流量,进而,可以得到待部署容器组与各虚拟机之间的第一预测流量。
或者,可以获取该多个第一容器组与同一个虚拟机之间的真实流量的中位数,作为待部署容器组与该虚拟机之间的第一预测流量,进而,可以得到待部署容器组与各该虚拟机之间的第一预测流量。
或者,也可以从该多个第一容器组中选择一个容器组,并将所选择的容器组与每一虚拟机之间的真实流量,作为待部署容器组与每一虚拟机之间的第一预测流量。
可以理解的是,若第一虚拟机包括当前Kubernetes集群中的所有虚拟机,则针对当前未包含有与待部署容器组的业务类型相同的容器组的第一虚拟机,可以得到待部署容器组与每一虚拟机之间的第一预测流量为0。相应的,则针对当前未包含有与待部署容器组的业务类型相同的容器组的物理机,可以得到待部署容器组与该物理机之间的第二预测流量为0。
一种实现方式中,可以基于当前Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、待部署容器组与每一虚拟机之间的第一预测流量,得到在该第一虚拟机中部署待部署容器组后,Kubernetes集群中每一容器组与每一虚拟机之间的预测流量。该预测流量可以用矩阵表示,该矩阵能够体现在该第一虚拟机中部署待部署容器组后,每一容器组与每一虚拟机之间的预测流量的相关性,该矩阵可以称为第一预测矩阵。
例如,可以在第一真实矩阵中添加用于表示待部署容器组与每一虚拟机之间的第一预测流量的元素,得到第一预测矩阵。
例如,与矩阵(1)相对应,可以得到矩阵(3)所示的第一预测矩阵:
其中,m表示当前Kubernetes集群中虚拟机的个数,n表示当前Kubernetes集群中容器组的个数,即,在部署待部署容器组之前Kubernetes集群中已有的容器组的个数,ρ1ij表示当前Kubernetes集群中第i个容器组与第j个虚拟机之间的真实流量,ρ1(n+1)j表示该待部署容器组与当前Kubernetes集群中第j个虚拟机之间的第一预测流量。
也就是说,针对每一个第一虚拟机,均可以得到对应的第一预测矩阵。
可以理解的是,若第一真实矩阵用矩阵(1)的转置矩阵表示,则第一预测矩阵用矩阵(3)的转置矩阵表示。
一种实现方式中,在该第一虚拟机中部署待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,可以用矩阵表示,该矩阵能够体现在该第一虚拟机中部署待部署容器组后,每一容器组与每一物理机之间的流量的相关性,该矩阵可以称为第二预测矩阵。
每一容器组与每一虚拟机之间的流量、每一虚拟机与每一物理机之间的流量,以及每一容器组与每一物理机之间的流量之间存在一定的映射关系。进而,可以基于该映射关系,第一虚拟机对应的第一预测矩阵和第二真实矩阵,得到该第一虚拟机对应的第二预测矩阵。
该映射关系可以用于公式(4)表示:
ρ3=f(ρ1,ρ2) (4)
其中,ρ1表示每一容器组与每一虚拟机之间的流量,ρ2表示每一虚拟机与每一物理机之间的流量,ρ3表示每一容器组与每一物理机之间的流量。
例如,ρ3可以用于矩阵(5)表示。
其中,p表示当前Kubernetes集群中物理机的个数,n表示当前Kubernetes集群中容器组的个数,ρ3ik表示当前Kubernetes集群中第i个容器组与第k个物理机之间的流量。
一种实现方式中,可以获取一个时刻之前的预设时长内,容器组与物理机之间的真实流量,作为该时刻容器组与物理机之间的真实流量。
或者,ρ3也可以用矩阵(5)的转置矩阵表示。
也就是说,预先可以基于每一容器组与每一虚拟机之间的第三真实流量、每一虚拟机与每一物理机之间的第四真实流量,以及每一容器组与每一物理机之间的第五真实流量,得到上述映射关系。进而,在得到第一预测矩阵和第二真实矩阵后,可以基于上述映射关系,得到对应的每一容器组与每一物理机之间的流量,也就可以得到在每一第一虚拟机中部署待部署容器组后,待部署容器组与每一物理机之间的第二预测流量。
一种实现方式中,该映射关系可以表示为预测模型,即,上述步骤S104可以包括以下步骤:将当前Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、待部署容器组与每一虚拟机之间的第一预测流量,以及当前Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量,输入至预先训练的预测模型,得到在该第一虚拟机中部署待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量。
例如,可以将每一第一虚拟机对应的第一预测矩阵和第二真实矩阵输入至训练好的预测模型,得到每一第一虚拟机对应的第二预测矩阵。
其中,预测模型为:基于Kubernetes集群中每一容器组与每一虚拟机之间的第三真实流量、每一虚拟机与每一物理机之间的第四真实流量,以及每一容器组与每一物理机之间的第五真实流量进行训练得到的。也就是说,训练得到的预测模型能够学习到上述映射关系。
针对步骤S105,一种实现方式中,每一第一虚拟机对应一个第二预测矩阵,第二预测矩阵中记录有在该第一虚拟机中部署待部署容器组后,待部署容器组与每一物理机之间的第二预测流量。且在该第二预测矩阵中,待部署容器组与该第一虚拟机所属的物理机之间的第二预测流量较大,待部署容器组与其他物理机之间的第二预测流量较小。例如,待部署容器组与其他物理机之间的第二预测流量可以为趋向于0的较小值。
进而,针对每一第一虚拟机,若对应的第二预测矩阵中记录的待部署容器组与该第一虚拟机所属的物理机之间的第二预测流量,大于预设流量阈值,则可以将该第一虚拟机确定为第二虚拟机。
可以理解的是,确定出的第二虚拟机可以为一个,也可以为多个。
若确定出的第二虚拟机为一个,则可以将该第二虚拟机确定为目标虚拟机。
若确定出的第二虚拟机为多个,则可以从多个第二虚拟机中选择一个,作为目标虚拟机。
一种实现方式中,参见图2,图2为本公开实施例提供的容器组部署方法的另一种流程示意图,在图1的基础上,相应的,在上述步骤S105之前,还可以包括如下步骤:
S106:确定待部署容器组对应的需求资源配比。
其中,需求资源配比表示:待部署容器组所需的存储资源与计算资源的第一权重的比值。
相应的,上述步骤S105可以包括以下步骤:
S1051:基于在各第一虚拟机中部署待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出所属的物理机与待部署容器组之间的第二预测流量大于预设流量阈值的虚拟机,作为第二虚拟机。
S1052:获取每一第二虚拟机对应的提供资源配比。
其中,提供资源配比表示:该第二虚拟机所提供的存储资源与计算资源的第二权重的比值。
S1053:从各第二虚拟机中,选择对应的提供资源配比与需求资源配比一致的虚拟机,作为第三虚拟机。
S1054:基于第三虚拟机,确定用于部署待部署容器组的目标虚拟机。
其中,存储资源包括内存,计算资源包括CPU。
一种实现方式中,容器组对应的需求资源配比与该容器组的业务类型相关,即,同一业务类型的容器组对应的需求资源配比相同。例如,若容器组处理进行业务处理时对计算性能的要求较高,则可以确定该容器组对应的需求资源配比较小;对存储空间的要求较高,则可以确定该容器组对应的需求资源配比较大。
例如,可以在Kubernetes集群中的etcd存储系统(一种开源的分布式统一键值存储,用于分布式系统或计算机集群的共享配置、服务发现和调度协调)中记录每一业务类型与对应的需求资源配比的关系,进而,管理节点可以基于上述对应关系,确定待部署容器组的业务类型对应的需求资源配比。
一种实现方式中,根据容器组所需的存储资源与计算资源的权重的比值,可以将容器组的需求资源配比分为五类,可以包括:CPU占用极高、CPU占用偏高、均衡、内存占偏高和内存占用极高。例如,CPU占用极高表示容器组需求资源配比<0.5,CPU占用偏高表示0.5≤容器组需求资源配比<1;均衡代表容器组需求资源配比=1,内存占偏高代表1<容器组需求资源配比≤2,内存占用高代表容器组需求资源配比>2。
一个虚拟机所提供的存储资源表示该虚拟机在物理机中分配到的存储资源,一个虚拟机所提供的计算资源表示该虚拟机在物理机中分配到的计算资源。
例如,若待部署容器组的需求资源配比为CPU占用极高,相应的,则获取第二虚拟机中每一提供资源配比小于0.5的虚拟机,作为第三虚拟机。
可以理解的是,确定出的第三虚拟机可以为一个,也可以为多个。
若确定出的第三虚拟机为一个,则可以将该第三虚拟机确定为目标虚拟机。
若确定出的第三虚拟机为多个,则可以从多个第三虚拟机中选择一个,作为目标虚拟机。
本公开实施例提供的容器组部署方法,能够基于第二虚拟机对应的提供资源配比选择目标虚拟机,也就是说,能够将容器组部署至与其需求资源配比一致的虚拟机,进而,能够提高虚拟机计算资源和存储资源的利用率,避免虚拟机计算资源和存储资源的浪费。
一种实现方式中,参见图3,图3为本公开实施例提供的容器组部署方法的又一种流程示意图,在图2的基础上,上述步骤S1054可以包括如下步骤:
S10541:根据每一第三虚拟机当前剩余的存储资源的大小、剩余的计算资源的大小,以及待部署容器组所需的存储资源的大小、计算资源的大小,从各第三虚拟机中确定允许部署待部署容器组的虚拟机,作为第四虚拟机。
S10542:基于第四虚拟机,确定用于部署待部署容器组的目标虚拟机。
第四虚拟机允许部署待部署容器组,也就是说,第四虚拟机当前剩余的存储资源的大小不小于待部署容器组所需的存储资源的大小,且该第四虚拟机当前剩余的计算资源的大小不小于待部署容器组所需的计算资源的大小。
一种实现方式中,可以基于公式(6),确定每一第三虚拟机是否允许部署待部署容器组:
A=((nodeCPUtotal-usedCPU-nodeMgtCPUCost)/PodCPU)
B=((nodeMEMtotal-usedMEM-nodeMgtMEMCost)/PodMEM) (6)
其中,A表示该第三虚拟机的剩余CPU的大小与待部署容器组所需的CPU的大小的比值,nodeCPUtotal表示该第三虚拟机所提供的CPU的总大小,usedCPU表示该第三虚拟机中其他容器组已使用的CPU的大小,nodeMgtCPUCost表示该第三虚拟机自身所占用的CPU大小,PodCPU表示待部署容器组所需的CPU的大小。B表示该第三虚拟机的剩余内存的大小与待部署容器组所需内存的大小的比值,nodeMEMtotal表示该第三虚拟机所提供的内存的总大小,usedMEM表示该该第三虚拟机中其他容器组已使用的内存的大小,nodeMgtMEMCost表示该第三虚拟机自身所占的内存的大小,PodMEM表示待部署容器组所需的内存的大小。
若A>1,且B>1,表示该第三虚拟机具备部署待部署容器组所需的资源条件,则将该第三虚拟机作为第四虚拟机;反之,该第三虚拟机不具备部署待部署容器组所需的资源条件。
在一些实施例中,上述步骤S10642可以包括如下步骤:
步骤一:针对每一第四虚拟机,基于第一权重,计算该第四虚拟机当前剩余的存储资源的大小与剩余的计算资源的大小的加权和。
步骤二:将加权和最大的第四虚拟机,确定为用于部署待部署容器组的目标虚拟机。
一种实现方式中,管理节点可以确定待部署容器的业务类型,进而,可以获取etcd存储系统中记录的该业务类型对应的需求资源配比,也就可以得到待部署容器组所需的存储资源与计算资源的第一权重的比值,进而,可以根据该比值,确定存储资源和计算资源各自的权重(即第一权重)。例如,若存储资源与计算资源的第一权重的比值为0.5,则可以确定存储资源和计算资源各自的第一权重分别为1/3和2/3;若存储资源与计算资源的第一权重的比值为1,则可以确定存储资源和计算资源各自的第一权重分别为1/2和1/2。
进而,可以基于第一权重,计算每一第四虚拟机当前剩余的存储资源的大小与剩余的计算资源的大小的加权和,并将加权和最大的第四虚拟机确定为目标虚拟机。
例如,可以基于以下公式计算每一第四虚拟机对应的加权和:
nodeScore=WMEM×AMEM+WCPU×ACPU
其中,nodeScore表示该第四虚拟机对应的加权和,WMEM表示待部署容器组需求资源配比中存储资源所占权重,AMEM表示该虚拟机中剩余存储资源的大小,WCPU表示待部署容器组需求资源配比中计算资源所占权重,AMEM表示该虚拟机中剩余计算资源的大小。
可以理解的是,确定出的第四虚拟机可以为一个,也可以为多个。
若确定出的第四虚拟机为一个,则可以将该第四虚拟机确定为目标虚拟机。
若确定出的第四虚拟机为多个,则可以从多个第四虚拟机中选择一个作为目标虚拟机。
一种实现方式中,参见图4,图4为本公开实施例提供的一种基于第三虚拟机进行容器组部署的流程示意图。
图4中,管理节点可以进行Node(节点)剩余资源筛选,即,管理节点对第三虚拟机进行筛选。具体的,确定出第三虚拟机中,当前剩余的存储资源的大小不小于待部署容器组所需的存储资源的大小,且当前剩余的计算资源的大小不小于待部署容器组所需的计算资源的大小的虚拟机(即第四虚拟机)。
进而,管理节点进行Pod(容器组)占用资源类型判断,即,若待部署容器组对内存需求高,则可以对内存权重动态升高;若待部署容器组对CPU需求高,则可以对CPU权重动态升高。进而,匹配etcd预存规则,生成权重参数,即,根据etcd存储系统中记录的内存与CPU所占权重的比值,得到容器组的需求资源配比。若待部署容器组对内存的需求高,可以确定待部署容器组对应较大的需求资源配比;若待部署容器组对CPU的需求高,可以确定待部署容器组对应较小的需求资源配比。
然后,则可以调整Scheduler调度策略,即,按照确定出的需求资源配比对应的第一权重,分别计算每一第四虚拟机当前剩余的存储资源的大小与剩余的计算资源的大小的加权和,并从加权和最大的虚拟机中选择一个作为目标虚拟机。最后,完成业务容器组的调度,即,将待部署容器组部署在该目标虚拟机上。
在一些实施例中,参见图5,图5为本公开实施例提供的一种预测模型的训练过程流程图,包括以下步骤:
S501:将样本时刻Kubernetes集群中每一容器组与每一虚拟机之间的第三真实流量,以及每一虚拟机与每一物理机之间的第四真实流量,输入至初始结构的卷积神经网络模型,得到样本时刻每一容器组与每一物理机之间的第三预测流量。
S502:基于样本时刻每一容器组与每一物理机之间的第五真实流量,与样本时刻每一容器组与每一物理机之间的第三预测流量之间的差异,计算损失值。
S503:基于损失值对初始结构的卷积神经网络模型的模型参数进行调整,直至收敛,得到预测模型。
在本申请实施例中,卷积神经网络模型可以通过预设损失函数,基于样本时刻每一容器组与每一物理机之间的第五真实流量,与样本时刻每一容器组与每一物理机之间的第三预测流量之间的差异,计算损失值,并基于损失值进行网络参数进行调整。例如,可以通过梯度下降的方式调整卷积神经网络模型的模型参数。预设损失函数可以为L1损失函数或L2损失函数。
在一些实施例中,该方法还可以包括如下步骤:
在目标虚拟机中,部署待部署容器组。
一种实现方式中,在确定出目标虚拟机后,将待部署容器组与该目标虚拟机绑定,管理节点可以向目标虚拟机发送针对待部署容器组的部署指令,相应的,目标虚拟机在接收到该部署指令后,可以通过启动Kubelet服务进程创建该待部署容器组。
一种实现方式中,参见图6,图6为本公开实施例提供的一种容器组部署的原理示意图。图6中,管理节点可以包括三层节点网络流量负载监控模块、三层网络流量相关性分析模块和Node节点调度计算模块。
其中,三层节点网络流量负载监控模块可以分别监控每一容器组(Pod)、每一虚拟机(VM)和每一物理机(PM)的流入流出流量,统计每一容器组与每一虚拟机之间的第一真实流量和每一虚拟机与每一物理机之间的第二真实流量,并将获取到的数据发送至三层网络流量相关性分析模块。
三层网络流量相关性分析模块基于上述数据,构建容器组(Pod)与虚拟机(VM)的流量相关性ρ1(即本公开实施例中的第一真实矩阵)、虚拟机(VM)与物理机(PM)的流量相关性ρ2(即本公开实施例中的第二真实矩阵)。基于第一真实矩阵与第二真实矩阵,得到每一虚拟机对应的第一预测矩阵,再基于该虚拟机对应的第一预测矩阵和第二真实矩阵,得到该虚拟机对应的第二预测矩阵(即,容器组与物理机的流量相关性ρ3),基于各虚拟机对应的第二预测矩阵,筛选出用于部署待部署容器组的虚拟机,作为第二虚拟机。
Node节点调度计算模块获取每一第二虚拟机的资源类型(即,每一第二虚拟机的提供资源配比),基于待部署容器组的需求资源配比,从各第二虚拟机中筛选出提供资源配比与容器组需求资源配比一致的虚拟机,并基于筛选出的虚拟机,确定调度目标Node(即,目标虚拟机)。
VM1-VMn表示Kubernetes集群中的虚拟机,Pod1-Podn表示Kubernetes集群中的容器组,PM1-PMn表示Kubernetes集群中的物理机,VM Resource表示物理机中虚拟机占用的存储资源和计算资源,Subnet表示由至少一个物理机构成的网络,PM Resource表示Kubernetes集群中物理机的存储资源和计算资源,VM CATE1-VM CATEn分别表示VM1-VMn的类别,即,虚拟机的提供资源配比,VM Resource Category(虚拟机资源类别)表示Kubernetes集群中虚拟机的提供资源配比。
本公开实施例提供的容器组部署方法,能够基于当前Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量和每一虚拟机与每一物理机之间的第二真实流量,筛选出目标虚拟机,也就是说,能够考虑到容器组、虚拟机与物理机之间的流量关系,进而,能够降低集群的流量成本。
一种实现方式中,参见图7,图7为本公开实施例提供的容器组部署方法的又一种流程示意图。图7中,Kubernetes集群(PM/VM/Pod-K8s Cluster)可以对PM(物理机)、VM(虚拟机)、Pod(容器组)流量进行监控统计,以实现监控统计三层节点流量,即采集每一容器组、虚拟机、物理机的流入流出流量,并统计每一容器组与每一虚拟机之间的真实流量(即第一真实流量)和每一虚拟机与每一物理机之间的真实流量(即第二真实流量)。基于上述数据,计算得到Pod-VM/VM-PM/Pod-PM的流量相关性矩阵,即,计算第一真实矩阵、第二真实矩阵,以及每一第一虚拟机对应的第一预测矩阵。
基于Pod-VM/VM-PM/Pod-PM的流量相关性矩阵进行三层节点流量相关性计算。即,基于第一真实矩阵、第二真实矩阵得到每一第一虚拟机对应的第一预测矩阵,再通过预测模型,得到每一第一虚拟机对应的第二预测矩阵。基于每一第一虚拟机对应的第二预测矩阵,从各第一虚拟机中确定出所属的物理机与待部署容器组之间的第二预测流量大于预设流量阈值的虚拟机,得到备选Node资源(即,第二虚拟机)。
通过预设业务类型资源节点资源利用率计算,匹配预存权重规则,调整部署策略。即,从各第二虚拟机中,选择对应的提供资源配比与待部署容器组的需求资源配比一致的虚拟机,作为第三虚拟机,并基于第三虚拟机中的剩余计算资源和存储资源的大小,筛选出剩余计算资源和存储资源的大小不小于待部署容器组所需的剩余计算资源和存储资源的大小的虚拟机,作为第四虚拟机。进而,基于预存权重规则中记录的第一权重,计算每一第四虚拟机当前剩余的存储资源的大小与剩余的计算资源的大小的加权和。再由Kube-Scheduler在流量备选Node集合中,进行二次筛选,即,若加权和最大的第四虚拟机为多个,则从该多个加权和最大的第四虚拟机中选择一个作为目标虚拟机。进而,将待部署容器组部署在目标虚拟机上。
一种实现方式中,参见图8,图8为本公开实施例提供的另一种部署容器组的流程示意图。图8中,管理节点监控采样三层网络流量数据,即获取样本时刻Kubernetes集群中每一容器组与每一虚拟机之间的真实流量(即第三真实流量)和每一虚拟机与每一物理机之间的真实流量(即第四真实流量),并计算得到每一容器组与每一物理机之间的真实流量(即第五真实流量)。基于上述数据,计算生成流量相关性矩阵ρ1/ρ2/ρ3,即,得到分别表示第三真实流量、第四真实流量和第五真实流量的矩阵。卷积网络训练ρ3预测模型,即将上述流量相关性矩阵ρ1/ρ2/ρ3输入至卷积神经网络模型中进行网络学习,基于第五真实流量与第三预测流量之间的差异,计算损失值;基于损失值对初始结构的卷积神经网络模型的模型参数进行调整,直至收敛,得到预测模型。
在确定目标虚拟机的过程中,管理节点通过调整ρ1矩阵,查看ρ3pred的变化,即,基于各第一虚拟机对应的第一预测矩阵和第二真实矩阵,得到各第一虚拟机对应的第二预测矩阵。筛选候选Node(节点)集合,即基于各第一虚拟机对应的第二预测矩阵,从各第一虚拟机中确定第二虚拟机,第二虚拟机所属的物理机与待部署容器组之间的预测流量应大于预设流量阈值。最后使用资源利用率调度模块处理,即,基于第二虚拟机,确定用于部署待部署容器组的目标虚拟机。其中,资源利用率调度模块可以基于步骤S1052-S1054确定目标虚拟机。
基于相同的发明构思,本公开实施例还提供了一种容器组部署装置,参见图9,图9为本公开实施例提供的一种容器组部署装置的结构图,该装置包括:
真实流量获取模块901,获取当前Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量,以及当前Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量;
第一容器组确定模块902,用于针对当前Kubernetes集群中的每一第一虚拟机,确定该第一虚拟机中与待部署容器组的业务类型相同的容器组,作为第一容器组;
第一预测流量获取模块903,用于基于当前第一容器组与每一虚拟机之间的真实流量进行预测,得到待部署容器组与每一虚拟机之间的第一预测流量;
第二预测流量获取模块904,用于基于当前Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、待部署容器组与每一虚拟机之间的第一预测流量,以及当前Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量进行预测,得到在该第一虚拟机中部署待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量;
目标虚拟机确定模块905,用于基于在各第一虚拟机中部署待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出用于部署待部署容器组的目标虚拟机;其中,目标虚拟机所属的物理机与待部署容器组之间的第二预测流量大于预设流量阈值。
在一些实施例中,装置还包括:
第一资源配比确定模块,用于在基于在各第一虚拟机中部署待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出用于部署待部署容器组的目标虚拟机之前,确定待部署容器组对应的需求资源配比;其中,需求资源配比表示:待部署容器组所需的存储资源与计算资源的第一权重的比值;
目标虚拟机确定模块905,包括:
第一虚拟机确定子模块,用于基于在各第一虚拟机中部署待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出所属的物理机与待部署容器组之间的第二预测流量大于预设流量阈值的虚拟机,作为第二虚拟机;
资源配比获取子模块,用于获取每一第二虚拟机对应的提供资源配比;其中,提供资源配比表示:该第二虚拟机所提供的存储资源与计算资源的第二权重的比值;
第二虚拟机确定子模块,用于从各第二虚拟机中,选择对应的提供资源配比与需求资源配比一致的虚拟机,作为第三虚拟机;
目标虚拟机确定子模块,用于基于第三虚拟机,确定用于部署待部署容器组的目标虚拟机。
在一些实施例中,目标虚拟机确定子模块,包括:
虚拟机确定单元,用于根据每一第三虚拟机当前剩余的存储资源的大小、剩余的计算资源的大小,以及待部署容器组所需的存储资源的大小、计算资源的大小,从各第三虚拟机中确定允许部署待部署容器组的虚拟机,作为第四虚拟机;
目标虚拟机确定单元,用于基于第四虚拟机,确定用于部署待部署容器组的目标虚拟机。
在一些实施例中,目标虚拟机确定单元,具体用于:
针对每一第四虚拟机,基于第一权重,计算该第四虚拟机当前剩余的存储资源的大小与剩余的计算资源的大小的加权和;
将加权和最大的第四虚拟机,确定为用于部署待部署容器组的目标虚拟机。
在一些实施例中,第二预测流量获取模块904,具体用于:
将当前Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、待部署容器组与每一虚拟机之间的第一预测流量,以及当前Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量,输入至预先训练的预测模型,得到在该第一虚拟机中部署待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量;其中,预测模型为:基于Kubernetes集群中每一容器组与每一虚拟机之间的第三真实流量、每一虚拟机与每一物理机之间的第四真实流量,以及每一容器组与每一物理机之间的第五真实流量进行训练得到的。
在一些实施例中,该装置还包括:
预测模型训练模块,用于将样本时刻Kubernetes集群中每一容器组与每一虚拟机之间的第三真实流量,以及每一虚拟机与每一物理机之间的第四真实流量,输入至初始结构的卷积神经网络模型,得到样本时刻每一容器组与每一物理机之间的第三预测流量;
基于样本时刻每一容器组与每一物理机之间的第五真实流量,与样本时刻每一容器组与每一物理机之间的第三预测流量之间的差异,计算损失值;
基于损失值对初始结构的卷积神经网络模型的模型参数进行调整,直至收敛,得到预测模型。
在一些实施例中,该装置还包括:
部署模块,用于在目标虚拟机中,部署待部署容器组。
本公开实施例还提供了一种电子设备,如图10所示,包括处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信,
存储器1003,用于存放计算机程序;
处理器1001,用于执行存储器1003上所存放的程序时,实现上述实施例中任一容器组部署方法的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本公开提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一容器组部署方法的步骤。
在本公开提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一容器组部署方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本公开的较佳实施例,并非用于限定本公开的保护范围。凡在本公开的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本公开的保护范围内。
Claims (16)
1.一种容器组部署方法,其特征在于,所述方法应用于Kubernetes集群中的管理节点,所述方法包括:
获取当前所述Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量,以及当前所述Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量;
针对当前所述Kubernetes集群中的每一第一虚拟机,确定该第一虚拟机中与待部署容器组的业务类型相同的容器组,作为第一容器组;
基于当前所述第一容器组与每一虚拟机之间的真实流量进行预测,得到所述待部署容器组与每一虚拟机之间的第一预测流量;
基于当前所述Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、所述待部署容器组与每一虚拟机之间的第一预测流量,以及当前所述Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量进行预测,得到在该第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量;
基于在各第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出用于部署所述待部署容器组的目标虚拟机;其中,所述目标虚拟机所属的物理机与所述待部署容器组之间的第二预测流量大于预设流量阈值。
2.根据权利要求1所述的方法,其特征在于,在所述基于在各第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出用于部署所述待部署容器组的目标虚拟机之前,所述方法还包括:
确定所述待部署容器组对应的需求资源配比;其中,所述需求资源配比表示:所述待部署容器组所需的存储资源与计算资源的第一权重的比值;
所述基于在各第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出用于部署所述待部署容器组的目标虚拟机,包括:
基于在各第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出所属的物理机与所述待部署容器组之间的第二预测流量大于预设流量阈值的虚拟机,作为第二虚拟机;
获取每一第二虚拟机对应的提供资源配比;其中,所述提供资源配比表示:该第二虚拟机所提供的存储资源与计算资源的第二权重的比值;
从各第二虚拟机中,选择对应的提供资源配比与所述需求资源配比一致的虚拟机,作为第三虚拟机;
基于所述第三虚拟机,确定用于部署所述待部署容器组的目标虚拟机。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第三虚拟机,确定用于部署所述待部署容器组的目标虚拟机,包括:
根据每一第三虚拟机当前剩余的存储资源的大小、剩余的计算资源的大小,以及所述待部署容器组所需的存储资源的大小、计算资源的大小,从各第三虚拟机中确定允许部署所述待部署容器组的虚拟机,作为第四虚拟机;
基于所述第四虚拟机,确定用于部署所述待部署容器组的目标虚拟机。
4.根据权利要求3所述的方法,所述基于所述第四虚拟机,确定用于部署所述待部署容器组的目标虚拟机,包括:
针对每一第四虚拟机,基于所述第一权重,计算该第四虚拟机当前剩余的存储资源的大小与剩余的计算资源的大小的加权和;
将加权和最大的第四虚拟机,确定为用于部署所述待部署容器组的目标虚拟机。
5.根据权利要求1所述的方法,其特征在于,所述基于当前所述Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、所述待部署容器组与每一虚拟机之间的第一预测流量,以及当前所述Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量进行预测,得到在该第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,包括:
将当前所述Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、所述待部署容器组与每一虚拟机之间的第一预测流量,以及当前所述Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量,输入至预先训练的预测模型,得到在该第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量;其中,所述预测模型为:基于所述Kubernetes集群中每一容器组与每一虚拟机之间的第三真实流量、每一虚拟机与每一物理机之间的第四真实流量,以及每一容器组与每一物理机之间的第五真实流量进行训练得到的。
6.根据权利要求5所述的方法,其特征在于,所述预测模型的训练过程包括以下步骤:
将样本时刻所述Kubernetes集群中每一容器组与每一虚拟机之间的第三真实流量,以及每一虚拟机与每一物理机之间的第四真实流量,输入至初始结构的卷积神经网络模型,得到所述样本时刻每一容器组与每一物理机之间的第三预测流量;
基于所述样本时刻每一容器组与每一物理机之间的第五真实流量,与所述样本时刻每一容器组与每一物理机之间的第三预测流量之间的差异,计算损失值;
基于所述损失值对初始结构的卷积神经网络模型的模型参数进行调整,直至收敛,得到所述预测模型。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标虚拟机中,部署所述待部署容器组。
8.一种容器组部署装置,其特征在于,所述装置应用于Kubernetes集群中的管理节点,所述装置包括:
真实流量获取模块,获取当前所述Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量,以及当前所述Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量;
第一容器组确定模块,用于针对当前所述Kubernetes集群中的每一第一虚拟机,确定该第一虚拟机中与待部署容器组的业务类型相同的容器组,作为第一容器组;
第一预测流量获取模块,用于基于当前所述第一容器组与每一虚拟机之间的真实流量进行预测,得到所述待部署容器组与每一虚拟机之间的第一预测流量;
第二预测流量获取模块,用于基于当前所述Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、所述待部署容器组与每一虚拟机之间的第一预测流量,以及当前所述Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量进行预测,得到在该第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量;
目标虚拟机确定模块,用于基于在各第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出用于部署所述待部署容器组的目标虚拟机;其中,所述目标虚拟机所属的物理机与所述待部署容器组之间的第二预测流量大于预设流量阈值。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第一资源配比确定模块,用于在所述基于在各第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出用于部署所述待部署容器组的目标虚拟机之前,确定所述待部署容器组对应的需求资源配比;其中,所述需求资源配比表示:所述待部署容器组所需的存储资源与计算资源的第一权重的比值;
所述目标虚拟机确定模块,包括:
第一虚拟机确定子模块,用于基于在各第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量,从各第一虚拟机中确定出所属的物理机与所述待部署容器组之间的第二预测流量大于预设流量阈值的虚拟机,作为第二虚拟机;
资源配比获取子模块,用于获取每一第二虚拟机对应的提供资源配比;其中,所述提供资源配比表示:该第二虚拟机所提供的存储资源与计算资源的第二权重的比值;
第二虚拟机确定子模块,用于从各第二虚拟机中,选择对应的提供资源配比与所述需求资源配比一致的虚拟机,作为第三虚拟机;
目标虚拟机确定子模块,用于基于所述第三虚拟机,确定用于部署所述待部署容器组的目标虚拟机。
10.根据权利要求9所述的装置,其特征在于,所述目标虚拟机确定子模块,包括:
虚拟机确定单元,用于根据每一第三虚拟机当前剩余的存储资源的大小、剩余的计算资源的大小,以及所述待部署容器组所需的存储资源的大小、计算资源的大小,从各第三虚拟机中确定允许部署所述待部署容器组的虚拟机,作为第四虚拟机;
目标虚拟机确定单元,用于基于所述第四虚拟机,确定用于部署所述待部署容器组的目标虚拟机。
11.根据权利要求10所述的装置,其特征在于,所述目标虚拟机确定单元,具体用于:
针对每一第四虚拟机,基于所述第一权重,计算该第四虚拟机当前剩余的存储资源的大小与剩余的计算资源的大小的加权和;
将加权和最大的第四虚拟机,确定为用于部署所述待部署容器组的目标虚拟机。
12.根据权利要求8所述的装置,其特征在于,所述第二预测流量获取模块,具体用于:
将当前所述Kubernetes集群中每一容器组与每一虚拟机之间的第一真实流量、所述待部署容器组与每一虚拟机之间的第一预测流量,以及当前所述Kubernetes集群中每一虚拟机与每一物理机之间的第二真实流量,输入至预先训练的预测模型,得到在该第一虚拟机中部署所述待部署容器组后,Kubernetes集群中每一容器组与每一物理机之间的第二预测流量;其中,所述预测模型为:基于所述Kubernetes集群中每一容器组与每一虚拟机之间的第三真实流量、每一虚拟机与每一物理机之间的第四真实流量,以及每一容器组与每一物理机之间的第五真实流量进行训练得到的。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
预测模型训练模块,用于将样本时刻所述Kubernetes集群中每一容器组与每一虚拟机之间的第三真实流量,以及每一虚拟机与每一物理机之间的第四真实流量,输入至初始结构的卷积神经网络模型,得到所述样本时刻每一容器组与每一物理机之间的第三预测流量;
基于所述样本时刻每一容器组与每一物理机之间的第五真实流量,与所述样本时刻每一容器组与每一物理机之间的第三预测流量之间的差异,计算损失值;
基于所述损失值对初始结构的卷积神经网络模型的模型参数进行调整,直至收敛,得到所述预测模型。
14.根据权利要求8所述的装置,其特征在于,所述装置还包括:
部署模块,用于在所述目标虚拟机中,部署所述待部署容器组。
15.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210721869.XA CN114995957A (zh) | 2022-06-24 | 2022-06-24 | 容器组部署方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210721869.XA CN114995957A (zh) | 2022-06-24 | 2022-06-24 | 容器组部署方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114995957A true CN114995957A (zh) | 2022-09-02 |
Family
ID=83037237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210721869.XA Pending CN114995957A (zh) | 2022-06-24 | 2022-06-24 | 容器组部署方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114995957A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719614A (zh) * | 2023-08-11 | 2023-09-08 | 中国电信股份有限公司 | 虚拟机监视器选择方法、装置、计算机设备和存储介质 |
-
2022
- 2022-06-24 CN CN202210721869.XA patent/CN114995957A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719614A (zh) * | 2023-08-11 | 2023-09-08 | 中国电信股份有限公司 | 虚拟机监视器选择方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108009016B (zh) | 一种资源负载均衡控制方法及集群调度器 | |
CN110851529B (zh) | 算力调度方法及相关设备 | |
CN112153700B (zh) | 一种网络切片资源管理方法及设备 | |
CN106020941B (zh) | 选择资源分配策略和解决资源冲突的方法 | |
CN108089921B (zh) | 用于云端大数据运算架构的服务器及其运算资源最佳化方法 | |
CN111866775B (zh) | 一种业务编排方法及装置 | |
CN113037786B (zh) | 智能算力调度方法、装置和系统 | |
CN110502321A (zh) | 一种资源调度方法及系统 | |
CN115543577B (zh) | 基于协变量的Kubernetes资源调度优化方法、存储介质及设备 | |
CN112148468A (zh) | 一种资源调度方法、装置、电子设备及存储介质 | |
CN114995957A (zh) | 容器组部署方法、装置、电子设备及计算机可读存储介质 | |
CN113553160A (zh) | 用于人工智能物联网的边缘计算节点任务调度方法及系统 | |
CN114205317B (zh) | 基于sdn与nfv的服务功能链sfc资源分配方法及电子设备 | |
CN114020455B (zh) | 一种服务功能的编排方法、装置及计算机可读存储介质 | |
CN109041236B (zh) | 一种不同权重业务的无线资源分配方法及装置 | |
CN113378498B (zh) | 一种任务分配方法及装置 | |
CN110896344A (zh) | 一种冗余服务部署方法及装置 | |
CN112130997B (zh) | 一种资源分配方法及装置 | |
CN107357649B (zh) | 系统资源部署策略的确定方法、装置及电子设备 | |
CN111143033B (zh) | 基于可伸缩操作系统的操作执行方法及装置 | |
CN113472591B (zh) | 一种业务性能的确定方法及装置 | |
JP2021158591A (ja) | 制御量算出装置及び制御量算出方法 | |
CN114844791A (zh) | 基于大数据的云服务自动管理分配方法、系统及存储介质 | |
CN114936089A (zh) | 资源调度方法、系统、设备及存储介质 | |
CN114626531A (zh) | 模型推理参数确定方法、装置、电子设备及存储介质 |
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 |