一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

容器资源动态扩容方法和装置与流程

2022-03-01 20:23:10 来源:中国专利 TAG:


1.本公开安全领域,尤其涉及一种容器资源动态扩容方法和装置。


背景技术:

2.mec(multi-access edge computing,多接入边缘计算)通过将应用部署到边缘,就近提供服务,创造出一个高性能、低延迟与高带宽的运营商级服务环境,加速网络中各项内容、服务及应用的快速下载,不仅为运营商节约了资源,还给用户带来了不间断的高质量的网络体验,给运营商带来了经济价值。
3.mec系统采用容器技术实现,并使用k8s统一管理编排容器。k8s以pod(容器集合)为单位分配资源,现有容器资源动态扩容方案是基于pod资源使用信息,依据不同的算法判断是否有扩容需求,采取不同的算法计算扩容值并重新分配资源方式保证pod上服务的可用性。但没有考虑可能存在非法扩容挤占其他pod资源,影响可用性的场景。


技术实现要素:

4.本公开要解决的一个技术问题是,提供一种容器资源动态扩容方法和装置,能够实现容器资源合理动态扩容。
5.根据本公开一方面,提出一种容器资源动态扩容方法,包括:根据容器集合pod预定扩容时间间隔内的扩容量,计算pod的单位时间的扩容量;判断pod的单位时间的扩容量是否大于阈值;以及若pod的单位时间的扩容量大于阈值,则拒绝对pod扩容,否则,允许对pod扩容。
6.在一些实施例中,阈值根据pod的cpu资源、内存资源、应用种类中的至少一项确定。
7.在一些实施例中,根据pod的历史扩容信息,确定pod前次扩容后的总体资源量和系统时间;根据pod前次扩容后的总体资源量和当前次准备扩容后的总体资源量,确定pod的扩容量;根据pod前次扩容时的系统时间和当前次准备扩容时的系统时间,确定pod的扩容时间间隔;以及将pod的扩容量与扩容时间间隔的比值,作为述pod的单位时间的扩容量。
8.在一些实施例中,总体资源量为pod实例数和每个pod实例的资源量的数乘向量运算之积。
9.根据本公开的另一方面,还提出一种容器资源动态扩容装置,包括:扩容量确定单元,被配置为根据容器集合pod预定扩容时间间隔内的扩容量,计算pod的单位时间的扩容量;扩容量比较单元,被配置为判断pod的单位时间的扩容量是否大于阈值;以及扩容执行单元,被配置为若pod的单位时间的扩容量大于阈值,则拒绝对pod扩容,否则,允许对pod扩容。
10.在一些实施例中,阈值根据pod的cpu资源、内存资源、应用种类中的至少一项确定。
11.在一些实施例中,扩容量确定单元被配置为根据pod的历史扩容信息,确定pod前
次扩容后的总体资源量和系统时间;根据pod前次扩容后的总体资源量和当前次准备扩容后的总体资源量,确定pod的扩容量;根据pod前次扩容时的系统时间和当前次准备扩容时的系统时间,确定pod的扩容时间间隔;以及将pod的扩容量与扩容时间间隔的比值,作为述pod的单位时间的扩容量。
12.在一些实施例中,总体资源量为pod实例数和每个pod实例的资源量的数乘向量运算之积。
13.根据本公开的另一方面,还提出一种容器资源动态扩容装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器的指令执行如上述的容器资源动态扩容方法。
14.根据本公开的另一方面,还提出一种非瞬时性计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如上述的容器资源动态扩容方法。
15.本公开实施例中,通过计算pod单位时间内的扩容量,并与阈值进行比较,判断扩容需求是否正常,实现了容器资源合理动态扩容,避免非法扩容,造成挤占其他pod资源,导致其他pod上服务不可用现象,提升mec系统的安全性和用户体验。
16.通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
17.构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
18.参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
19.图1为本公开的容器资源动态扩容方法的一些实施例的流程示意图。
20.图2为本公开的容器资源动态扩容方法的一些实施例的流程示意图。
21.图3为本公开的容器资源动态扩容装置的一些实施例的结构示意图。
22.图4为本公开的容器资源动态扩容装置的另一些实施例的结构示意图。
具体实施方式
23.现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
24.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
25.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
26.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
27.在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
28.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一
个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
29.为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
30.图1为本公开的容器资源动态扩容方法的一些实施例的流程示意图。
31.在步骤110,根据pod预定扩容时间间隔内的扩容量,计算pod的单位时间的扩容量。
32.在一些实施例中,根据pod的历史扩容信息,确定pod前次扩容后的总体资源量和系统时间;根据pod前次扩容后的总体资源量和当前次准备扩容后的总体资源量,确定pod的扩容量;根据pod前次扩容时的系统时间和当前次准备扩容时的系统时间,确定pod的扩容时间间隔。pod的扩容量与扩容时间间隔的比值为单位时间的扩容量,单位时间的扩容量可以定义为扩容频率值。
33.在步骤120,判断pod的单位时间的扩容量是否大于阈值。
34.在一些实施例中,阈值根据pod的cpu资源、内存资源、应用种类中的至少一项确定。
35.例如,有些场景下,仅考虑cpu利用率;有些场景下,仅考虑内容使用率;有些场景下,仅考虑应用种类;有些场景下,即考虑cpu利用率,又考虑内存利用率。
36.在一些实施例中,根据mec系统资源情况和mec系统对时延的要求决定阈值是动态变化的还是静态的。如果系统资源量很充足且对时延要求低,那么可以采用动态变化的方式,此时可以通过机器学习等的方法得到阈值的具体数值。否则可以采用静态的方式,在系统上线运行时规定阈值大小,系统运行时不改变阈值,如果要改变,则使系统停止后修改阈值。此时,可以人工根据经验或试验结果配阈值。
37.在步骤130,若pod的单位时间的扩容量大于阈值,则拒绝对pod扩容,否则,允许对pod扩容。
38.在一些实施例中,若单位时间的扩容量大于阈值,则说明本次扩容行为存疑,拒绝pod扩容请求,否则,说明此次扩容需求合理,可使用一定的方法对pod进行扩容。
39.在上述实施例中,通过计算pod单位时间内的扩容量,并与阈值进行比较,判断扩容需求是否正常,实现了容器资源合理动态扩容。
40.图2为本公开的容器资源动态扩容方法的一些实施例的流程示意图。该实施例由容器资源动态扩容装置执行,该容器资源动态扩容装置位于管理节点。
41.在步骤210,针对pod历史扩容信息定义pod总体资源量和系统时间表k。k=(c
pod
,t
pod
),其中c
pod
表示pod的总体资源量,为pod实例数和每个pod实例的资源量的数乘向量运算之积,初始值为单个pod的资源量;pod资源量应是一个一维或多维向量,例如,为包括了pod的cpu资源、内存资源等资源的多维向量;t
pod
为上次pod扩容的管理节点系统时间,初始值为pod创建时间。
42.在一些实施例中,k8s启动某一pod提供服务时,在管理节点master初始化该pod对应的表k,依据定义pod资源的yaml文件初始化向量c
pod
,并依据创建pod的master系统时间初始化t
pod

