CN110704175B - 容器部署方法和装置 - Google Patents

容器部署方法和装置 Download PDF

Info

Publication number
CN110704175B
CN110704175B CN201810747771.5A CN201810747771A CN110704175B CN 110704175 B CN110704175 B CN 110704175B CN 201810747771 A CN201810747771 A CN 201810747771A CN 110704175 B CN110704175 B CN 110704175B
Authority
CN
China
Prior art keywords
resource
request
matching
deployment
value
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.)
Active
Application number
CN201810747771.5A
Other languages
English (en)
Other versions
CN110704175A (zh
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 CN201810747771.5A priority Critical patent/CN110704175B/zh
Publication of CN110704175A publication Critical patent/CN110704175A/zh
Application granted granted Critical
Publication of CN110704175B publication Critical patent/CN110704175B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Abstract

本公开提供了一种容器部署方法和装置,方法包括:接收包括容器需要的每种资源的资源请求值的部署请求;判断集群节点中是否存在与部署请求匹配的第一匹配节点,第一匹配节点的每种资源的资源剩余值均不小于该资源的资源请求值;若否,则将部署请求拆分为多个部署子请求,每个部署子请求包括每种资源的资源子请求值,每种资源的资源子请求值包括该资源的资源请求值的不可拆分值及可拆分值的多个拆分请求值中的一个;从集群节点中确定与每个部署子请求匹配的至少一个第二匹配节点,第二匹配节点的每种资源的剩余值均不小于匹配的部署子请求中每种资源的资源子请求值;在与每个部署子请求匹配的一个第二匹配节点中部署满足该部署子请求的容器。

Description

容器部署方法和装置
技术领域
本公开涉及云计算技术领域,尤其是一种容器部署方法和装置。
背景技术
目前,在接收到容器的部署请求后,针对容器所需的每种资源,只有在节点的资源的剩余值大于资源的请求值的情况下,才可以在该节点部署容器,否则,容器将不能被部署。
发明人发现,按照这样的方式,即使有些节点中存在足够的碎片资源能够满足该部署请求,也无法使用这些碎片资源,从而导致碎片资源的浪费。
发明内容
本公开实施例提供一种容器部署方法,能够充分利用节点的资源,减小节点资源的浪费。
根据本公开实施例的一方面,提供一种容器部署方法,包括:接收容器的部署请求,所述部署请求包括所述容器需要的多种资源中每种资源的资源请求值;判断集群节点中是否存在与所述部署请求匹配的第一匹配节点,所述第一匹配节点的每种资源的资源剩余值均不小于该资源的资源请求值;若否,则将所述部署请求拆分为多个部署子请求,每个部署子请求包括每种资源的资源子请求值,每种资源的资源子请求值包括该资源的资源请求值的不可拆分值、以及可拆分值的多个拆分请求值中的一个;从集群节点中确定与每个部署子请求匹配的至少一个第二匹配节点,所述第二匹配节点的每种资源的剩余值均不小于匹配的部署子请求中每种资源的资源子请求值;在与每个部署子请求匹配的一个第二匹配节点中部署满足该部署子请求的容器。
在一些实施例中,所述至少一个第二匹配节点包括多个第二匹配节点;所述在与每个部署子请求匹配的一个第二匹配节点中部署满足该部署子请求的容器包括:根据每个第二匹配节点每种资源当前的资源利用率,确定每个第二匹配节点当前的平均资源利用率;对所述多个第二匹配节点进行第一筛选,以得到当前的平均资源利用率小于预设利用率的第一组第二匹配节点;根据所述第一组第二匹配节点中每个第二匹配节点当前的平均资源利用率,确定所述第一组第二匹配节点中每个第二匹配节点当前的资源利用平衡度;对所述第一组第二匹配节点中的每个第二匹配节点进行第二筛选,以得到当前的资源利用平衡度小于预设平衡度的第二组第二匹配节点;根据所述第二组第二匹配节点中每个第二匹配节点在部署满足该部署子请求的容器后的资源利用率,确定所述第二组第二匹配节点中每个第二匹配节点预测的平均资源利用率;根据所述第二组第二匹配节点中每个第二匹配节点预测的平均资源利用率,确定所述第二组第二匹配节点中每个第二匹配节点预测的资源利用平衡度;根据所述第二组第二匹配节点中每个第二匹配节点的当前的资源利用平衡度和预测的资源利用平衡度,确定部署满足该部署子请求的容器的第二匹配节点。
在一些实施例中,所述根据所述第二组第二匹配节点中每个第二匹配节点的当前的资源利用平衡度和预测的资源利用平衡度,确定部署满足该部署子请求的容器的第二匹配节点包括:计算所述第二组第二匹配节点中每个第二匹配节点的当前的资源利用平衡度和预测的资源利用平衡度之间的差值;将所述差值的绝对值最大的第二匹配节点确定为部署满足该部署子请求的容器的第二匹配节点。
在一些实施例中,所述资源利用平衡度为每种资源利用率与平均资源利用率的差值的平方和。
在一些实施例中,每种资源的可拆分值的多个拆分请求值中的每个拆分请求值相同。
在一些实施例中,所述多种资源包括磁盘资源和网络资源中的至少一个。
根据本公开实施例的另一方面,提供一种容器部署装置,包括:接收模块,用于接收容器的部署请求,所述部署请求包括所述容器需要的多种资源中每种资源的资源请求值;匹配模块,用于判断集群节点中是否存在与所述部署请求匹配的第一匹配节点,所述第一匹配节点的每种资源的资源剩余值均不小于该资源的资源请求值;从集群节点中确定与每个部署子请求匹配的至少一个第二匹配节点,所述第二匹配节点的每种资源的剩余值均不小于匹配的部署子请求中每种资源的资源子请求值;拆分模块,用于在集群节点中不存在与所述部署请求匹配的第一匹配节点的情况下,将所述部署请求拆分为多个部署子请求,每个部署子请求包括每种资源的资源子请求值,每种资源的资源子请求值包括该资源的资源请求值的不可拆分值、以及可拆分值的多个拆分请求值中的一个;部署模块,用于在与每个部署子请求匹配的一个第二匹配节点中部署满足该部署子请求的容器。
在一些实施例中,所述至少一个第二匹配节点包括多个第二匹配节点;所述部署模块用于:根据每个第二匹配节点每种资源当前的资源利用率,确定每个第二匹配节点当前的平均资源利用率;对所述多个第二匹配节点进行第一筛选,以得到当前的平均资源利用率小于预设利用率的第一组第二匹配节点;根据所述第一组第二匹配节点中每个第二匹配节点当前的平均资源利用率,确定所述第一组第二匹配节点中每个第二匹配节点当前的资源利用平衡度;对所述第一组第二匹配节点中的每个第二匹配节点进行第二筛选,以得到当前的资源利用平衡度小于预设平衡度的第二组第二匹配节点;根据所述第二组第二匹配节点中每个第二匹配节点在部署满足该部署子请求的容器后的资源利用率,确定所述第二组第二匹配节点中每个第二匹配节点预测的平均资源利用率;根据所述第二组第二匹配节点中每个第二匹配节点预测的平均资源利用率,确定所述第二组第二匹配节点中每个第二匹配节点预测的资源利用平衡度;根据所述第二组第二匹配节点中每个第二匹配节点的当前的资源利用平衡度和预测的资源利用平衡度,确定部署满足该部署子请求的容器的第二匹配节点。
在一些实施例中,所述部署模块用于:计算所述第二组第二匹配节点中每个第二匹配节点的当前的资源利用平衡度和预测的资源利用平衡度之间的差值;将所述差值的绝对值最大的第二匹配节点确定为部署满足该部署子请求的容器的第二匹配节点。
在一些实施例中,所述资源利用平衡度为每种资源利用率与平均资源利用率的差值的平方和。
在一些实施例中,每种资源的可拆分值的多个拆分请求值中的每个拆分请求值相同。
在一些实施例中,所述多种资源包括磁盘资源和网络资源中的至少一个。
根据本公开实施例的又一方面,提供一种容器部署装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行上述任意一个实施例所述的方法。
根据本公开实施例的再一方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任意一个实施例所述的方法。
本公开实施例中,通过将部署请求拆分为多个部署子请求可以充分利用集群节点中各节点的资源,减小资源的浪费,从而可以提高节点中各种资源的利用率。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本公开一些实施例的容器部署方法的流程示意图;
图2示出了从多个第二匹配节点中确定一个第二匹配节点的具体实现方式;
图3是根据本公开一些实施例的容器部署装置的结构示意图;
图4是根据本公开另一些实施例的容器部署装置的结构示意图;
图5是根据本公开又一些实施例的容器部署装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1是根据本公开一些实施例的容器部署方法的流程示意图。该方法可以由后文介绍的容器部署装置执行。
在步骤102,接收容器的部署请求,该部署请求包括容器需要的多种资源中每种资源的资源请求值。
例如,该部署请求可以包括需要的中央处理器资源(CPU)和内存资源(例如随机存储器RAM)的资源请求值。根据资源请求值,可以判断出可以将容器部署到哪个节点上,以保证容器有足够的资源来运行。
在一些实施例中,该部署请求还可以包括每种资源的资源限制值。节点上部署的容器可以依据资源限制值按照指定的方式做竞争,防止某个容器无限制地使用某种资源,从而导致其他容器崩溃。
例如,部署请求可以包括下列中的一个或多个值:
CPU资源请求值:spec.containers[].resources.requests.cpu;
内存资源请求值:spec.containers[].resources.requests.memory;
CPU资源限制值:spec.containers[].resources.limits.cpu;
内存资源限制值:spec.containers[].resources.limits.memory。
在一些实施例中,容器需要的多种资源可以包括磁盘资源和网络资源中的至少一个。也即,部署请求可以包括磁盘资源和/或网络资源的资源请求值和/或资源限制值。这样的方式可以避免容器(例如存储密集型或IO密集型容器)间由于对磁盘资源或网络资源的竞争导致的资源分配不均的情况出现,提高了资源利用率。
在步骤104,判断集群节点中是否存在与部署请求匹配的第一匹配节点。若否,即,集群节点中不存在与部署请求匹配的第一匹配节点,则执行步骤106。这里,第一匹配节点的每种资源的资源剩余值均不小于该资源的资源请求值。
例如,第一匹配节点的CPU资源的资源剩余值不小于CPU资源的资源请求值,第一匹配节点的内存资源的资源剩余值不小于内存资源的资源请求值,第一匹配节点的磁盘资源的资源剩余值不小于磁盘资源的资源请求值,第一匹配节点的网络资源的资源剩余值不小于网络资源的资源请求值。
需要指出是,集群节点中各节点可以是物理主机,也可以是虚拟机。各节点可以将自身的资源剩余情况上报给容器部署装置。
在步骤106,将部署请求拆分为多个部署子请求,每个部署子请求包括每种资源的资源子请求值,每种资源的资源子请求值包括该资源的资源请求值的不可拆分值、以及可拆分值的多个拆分请求值中的一个。
每种资源的资源请求值包括不可拆分值和可拆分值。这里,不可拆分值例如可以是保障容器中的应用运行的最低值。不可拆分值也可以称为启动资源值,可拆分值也可以称为非启动资源值。不可拆分值和可拆分值可以在用户申请部署容器时自身进行配置,也可以由容器部署装置根据不同容器的历史配置数据进行设定。
需要说明的是,可拆分值的多个拆分请求值可以相同,也可以不同。在一些实施例中,每种资源的可拆分值的多个拆分请求值中的每个拆分请求值均相同。
以内存资源为例,假设部署请求中内存资源的资源请求值为A,内存资源的资源请求值的不可拆分值为B,则可拆分值为A-B。在将部署请求拆分为2个部署子请求后,内存资源的可拆分值可以相应地包括2个拆分请求值,例如,均为(A-B)/2。每个部署子请求包括内存资源的不可拆分值B和一个拆分请求值(A-B)/2。
在步骤108,从集群节点中确定与每个部署子请求匹配的至少一个第二匹配节点。这里,第二匹配节点的每种资源的剩余值均不小于匹配的部署子请求中每种资源的资源子请求值。
例如,可以将部署请求拆分为两个部署子请求,分别为第一部署子请求和第二部署子请求。针对第一部署子请求,可以确定与之匹配的至少一个第二匹配节点。针对第二部署子请求,可以确定与之匹配的至少一个第二匹配节点。
在一些实施例中,将部署请求拆分成的部署子请求的个数越小越好。例如,如果将部署请求拆分成2个或3个部署子请求后,均可从集群节点中确定与每个部署子请求匹配的至少一个第二匹配节点,则优选将部署请求拆分成2个部署子请求。
在步骤110,在与每个部署子请求匹配的一个第二匹配节点中部署满足该部署子请求的容器。
仍以将部署请求拆分为两个部署子请求为例,可以在与第一部署子请求匹配的一个第二匹配节点中部署满足第一部署子请求的容器,在与第二部署子请求匹配的一个第二匹配节点中部署满足第二部署子请求的容器。
在一些实现方式中,与部署子请求匹配的至少一个第二匹配节点可以仅包括一个第二匹配节点,这种情况下,可以在该第二匹配节点中部署满足该部署子请求的容器。
在另一些实现方式中,与部署子请求匹配的至少一个第二匹配节点可以包括多个第二匹配节点,这种情况下,可以从多个第二匹配节点中选择(例如,可以随机选择)一个第二匹配节点来部署满足该部署子请求的容器。后文将结合图2介绍一种从多个第二匹配节点中选择一个第二匹配节点的方式。
上述实施例中,通过将部署请求拆分为多个部署子请求可以充分利用集群节点中各节点的资源,减小资源的浪费,从而可以提高节点中各种资源的利用率。
图2示出了从多个第二匹配节点中确定一个第二匹配节点的具体实现方式。
在步骤202,根据每个第二匹配节点每种资源当前的资源利用率,确定每个第二匹配节点当前的平均资源利用率。
例如,平均资源利用率avg=(sumAiXi)/n,n是资源维度,即多种资源的数量;Xi为第i种资源的利用率;Ai是第i种资源的权重。这里,第i种资源的权重可以根据第i种资源的稀缺程度来确定,或者可以采用初始默认值。
在步骤204,对多个第二匹配节点进行第一筛选,以得到当前的平均资源利用率小于预设利用率的第一组第二匹配节点。
在某些实现方式中,也可以将多个第二匹配节点按照当前的平均资源利用率从小到大的顺序进行排列,然后取排列在前的预设个数(例如多个第二匹配节点的总数量的一半)的第二匹配节点组成第一组第二匹配节点。
在步骤206,根据第一组第二匹配节点中每个第二匹配节点当前的平均资源利用率,确定第一组第二匹配节点中每个第二匹配节点当前的资源利用平衡度。资源利用平衡度反应了每个第二匹配节点中各种资源的利用是否均衡。
在一些实施例中,资源利用平衡度S例如可以为每种资源利用率与平均资源利用率的差值的平方和,即S=sum(AiXi-avg)2。当然,本公开不限于此,例如,资源利用平衡度也可以为每种资源利用率与平均资源利用率的差值的平方和与资源维度的比值。
在步骤208,对第一组第二匹配节点中的每个第二匹配节点进行第二筛选,以得到当前的资源利用平衡度小于预设平衡度的第二组第二匹配节点。
在某些实现方式中,也可以将第一组第二匹配节点中的第二匹配节点按照当前的资源利用平衡度从小到大的顺序进行排列,然后取排列在前的预设个数(例如第一组第二匹配节点的总数量的一半)的第二匹配节点组成第二组第二匹配节点。
在步骤210,根据第二组第二匹配节点中每个第二匹配节点在部署满足该部署子请求的容器后的资源利用率,确定第二组第二匹配节点中每个第二匹配节点预测的平均资源利用率。
这里,每个第二匹配节点在部署满足该部署子请求的容器后,资源利用率会相应地发生变化。根据变化后的资源利用率可以确定预测的平均资源利用率。
在步骤212,根据第二组第二匹配节点中每个第二匹配节点预测的平均资源利用率,确定第二组第二匹配节点中每个第二匹配节点预测的资源利用平衡度。
例如,可以按照上面给出的方式来确定预测的资源利用平衡度。
在步骤214,根据第二组第二匹配节点中每个第二匹配节点的当前的资源利用平衡度和预测的资源利用平衡度,确定部署满足该部署子请求的容器的第二匹配节点。
上述实施例中,根据当前的资源利用平衡度和预测的资源利用平衡度来确定选择哪一个第二匹配节点来部署容器,这样的方式有利于使得各节点的资源利用平衡度更接近,从而降低各节点的碎片资源。
在一些实现方式中,可以先计算第二组第二匹配节点中每个第二匹配节点的当前的资源利用平衡度和预测的资源利用平衡度之间的差值。然后,将差值的绝对值最大的第二匹配节点确定为部署满足该部署子请求的容器的第二匹配节点。这样的方式可以使得部署满足该部署子请求的容器的第二匹配节点的资源利用平衡度的变化更大,从而更有利于减小该第二匹配节点的碎片资源。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于装置实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
图3是根据本公开一些实施例的容器部署装置的结构示意图。如图3所示,该实施例的装置包括接收模块301、匹配模块302、拆分模块303和部署模块304。
接收模块301用于接收容器的部署请求,部署请求包括容器需要的多种资源中每种资源的资源请求值。例如,接收模块301例如可以应用程序编程接口(API)服务器。在一些实施例中,多种资源可以包括磁盘资源和网络资源中的至少一个。多种资源还可以包括CPU资源、内存资源等。
匹配模块302用于判断集群节点中是否存在与部署请求匹配的第一匹配节点,第一匹配节点的每种资源的资源剩余值均不小于该资源的资源请求值;从集群节点中确定与每个部署子请求匹配的至少一个第二匹配节点,第二匹配节点的每种资源的剩余值均不小于匹配的部署子请求中每种资源的资源子请求值。
拆分模块303用于在集群节点中不存在与部署请求匹配的第一匹配节点的情况下,将部署请求拆分为多个部署子请求,每个部署子请求包括每种资源的资源子请求值,每种资源的资源子请求值包括该资源的资源请求值的不可拆分值、以及可拆分值的多个拆分请求值中的一个。
在一些实现方式中,每种资源的可拆分值的多个拆分请求值中的每个拆分请求值相同。
部署模块304用于在与每个部署子请求匹配的一个第二匹配节点中部署满足该部署子请求的容器。
在一些实施例中,至少一个第二匹配节点包括多个第二匹配节点。部署模块304用于:根据每个第二匹配节点每种资源当前的资源利用率,确定每个第二匹配节点当前的平均资源利用率;对多个第二匹配节点进行第一筛选,以得到当前的平均资源利用率小于预设利用率的第一组第二匹配节点;根据第一组第二匹配节点中每个第二匹配节点当前的平均资源利用率,确定第一组第二匹配节点中每个第二匹配节点当前的资源利用平衡度;对第一组第二匹配节点中的每个第二匹配节点进行第二筛选,以得到当前的资源利用平衡度小于预设平衡度的第二组第二匹配节点;根据第二组第二匹配节点中每个第二匹配节点在部署满足该部署子请求的容器后的资源利用率,确定第二组第二匹配节点中每个第二匹配节点预测的平均资源利用率;根据第二组第二匹配节点中每个第二匹配节点预测的平均资源利用率,确定第二组第二匹配节点中每个第二匹配节点预测的资源利用平衡度;根据第二组第二匹配节点中每个第二匹配节点的当前的资源利用平衡度和预测的资源利用平衡度,确定部署满足该部署子请求的容器的第二匹配节点。
在一些实施例中,部署模块304用于:计算第二组第二匹配节点中每个第二匹配节点的当前的资源利用平衡度和预测的资源利用平衡度之间的差值;将差值的绝对值最大的第二匹配节点确定为部署满足该部署子请求的容器的第二匹配节点。
在一些实施例中,上述资源利用平衡度为每种资源利用率与平均资源利用率的差值的平方和。
图4是根据本公开另一些实施例的容器部署装置的结构示意图。如图4所示,该实施例的装置包括存储器401和处理器402。
存储器401可以是磁盘、闪存或其它任何非易失性存储介质。存储器401用于存储前述任意一个实施例的方法对应的指令。处理器402耦接至存储器401,可以被实施为一个或多个集成电路,例如微处理器或微控制器。处理器402用于执行存储器401中存储的指令。
图5是根据本公开又一些实施例的容器部署装置的结构示意图。如图5所示,该实施例的装置500包括存储器501和处理器502。
处理器502通过总线(BUS)503耦合至存储器501。该系统500还可以通过存储接口504连接至外部存储装置505以便调用外部数据,还可以通过网络接口506连接至网络或者外部计算机系统(未示出)。
本公开还提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现前述任意一个实施例的方法的步骤。
本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。

Claims (14)

1.一种容器部署方法,包括:
接收容器的部署请求,所述部署请求包括所述容器需要的多种资源中每种资源的资源请求值;
判断集群节点中是否存在与所述部署请求匹配的第一匹配节点,所述第一匹配节点的每种资源的资源剩余值均不小于该资源的资源请求值,每种资源的资源请求值包括不可拆分值和可拆分值,不可拆分值是保障容器中的应用运行的最低值;
若否,则将所述部署请求拆分为多个部署子请求,每个部署子请求包括每种资源的资源子请求值,每种资源的资源子请求值包括该资源的资源请求值的可拆分值的多个拆分请求值中的一个、以及不可拆分值;
从集群节点中确定与每个部署子请求匹配的至少一个第二匹配节点,所述第二匹配节点的每种资源的剩余值均不小于匹配的部署子请求中每种资源的资源子请求值;
在与每个部署子请求匹配的一个第二匹配节点中部署满足该部署子请求的容器。
2.根据权利要求1所述的方法,其中,所述至少一个第二匹配节点包括多个第二匹配节点;
所述在与每个部署子请求匹配的一个第二匹配节点中部署满足该部署子请求的容器包括:
根据每个第二匹配节点每种资源当前的资源利用率,确定每个第二匹配节点当前的平均资源利用率;
对所述多个第二匹配节点进行第一筛选,以得到当前的平均资源利用率小于预设利用率的第一组第二匹配节点;
根据所述第一组第二匹配节点中每个第二匹配节点当前的平均资源利用率,确定所述第一组第二匹配节点中每个第二匹配节点当前的资源利用平衡度;
对所述第一组第二匹配节点中的每个第二匹配节点进行第二筛选,以得到当前的资源利用平衡度小于预设平衡度的第二组第二匹配节点;
根据所述第二组第二匹配节点中每个第二匹配节点在部署满足该部署子请求的容器后的资源利用率,确定所述第二组第二匹配节点中每个第二匹配节点预测的平均资源利用率;
根据所述第二组第二匹配节点中每个第二匹配节点预测的平均资源利用率,确定所述第二组第二匹配节点中每个第二匹配节点预测的资源利用平衡度;
根据所述第二组第二匹配节点中每个第二匹配节点的当前的资源利用平衡度和预测的资源利用平衡度,确定部署满足该部署子请求的容器的第二匹配节点。
3.根据权利要求2所述的方法,其中,所述根据所述第二组第二匹配节点中每个第二匹配节点的当前的资源利用平衡度和预测的资源利用平衡度,确定部署满足该部署子请求的容器的第二匹配节点包括:
计算所述第二组第二匹配节点中每个第二匹配节点的当前的资源利用平衡度和预测的资源利用平衡度之间的差值;
将所述差值的绝对值最大的第二匹配节点确定为部署满足该部署子请求的容器的第二匹配节点。
4.根据权利要求2所述的方法,其中,所述资源利用平衡度为每种资源利用率与平均资源利用率的差值的平方和。
5.根据权利要求1所述的方法,其中,每种资源的可拆分值的多个拆分请求值中的每个拆分请求值相同。
6.根据权利要求1-5任意一项所述的方法,其中,所述多种资源包括磁盘资源和网络资源中的至少一个。
7.一种容器部署装置,包括:
接收模块,用于接收容器的部署请求,所述部署请求包括所述容器需要的多种资源中每种资源的资源请求值;
匹配模块,用于判断集群节点中是否存在与所述部署请求匹配的第一匹配节点,所述第一匹配节点的每种资源的资源剩余值均不小于该资源的资源请求值,每种资源的资源请求值包括不可拆分值和可拆分值,不可拆分值是保障容器中的应用运行的最低值;从集群节点中确定与每个部署子请求匹配的至少一个第二匹配节点,所述第二匹配节点的每种资源的剩余值均不小于匹配的部署子请求中每种资源的资源子请求值;
拆分模块,用于在集群节点中不存在与所述部署请求匹配的第一匹配节点的情况下,将所述部署请求拆分为多个部署子请求,每个部署子请求包括每种资源的资源子请求值,每种资源的资源子请求值包括该资源的资源请求值的可拆分值的多个拆分请求值中的一个、以及不可拆分值;
部署模块,用于在与每个部署子请求匹配的一个第二匹配节点中部署满足该部署子请求的容器。
8.根据权利要求7所述的装置,其中,所述至少一个第二匹配节点包括多个第二匹配节点;
所述部署模块用于:
根据每个第二匹配节点每种资源当前的资源利用率,确定每个第二匹配节点当前的平均资源利用率;
对所述多个第二匹配节点进行第一筛选,以得到当前的平均资源利用率小于预设利用率的第一组第二匹配节点;
根据所述第一组第二匹配节点中每个第二匹配节点当前的平均资源利用率,确定所述第一组第二匹配节点中每个第二匹配节点当前的资源利用平衡度;
对所述第一组第二匹配节点中的每个第二匹配节点进行第二筛选,以得到当前的资源利用平衡度小于预设平衡度的第二组第二匹配节点;
根据所述第二组第二匹配节点中每个第二匹配节点在部署满足该部署子请求的容器后的资源利用率,确定所述第二组第二匹配节点中每个第二匹配节点预测的平均资源利用率;
根据所述第二组第二匹配节点中每个第二匹配节点预测的平均资源利用率,确定所述第二组第二匹配节点中每个第二匹配节点预测的资源利用平衡度;
根据所述第二组第二匹配节点中每个第二匹配节点的当前的资源利用平衡度和预测的资源利用平衡度,确定部署满足该部署子请求的容器的第二匹配节点。
9.根据权利要求8所述的装置,其中,所述部署模块用于:
计算所述第二组第二匹配节点中每个第二匹配节点的当前的资源利用平衡度和预测的资源利用平衡度之间的差值;
将所述差值的绝对值最大的第二匹配节点确定为部署满足该部署子请求的容器的第二匹配节点。
10.根据权利要求8所述的装置,其中,所述资源利用平衡度为每种资源利用率与平均资源利用率的差值的平方和。
11.根据权利要求7所述的装置,其中,每种资源的可拆分值的多个拆分请求值中的每个拆分请求值相同。
12.根据权利要求7-11任意一项所述的装置,其中,所述多种资源包括磁盘资源和网络资源中的至少一个。
13.一种容器部署装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如权利要求1-6任意一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如权利要求1-6任意一项所述的方法。
CN201810747771.5A 2018-07-10 2018-07-10 容器部署方法和装置 Active CN110704175B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810747771.5A CN110704175B (zh) 2018-07-10 2018-07-10 容器部署方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810747771.5A CN110704175B (zh) 2018-07-10 2018-07-10 容器部署方法和装置

Publications (2)

Publication Number Publication Date
CN110704175A CN110704175A (zh) 2020-01-17
CN110704175B true CN110704175B (zh) 2022-08-02

Family

ID=69192206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810747771.5A Active CN110704175B (zh) 2018-07-10 2018-07-10 容器部署方法和装置

Country Status (1)

Country Link
CN (1) CN110704175B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113473488B (zh) * 2021-07-02 2024-01-30 福建晶一科技有限公司 一种基于容器的cu与mec共平台部署方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103957270A (zh) * 2014-05-12 2014-07-30 武大吉奥信息技术有限公司 一种云原子单元投递与部署的方法及装置
CN104536832A (zh) * 2015-01-21 2015-04-22 北京邮电大学 一种虚拟机部署方法
CN104598316A (zh) * 2014-12-25 2015-05-06 华为技术有限公司 一种存储资源分配方法及装置
CN104834569A (zh) * 2015-05-11 2015-08-12 北京京东尚科信息技术有限公司 一种基于应用类型的集群资源调度方法及系统
CN107861794A (zh) * 2017-11-13 2018-03-30 郑州云海信息技术有限公司 一种在云计算系统中建立虚拟机的方法和装置
CN108108239A (zh) * 2017-12-29 2018-06-01 咪咕文化科技有限公司 一种业务功能的提供方法、装置及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8793684B2 (en) * 2011-03-16 2014-07-29 International Business Machines Corporation Optimized deployment and replication of virtual machines

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103957270A (zh) * 2014-05-12 2014-07-30 武大吉奥信息技术有限公司 一种云原子单元投递与部署的方法及装置
CN104598316A (zh) * 2014-12-25 2015-05-06 华为技术有限公司 一种存储资源分配方法及装置
CN104536832A (zh) * 2015-01-21 2015-04-22 北京邮电大学 一种虚拟机部署方法
CN104834569A (zh) * 2015-05-11 2015-08-12 北京京东尚科信息技术有限公司 一种基于应用类型的集群资源调度方法及系统
CN107861794A (zh) * 2017-11-13 2018-03-30 郑州云海信息技术有限公司 一种在云计算系统中建立虚拟机的方法和装置
CN108108239A (zh) * 2017-12-29 2018-06-01 咪咕文化科技有限公司 一种业务功能的提供方法、装置及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Interference-Aware Component Scheduling for Reducing Tail Latency in Cloud Interactive Services;Rui Han,Junwei Wang,Siguang Huang;《IEEE Xplore》;20150723;全文 *
基于资源拆分的虚拟网络功能服务链映射算法;刘鎏,虞红芳;《计算机应用研究》;20160815;第33卷(第8期);全文 *

Also Published As

Publication number Publication date
CN110704175A (zh) 2020-01-17

Similar Documents

Publication Publication Date Title
CN110806920B (zh) 镜像部署方法、装置
US11768706B2 (en) Method, storage medium storing instructions, and apparatus for implementing hardware resource allocation according to user-requested resource quantity
CN106775470B (zh) 一种数据存储的方法及系统
WO2016202154A1 (zh) 一种gpu资源的分配方法及系统
CN108028806B (zh) 网络功能虚拟化nfv网络中分配虚拟资源的方法和装置
CN110704175B (zh) 容器部署方法和装置
CN106855825B (zh) 一种任务处理方法及其装置
CN111130834B (zh) 一种网络弹性策略的处理方法及装置
CN114244642B (zh) 设备的控制方法及其装置、计算机可读存储介质、处理器
CN109697117B (zh) 终端控制方法、装置以及计算机可读存储介质
CN111382141B (zh) 主从架构配置方法、装置、设备以及计算机可读存储介质
CN109491775B (zh) 一种用于边缘计算环境下的任务处理与调度方法
CN108647090B (zh) 一种资源分配方法及装置、服务器集群
TWI522921B (zh) 虛擬機器建立系統以及方法
CN110545332A (zh) 服务器集群均衡方法及系统
CN114116187B (zh) 容器资源动态扩容方法和装置
CN111338803A (zh) 一种线程处理方法和装置
CN105760209B (zh) 移除虚拟机的方法、装置与自动弹性群组
CN107689979B (zh) 一种下载请求处理方法和处理设备
CN111158896A (zh) 一种分布式进程调度方法及系统
CN113032092B (zh) 分布式计算方法、装置及平台
JP6463797B2 (ja) 構造変異検出方法、デバイス及びシステム
CN104267803A (zh) 信息处理方法及电子设备
CN108804225B (zh) 一种虚拟机负载调控方法和装置
CN113467901A (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
GR01 Patent grant
GR01 Patent grant