1.本公开涉及新兴信息技术领域,尤其涉及一种容器迁移方法、系统和存储介质。
背景技术:2.在云原生场景下,云数据中心内部承载各类云业务的容器通常由容器管理平台统一调度。容器管理平台在节点上创建容器时,只考虑节点的资源是否满足容器的需求,没有考虑在容器资源不变的情况下业务网络负载变化对虚机业务质量的影响,容易导致不同节点之间容器分配不均,影响业务质量。
技术实现要素:3.本公开要解决的一个技术问题是,提供一种容器迁移方法、系统和存储介质,能够降低容器间网络通信损耗,优化容器集群内的容器分布。
4.根据本公开一方面,提出一种容器迁移方法,包括:根据各个节点的网络流量,确定网络过载节点;计算网络过载节点内每个待迁移容器与全局网络中其他容器之间的总网络流量相关度;以及按照总网络流量相关度由小到大的顺序,依次为待迁移容器确定目标节点,并将待迁移容器迁移到目标节点。
5.在一些实施例中,计算网络过载节点内每个待迁移容器与全局网络中其他容器之间的总网络流量相关度包括:计算每个待迁移容器与同节点的所有容器的第一网络流量相关度;计算每个待迁移容器与同交换机的其他节点的所有容器的第二网络流量相关度;计算每个待迁移容器与跨交换机的节点的所有容器的第三网络流量相关度;以及根据第一网络流量相关度、第二网络流量相关度和第三网络流量相关度,确定总网络流量相关度。
6.在一些实施例中,根据第一网络流量相关度、第二网络流量相关度和第三网络流量相关度,确定总网络流量相关度包括:获取第一网络流量相关度对应的第一权重,第二网络流量相关度对应的第二权重,第三网络流量相关度对应的第三权重;以及根据第一网络流量相关度、第一权重、第二网络流量相关度、第二权利、第三网络流量相关度和第三权重,计算总网络流量相关度。
7.在一些实施例中,第一权重和第二权重为正权重,第三权重为负权重,且第一权重大于第二权重。
8.在一些实施例中,为待迁移容器确定目标节点包括:在待迁移容器相关度最高的容器所在节点连接的交换机所连接的节点中,选择目标节点。
9.在一些实施例中,选择目标节点包括:若与待迁移容器相关度最高的容器所在节点的资源,能够满足待迁移容器所需资源,则目标节点为与待迁移容器相关度最高的容器所在节点;以及若与待迁移容器相关度最高的容器所在节点的资源,不能够满足待迁移容器所需资源,则目标节点为与待迁移容器相关度最高的容器所在节点连接的交换机所连接的节点中,资源利用率最低的节点。
10.在一些实施例中,选择目标节点包括:若在与待迁移容器相关度最高的容器中,存
在多个具有相同相关度的容器,则在多个具有相同相关度的容器中,选择与待迁移容器网络拓扑距离最近的容器,作为目标节点。
11.在一些实施例中,若不存在与待迁移容器具有网络流量相关度的容器,则选择资源利用率最低的节点作为目标节点。
12.在一些实施例中,网络过载节点为网络流量大于流量阈值的节点。
13.根据本公开的另一方面,还提出一种容器迁移系统,包括:网络过载节点确定单元,被配置为根据各个节点的网络流量,确定网络过载节点;相关度计算单元,被配置为计算网络过载节点内每个待迁移容器与全局网络中其他容器之间的总网络流量相关度;以及目标节点确定单元,被配置为按照总网络流量相关度由小到大的顺序,依次为待迁移容器确定目标节点,以将待迁移容器迁移到目标节点。
14.根据本公开的另一方面,还提出一种容器迁移系统,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器的指令执行如上述的容器迁移方法。
15.根据本公开的另一方面,还提出一种非瞬时性计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如上述的容器迁移方法。
16.本公开实施例中,以网络性能为指标,确定网络过载节点,然后基于网络流量相关度,依次为网络过载节点内的待迁移容器选择迁移目标节点,能够降低容器间网络通信损耗,优化容器集群内的容器分布,提高业务质量。
17.通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
18.构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
19.参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
20.图1为本公开的容器迁移方法的一些实施例的流程示意图;
21.图2为本公开的容器迁移方法的另一些实施例的流程示意图;
22.图3为本公开的容器迁移系统的一些实施例的结构示意图;以及
23.图4为本公开的容器迁移系统的另一些实施例的结构示意图。
具体实施方式
24.现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
25.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
26.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
27.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
28.在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
29.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
30.为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
31.图1为本公开的容器迁移方法的一些实施例的流程示意图。
32.在步骤110,根据各个节点的网络流量,确定网络过载节点。
33.在一些实施例中,网络过载节点为网络流量大于流量阈值的节点。
34.单一节点内容器的业务网络流量,随着用户规模的变化而随之改变,当节点业务网络负载过大时,会对节点内容器的服务质量产生影响,甚至造成业务中断。该实施例中,当该节点的网络流量大于依据节点实际带宽设定的阈值时,判定该节点为业务网络过载节点。
35.在步骤120,计算网络过载节点内每个待迁移容器与全局网络中其他容器之间的总网络流量相关度。
36.在一些实施例中,计算每个待迁移容器与同节点的各容器之间,与同交换机其它节点内的容器之间,以及跨交换机节点的容器之间三类情况的网络流量相关度,进而得到每个待迁移容器与全局网络中其他容器之间的总网络流量相关度。总相关度越小表示该容器与节点内容器或同交换机下的节点内容器流量相关度越小、与网络拓扑距离较远的节点网络流量相关度越高,在待迁移容器队列中的优先级越高。
37.在步骤130,按照总网络流量相关度由小到大的顺序,依次为待迁移容器确定目标节点,并将待迁移容器迁移到目标节点。
38.在一些实施例中,优先为优先级最高的待迁移容器选择迁移目标节点,在可满足资源需求的情况下,选择与待迁移容器相关度最高的容器所在节点,或者在所在节点连接的交换机所连接的节点中,选择目标节点。相关度小的容器优先迁移,能够尽量减少网络流量。
39.在上述实施例中,以网络性能为指标,确定网络过载节点,然后基于网络流量相关度,依次为网络过载节点内的待迁移容器选择迁移目标节点,能够降低容器间网络通信损耗,优化容器集群内的容器分布。
40.图2为本公开的容器迁移方法的另一些实施例的流程示意图。
41.在步骤210,监测各节点的网络流量。
42.在一些实施例中,在容器管理平台的监控模块的网络性能监控子模块中,对各节点、各时段的业务网络流量进行监控。在资源利用率不变的情况下,解决容器因业务网络流量变化而造成的节点网络拥塞,进而影响节点内的容器业务、甚至出现中断的问题,保证节点的业务网络负载始终满足业务所需。
43.在步骤220,判断是否有节点的网络流量大于阈值,若是,则执行步骤230,否则,继续监测。
44.在该步骤中,将监控采集网络流量与依据节点实际带宽设定的阈值进行比较。
45.在步骤230,将网络流量大于阈值的节点作为网络过载节点,并将该网络过载节点
加入业务网络过载节点队列。
46.后续对业务网络过载节点队列中节点内的容器进行迁移。
47.在步骤240,计算网络过载节点内每个待迁移容器与全局网络中其他容器之间的总网络流量相关度。
48.在一些实施例中,计算每个待迁移容器与同节点的其他所有容器的第一网络流量相关度。
49.先计算该待迁移容器与同节点的其他每个容器之间的相关度,然后,将该待迁移容器与同节点的其他每个容器之间的相关度进行加和,得到第一网络流量相关度。
50.例如,在网络过载节点内,遍历所有容器,记当前容器为container[i],嵌套遍历过载节点中其他容器container[j],i≠j。container[i]与container[j]间的相关度cr[i][j],为container[i]与container[j]间通信的网络流量,占container[i]所有通信网络流量的占比。若container[i]与container[j]之间没有通信,则记cr[i][j]为0。进而计算container[i]的总网络流量相关度cr[i]=∑
j!=i
cr[i][j],即将该container[i]与每个容器之间的网络流量相关度之和,作为第一网络流量相关度。
[0051]
在一些实施例中,计算每个待迁移容器与同交换机的其他节点的所有容器的第二网络流量相关度。
[0052]
先计算该待迁移容器与同交换机其他每个节点的每个容器之间的相关度;针对每个节点,将该待迁移容器与该节点内每个容器之间的相关度进行加和,得到该待迁移容器与该节点的相关度;针对该交换机,将该待迁移容器与每个节点的相关度进行加和,得到第二网络流量相关度。
[0053]
例如,在计算过载节点node的容器与同交换机的其他节点的容器之间的总网络流量相关度sr时,在过载节点内遍历所有容器,当前容器记为container[i],嵌套遍历同交换机的其他节点的所有容器,其中,其他节点记为node[k],其中node[k]≠node,其他节点的容器记为container[j]。container[i]与node[k]的container[j]间的相关度sr[i][k][j],为container[i]与container[j]间通信的网络流量,占container[i]所有通信网络流量的占比。若container[i]与container[j]之间没有通信,则记cr[i][j]为0。再计算container[i]与node[k]节点所有容器的总网络流量相关度sr[i][k]=∑jsr[i][k][j]。最后,计算container[i]与所在节点node同交换机的所有其他节点的总网络流量相关度sr[i]=∑
node[k]≠node
sr[i][k]。
[0054]
在一些实施例中,计算每个待迁移容器与跨交换机的节点的所有容器的第三网络流量相关度。
[0055]
先计算该待迁移容器与其他每个交换机的每个节点内每个容器之间相关度;针对其他每个交换机的每个节点,将该待迁移容器与该节点内每个容器之间的相关度进行加和,得到该待迁移容器与该节点的相关度;针对每个交换机,将该待迁移容器与该交换机内每个节点的相关度进行加和,得到该待迁移容器与该交换机的相关度;最后,将该待迁移容器与每个交换机的相关度进行加和,得到第三网络流量相关度。
[0056]
例如,计算过载节点node的容器与跨交换机节点内的容器之间的总网络流量相关度snr时,在过载节点内遍历所有容器,当前容器记为container[i],嵌套遍历不同交换机的所有节点的所有容器,其中,当前的不同交换机记为switch[p],switch[p]与过载节点
node的交换机switch不同,当前节点记为node[k],当前节点的容器记为container[j]。container[i]与switch[p]的node[k]的container[j]间的相关度snr[i][p][k][j],为container[i]与container[j]间通信的网络流量,占container[i]所有通信网络流量的占比。若container[i]与container[j]之间没有通信,则记cr[i][j]为0。再计算container[i]与交换机switch[p]的节点node[k]下的所有容器的总网络流量相关度snr[i][p][k]=∑jsnr[i][p][k][j]。再计算container[i]与switch[p]的总网络流量相关度snr[i][p]=∑
switch[p]≠switch
snr[i][p][k],最后,计算container[i]与所在节点node的所有不同交换机下所有节点的所有容器的总网络流量相关度snr[i]=∑
p
snr[i][p]。
[0057]
在一些实施例中,根据第一网络流量相关度、第二网络流量相关度和第三网络流量相关度,确定总网络流量相关度。
[0058]
在一些实施例中,获取第一网络流量相关度对应的第一权重,第二网络流量相关度对应的第二权重,第三网络流量相关度对应的第三权重;根据第一网络流量相关度、第一权重、第二网络流量相关度、第二权利、第三网络流量相关度和第三权重,计算总网络流量相关度。
[0059]
例如,总网络流量相关度r为k1*cr+k2*sr+k3*snr。其中,k1、k2、k3分别为第一权重、第二权重和第三权重。第一权重和第二权重为正权重,第三权重为负权重,且第一权重大于第二权重。例如,k1为2,k2为1,k3为-1。
[0060]
当两个容器位于同一个节点内容时,网络通信损耗最低,赋予高权重的正相关度;当两个容器位于不同节点,但所在节点连接同一个交换机时,网络通信损耗较低,赋予一般权重的正相关度;当两个容器位于不同节点且所在节点连接不同交换机时,网络通信损耗较高,赋予负相关度。总相关度越小表示该容器与节点内容器或同交换机下的节点内容器流量相关度越小、与网络拓扑距离较远的节点网络流量相关度越高,在待迁移容器队列中的优先级越高。
[0061]
上述步骤中,计算网络流量相关度,定量描述容器间通信关系的特征,作为后续迁移的优先级排序标准,在不增加容器间通信损耗的前提下实现待迁移容器的最佳选择,能够适用于容器间网络流量较大的情况。
[0062]
在步骤250,按照总网络流量相关度由小到大的顺序,将待迁移容器加入待迁移容器队列。
[0063]
在一些实施例中,先迁移相关度小的容器,能够减少网络流量。
[0064]
在步骤260,依次为每个待迁移容器选择目标节点。
[0065]
在一些实施例中,在待迁移容器相关度最高的容器所在节点连接的交换机所连接的节点中,选择目标节点。例如,若与待迁移容器相关度最高的容器所在节点的资源,能够满足待迁移容器所需资源,则目标节点为与待迁移容器相关度最高的容器所在节点;以及若与待迁移容器相关度最高的容器所在节点的资源,不能够满足待迁移容器所需资源,则目标节点为与待迁移容器相关度最高的容器所在节点连接的交换机所连接的节点中,资源利用率最低的节点。
[0066]
在一些实施例中,选择待迁移容器队列中总相关度r最小的容器,记为container[i],进行迁移。迁移目标节点的选择策略分三种情况讨论。
[0067]
一种情况为:container[i]网络流量相关度最高的容器container[j],在与
container[i]所在节点连接的交换机的不同交换机switch[p]连接的节点node[k]上,则迁移目标节点在switch[p]连接的节点中。若container[j]所在节点node[k]的资源可以满足container[i]所需,则选择节点node[k]为迁移目标节点;若node[k]的资源不能满足container[i]所需,则选择switch[p]连接的节点中资源利用率最低的节点作为迁移目标节点。
[0068]
另一种情况为:container[i]网络流量相关度最高的容器container[j]所在节点和container[i]所在节点连接同一个交换机switch,则迁移目标节点在switch[p]连接的节点中。若container[j]所在节点的剩余资源可以满足container[i]所需,则将container[j]所在节点作为迁移目标节点;否则,选择switch连接的节点中资源利用率最低的节点作为迁移目标节点。
[0069]
在一种情况为:container[i]网络流量相关度最高的容器container[j]不存在,即container[i]与其他容器没有网络流量相关度,则选择当前容器集群范围内资源利率用最小的节点作为迁移目标节点。
[0070]
在一些实施例中,若在与待迁移容器相关度最高的容器中,存在多个具有相同相关度的容器,则在多个具有相同相关度的容器中,选择与待迁移容器网络拓扑距离最近的容器,作为目标节点。
[0071]
相关技术中,没有考虑容器之间的流量,可能会导致容器之间网络拓扑距离变远从而增加网络通信损耗,进而影响业务质量。该实施例,利用网络拓扑距离最小策略,为待迁移容器选择目标节点,能够最大化降低网络流量相关度紧密的容器间网络拓扑距离,优化容器集群内的容器分布。
[0072]
在步骤270,将待迁移容器迁移到目标节点。后续继续执行步骤220,直至过载节点的网络流量小于等于阈值时停止。
[0073]
在上述实施例中,对节点业务网络流量进行实时监测与反馈,实现在容器资源不变的情况下,有效避免因业务网络流量过高而造成业务质量下降甚至是业务中断的问题。对容器之间的多维度网络流量相关度进行整合,在不增加容器间通信损耗的前提下实现待迁移容器的最佳选择,降低容器间网络通信损耗,优化容器集群内的容器分布,在保证业务服务能力的同时,提升业务服务水平。
[0074]
图3为本公开的容器迁移系统的一些实施例的结构示意图,该系统包括网络过载节点确定单元310、相关度计算单元320和目标节点确定单元330。
[0075]
网络过载节点确定单元310被配置为根据各个节点的网络流量,确定网络过载节点。
[0076]
在一些实施例中,网络过载节点为网络流量大于流量阈值的节点。该流量阈值根据节点实际带宽设定。
[0077]
相关度计算单元320被配置为计算网络过载节点内每个待迁移容器与全局网络中其他容器之间的总网络流量相关度。
[0078]
在一些实施例中,计算每个待迁移容器与同节点的其他所有容器的第一网络流量相关度。
[0079]
例如,先计算该待迁移容器与同节点的其他每个容器之间的相关度,然后,将该待迁移容器与同节点的其他每个容器之间的相关度进行加和,得到第一网络流量相关度。
[0080]
在一些实施例中,计算每个待迁移容器与同交换机的其他节点的所有容器的第二网络流量相关度。
[0081]
例如,先计算该待迁移容器与同交换机其他每个节点的每个容器之间的相关度;针对每个节点,将该待迁移容器与该节点内每个容器之间的相关度进行加和,得到该待迁移容器与该节点的相关度;针对该交换机,将该待迁移容器与每个节点的相关度进行加和,得到第二网络流量相关度。
[0082]
在一些实施例中,计算每个待迁移容器与跨交换机的节点的所有容器的第三网络流量相关度。
[0083]
例如,先计算该待迁移容器与其他每个交换机的每个节点内每个容器之间相关度;针对其他每个交换机的每个节点,将该待迁移容器与该节点内每个容器之间的相关度进行加和,得到该待迁移容器与该节点的相关度;针对每个交换机,将该待迁移容器与该交换机内每个节点的相关度进行加和,得到该待迁移容器与该交换机的相关度;最后,将该待迁移容器与每个交换机的相关度进行加和,得到第三网络流量相关度。
[0084]
在一些实施例中,根据第一网络流量相关度、第二网络流量相关度和第三网络流量相关度,确定总网络流量相关度。
[0085]
在一些实施例中,获取第一网络流量相关度对应的第一权重,第二网络流量相关度对应的第二权重,第三网络流量相关度对应的第三权重;根据第一网络流量相关度、第一权重、第二网络流量相关度、第二权利、第三网络流量相关度和第三权重,计算总网络流量相关度。第一权重和第二权重为正权重,第三权重为负权重,且第一权重大于第二权重。
[0086]
总相关度越小表示该容器与节点内容器或同交换机下的节点内容器流量相关度越小、与网络拓扑距离较远的节点网络流量相关度越高,在待迁移容器队列中的优先级越高。
[0087]
目标节点确定单元330被配置为按照总网络流量相关度由小到大的顺序,依次为待迁移容器确定目标节点,以将待迁移容器迁移到目标节点。
[0088]
在一些实施例中,在待迁移容器相关度最高的容器所在节点连接的交换机所连接的节点中,选择目标节点。例如,若与待迁移容器相关度最高的容器所在节点的资源,能够满足待迁移容器所需资源,则目标节点为与待迁移容器相关度最高的容器所在节点;以及若与待迁移容器相关度最高的容器所在节点的资源,不能够满足待迁移容器所需资源,则目标节点为与待迁移容器相关度最高的容器所在节点连接的交换机所连接的节点中,资源利用率最低的节点。
[0089]
在一些实施例中,若在与待迁移容器相关度最高的容器中,存在多个具有相同相关度的容器,则在多个具有相同相关度的容器中,选择与待迁移容器网络拓扑距离最近的容器,作为目标节点。
[0090]
在一些实施例中,若不存在与待迁移容器具有网络流量相关度的容器,则选择资源利用率最低的节点作为目标节点。
[0091]
在上述实施例中,以网络性能为指标,确定网络过载节点,然后基于网络流量相关度,依次为网络过载节点内的待迁移容器选择迁移目标节点,能够降低容器间网络通信损耗,优化容器集群内的容器分布。
[0092]
图4为本公开的容器迁移系统的另一些实施例的结构示意图。该系统包括400存储
器410和处理器420。其中:存储器410可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储上述实施例中的指令。处理器420耦接至存储器410,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器420用于执行存储器中存储的指令。
[0093]
在一些实施例中,处理器420通过bus总线430耦合至存储器410。该系统400还可以通过存储接口440连接至外部存储系统450以便调用外部数据,还可以通过网络接口460连接至网络或者另外一台计算机系统(未标出)。此处不再进行详细介绍。
[0094]
在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,能够降低容器间网络通信损耗,优化容器集群内的容器分布。
[0095]
在另一些实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0096]
本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0097]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0098]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0099]
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
[0100]
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。