43.在一些实施例中,若只考虑内存,此时c
pod
是一个一维向量,若考虑内存和cpu,此时c
pod
是一个二维向量。
44.在步骤220,结合pod资源使用情况决定对pod进行扩容,依据动态调整算法计算出pod扩容后的总体资源量,例如,扩容至c
i 1

45.在一些实施例中,驻留在node节点中的监控程序持续监控pod的资源使用情况并报告给manager节点进行分析。若manager节点决定对pod进行扩容,并依据一定的动态调整算法计算出应扩容至c
i 1

46.本公开并不对动态调整算法进行限定,可根据相关算法计算出pod扩容后的总体资源量。例如,若限定cpu的使用率为25%,采集pod的cpu指标,然后根据聚合算法计算此时的cpu使用率,若大于25%,则增加pod的实例数,使得cpu使用率低于25%。
47.在步骤230,取出该pod的pod总体资源量和系统时间表k和系统时间t
i 1

48.在步骤240,计算此时的pod的单位时间内的扩容量。
49.在一些实施例中,计算单位时间内的扩容量的公式为:c

=c
i 1-c
pod
,t

=t
i 1-t
pod

50.在步骤250,判断计算出的单位时间内的扩容量是否大于阈值,若是,则执行步骤260,否则,执行步骤270。
51.在步骤260,拒绝扩容请求。
52.若单位时间内的扩容量大于阈值,则说明该pod存在短时间内多次大量扩容行为,本次扩容行为存疑,拒绝扩容请求,并加强监控该pod。
53.在步骤270,允许pod扩容。
54.若单位时间内的扩容量小于等于阈值,则说明本次扩容需求合理,应调整pod资源。在扩容完成后,更新pod总体资源量和系统时间表k,c
pod
=c
i 1
,t
pod
=t
i 1

55.在上述实施例中,对已有容器资源动态扩容方法进行改进,在自动扩容之前判断扩容需求是否合理,避免非法扩容,造成挤占其他pod资源,导致其他pod上服务不可用现象,提升mec系统的安全性和用户体验。
56.本公开适用于pod容器资源的水平扩容和垂直扩容场景。pod的水平扩容是通过增加pod的实例数实现的,如从1个pod增加到3个pod,新增的2个pod是复制了第一个pod的资源,这3个pod一起发挥原来单个pod的功能。pod的垂直扩容是增加pod自身的资源,如增加单个pod的内存、cpu等。由于本公开定义总体资源量为pod实例数和每个pod实例的资源量的数乘向量运算之积,则说明本公开适用这两种扩容场景。例如,在只考虑pod内存和cpu的情况下,扩容前只有1个pod,内存为1,cpu为2,c
pod
=1*(1,2)=(1,2)。如果是水平扩容,有2个pod,则扩容后的c
pod
=2*(1,2)=(2,4);如果是垂直扩容,将内存从1扩容到2,cpu不变,则扩容后的c
pod
=1*(2,2)=(2,2)。
57.图3为本公开的容器资源动态扩容装置的一些实施例的结构示意图。该装置包括扩容量确定单元310、扩容量比较单元320、扩容执行单元330。
58.扩容量确定单元310被配置为根据容器集合pod预定扩容时间间隔内的扩容量,计算pod的单位时间的扩容量。
59.在一些实施例中,根据pod的历史扩容信息,确定pod前次扩容后的总体资源量和系统时间;根据pod前次扩容后的总体资源量和当前次准备扩容后的总体资源量,确定pod的扩容量;根据pod前次扩容时的系统时间和当前次准备扩容时的系统时间,确定pod的扩
容时间间隔;以及将pod的扩容量与扩容时间间隔的比值,作为述pod的单位时间的扩容量。
60.扩容量比较单元320被配置为判断pod的单位时间的扩容量是否大于阈值。
61.在一些实施例中,阈值根据pod的cpu资源、内存资源、应用种类中的至少一项确定。
62.在一些实施例中,根据mec系统资源情况和mec系统对时延的要求决定阈值是动态变化的还是静态的。如果系统资源量很充足且对时延要求低,那么可以采用动态变化的方式,此时可以通过机器学习等的方法得到阈值的具体数值。否则可以采用静态的方式,在系统上线运行时规定阈值大小,系统运行时不改变阈值,如果要改变,则使系统停止后修改阈值。
63.扩容执行单元330被配置为若pod的单位时间的扩容量大于阈值,则拒绝对pod扩容,否则,允许对pod扩容。
64.在一些实施例中,若单位时间内的扩容量大于阈值,则说明该pod存在短时间内多次大量扩容行为,本次扩容行为存疑,拒绝扩容请求,并加强监控该pod。若单位时间内的扩容量小于等于阈值,则说明本次扩容需求合理,应调整pod资源。
65.在上述实施例中,对已有容器资源动态扩容方法进行改进,在自动扩容之前判断扩容需求是否合理,避免非法扩容,造成挤占其他pod资源,导致其他pod上服务不可用现象,提升mec系统的安全性和用户体验。
66.图4为本公开的容器资源动态扩容装置的另一些实施例的结构示意图。该装置包括存储器410和处理器420。其中:存储器410可以是磁盘、闪存或其它任何非易失性存储介质。存储器410用于存储图1、2所对应实施例中的指令。处理器420耦接至存储器410,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器420用于执行存储器中存储的指令。
67.在一些实施例中,处理器420通过bus总线430耦合至存储器410。该装置400还可以通过存储接口440连接至外部存储系统450以便调用外部数据,还可以通过网络接口460连接至网络或者另外一台计算机系统(未标出)。此处不再进行详细介绍。
68.在该实施例中,通过计算pod单位时间内的扩容量,并与阈值进行比较,判断扩容需求是否正常,实现了容器资源合理动态扩容,避免非法扩容,造成挤占其他pod资源,导致其他pod上服务不可用现象,提升mec系统的安全性和用户体验。
69.在另一些实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图1、2所对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
70.本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现
在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
71.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
72.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
73.至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
74.虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献