System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种容器扩缩容方法、装置、设备及可读存储介质制造方法及图纸_技高网

一种容器扩缩容方法、装置、设备及可读存储介质制造方法及图纸

技术编号:40910327 阅读:2 留言:0更新日期:2024-04-18 14:39
本申请公开了一种容器扩缩容方法、装置、设备及可读存储介质,该方法包括:获取预设时段内工作负载对应容器的监控数据;监控数据包括CPU使用量和内存使用量;基于监控数据确定容器的CPU/内存预测值和CPU/内存统计值;利用CPU/内存预测值和CPU/内存统计值,确定CPU/内存的限制量推荐值;基于限制量推荐值对容器当前的限制量进行变更,以对容器进行扩容或缩容。技术效果:因为本申请进行扩容或缩容的对象是容器,而pod层的业务运行与容器层面,因此,可以在不改变pod副本数量的情况下,即不再受限于pod副本数量调整方案的限制,通过容器的监控数据对容器占用资源进行扩缩容,从而满足实际业务需求。

【技术实现步骤摘要】

本申请涉及计算机应用,特别是涉及一种容器扩缩容方法、装置、设备及可读存储介质


技术介绍

1、在k8s(kubernetes,容器编排引擎)集群中,经常会遇到某个服务需要扩容的场景(例如:测试对服务压测、电商平台秒杀、大促活动、或由于资源紧张、工作负载降低等都需要对服务实例数进行扩缩容操作)。

2、目前对服务进行扩容和缩容,主要在pod(所有业务类型的基础,也是k8s管理的最小单位级,它是一个或多个容器的组合)层面进行,有两种方式实现。方式1:为手动模式,通过kubectl scale等命令对pod副本数,资源限制情况进行调整,这样需要每次去手工操作一次,而且不确定什么时候业务请求量就和当前的pod副本数不匹配了。方式2:通过hpa(horizontal pod autoscaling,对k8s的workload的副本数进行自动水平扩缩容机制)自动扩容技术实现,根据监控指标(cpu使用率、磁盘、自定义的等)自动扩容或缩容服务中的pod数量,当业务需求增加时,系统将无缝地自动增加适量pod容器,提高系统稳定性,这种自动扩缩容操作的本质是基于阈值的操作,当资源使用量超过阈值时触发,且仅针对pod副本数进行增减。

3、可见,以上方法都是在pod层面对副本数进行操作,在实际应用中,会存在无法增加pod副本数的情况,导致无法实现扩容。

4、综上所述,如何有效地解决业务平台中如何基于业务情况进行扩缩容等问题,是目前本领域技术人员急需解决的技术问题。


技术实现思路

1、本申请的目的是提供一种容器扩缩容方法、装置、设备及可读存储介质,能够在不调整pod副本数的情况下,结合容器的监控数据,通过对容器的资源限制量进行调整,从而实现基于业务情况实现扩缩容。

2、为解决上述技术问题,本申请提供如下技术方案:

3、一种容器扩缩容方法,包括:

4、获取预设时段内工作负载对应容器的监控数据;所述监控数据包括cpu使用量和内存使用量;

5、基于所述监控数据确定所述容器的cpu/内存预测值和cpu/内存统计值;

6、利用所述cpu/内存预测值和所述cpu/内存统计值,确定cpu/内存的限制量推荐值;

7、基于所述限制量推荐值对所述容器当前的限制量进行变更,以对所述容器进行扩容或缩容。

8、优选地,基于所述监控数据确定所述容器的cpu/内存预测值和cpu/内存统计值,包括:

9、基于所述监控数据,预测cpu/内存的变化曲线;

10、将所述变化曲线中的最大值确定为所述cpu/内存预测值;

11、对所述监控数据进行统计,得到cpu/内存最大值、cpu/内存最小值和cpu/内存平均值;

12、将所述cpu/内存最大值、所述cpu/内存最小值和所述cpu/内存平均值确定为所述cpu/内存统计值。

13、优选地,基于所述监控数据,预测cpu/内存的变化曲线,包括:

14、判断所述工作负载是否为单副本运行模式;

15、如果是,则基于对应时刻的所述cpu使用量和所述内存使用量确定出历史cpu/内存;

16、基于所述历史cpu/内存确定监控曲线;

17、利用双参数指数平法,对所述监控曲线进行预测,得到所述变化曲线;

18、如果否,则对每一副本,基于对应时刻的所述cpu使用量和所述内存使用量确定出历史cpu/内存;

19、基于所述历史cpu/内存确定当前副本的监控曲线;

20、利用双参数指数平法,对每一条所述监控曲线进行预测,得到每一副本分别对应的所述变化曲线;

21、相应地,将所述变化曲线中的最大值确定为所述cpu/内存预测值,包括:

22、若所述工作负载为单副本运行模式,则从所述变化曲线中找出最大值,便将所述最大值确定为所述cpu/内存预测值;

23、若所述工作负载为多副本运行模式,则从每一副本对应的所述变化曲线中找出最大值,将所找出的最大值构成序列,并从所述序列中找出最大值,将从所述序列中找出的最大值确定为所述cpu/内存预测值;

24、其中,在所述双参数指数平法中,历史cpu/内存为x={x1,x2,...,xn},其中xt表示时间t处对应的特征值,n表示历史特征序列的总长度;

25、st=αxt+(1-α)(st-1+tt-1);

26、tt=β(st-st-1)xt+(1-β)tt-1;

27、yt=st-1+tt-1;

28、其中,st为在时间t处的平滑项,其中x为真实值,tt为趋势项,yt为预测值,α,β为平滑参数,0<α<1,0<β<1。

29、优选地,对所述监控数据进行统计,得到cpu/内存最大值、cpu/内存最小值和cpu/内存平均值,包括:

30、在所述工作负载为单副本运行模式的情况下,基于对应时刻的所述cpu使用量和所述内存使用量确定出历史cpu/内存;

31、基于所述历史cpu/内存确定监控曲线;

32、从所述监控曲线中确定出所述cpu/内存最大值、所述cpu/内存最小值和所述cpu/内存平均值。

33、优选地,对所述监控数据进行统计,得到cpu/内存最大值、cpu/内存最小值和cpu/内存平均值,包括:

34、在所述工作负载为多副本运行模式的情况下,对每一副本,基于对应时刻的所述cpu使用量和所述内存使用量确定出历史cpu/内存;

35、基于所述历史cpu/内存确定当前副本的监控曲线;

36、从每一条所述监控曲线中分别确定出当前cpu/内存最大值、当前cpu/内存最小值和当前cpu/内存平均值;

37、从多个所述当前cpu/内存最大值中确定出所述cpu/内存最大值;

38、从多个所述当前cpu/内存最小值中确定出所述cpu/内存最小值;

39、对多个所述当前cpu/内存平均值求取均值,得到所述cpu/内存平均值。

40、优选地,利用所述cpu/内存预测值和所述cpu/内存统计值,确定容器内cpu/内存的限制量推荐值,包括:

41、基于平滑参数,对所述cpu/内存预测值和所述cpu/内存统计值进行加权求和,将计算结果确定为所述限制量推荐值。

42、优选地,所述基于所述限制量推荐值对当前的限制量进行变更,以对容器进行扩容或缩容,包括:

43、若所述限制量推荐值大于所述限制量,则以所述限制量推荐值为上限,对所述限制量进行上调,以对所述容器进行扩容;

44、若所述限制量推荐值小于预设比例的所述限制量,则将所述限制量调整为所述预设比例的所述限制量,以对所述容器进行缩容;

45、若所述限制量推荐值大于预设比例的所述限制量,且所述限制量推荐值小于所述限制量,则不对所述限制量进行调整。

<本文档来自技高网
...

【技术保护点】

1.一种容器扩缩容方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,基于所述监控数据确定所述容器的CPU/内存预测值和CPU/内存统计值,包括:

3.根据权利要求2所述的方法,其特征在于,基于所述监控数据,预测CPU/内存的变化曲线,包括:

4.根据权利要求2所述的方法,其特征在于,对所述监控数据进行统计,得到CPU/内存最大值、CPU/内存最小值和CPU/内存平均值,包括:

5.根据权利要求2所述的方法,其特征在于,对所述监控数据进行统计,得到CPU/内存最大值、CPU/内存最小值和CPU/内存平均值,包括:

6.根据权利要求1所述的方法,其特征在于,利用所述CPU/内存预测值和所述CPU/内存统计值,确定容器内CPU/内存的限制量推荐值,包括:

7.根据权利要求1至6任一项所述的方法,其特征在于,所述基于所述限制量推荐值对当前的限制量进行变更,以对容器进行扩容或缩容,包括:

8.一种容器扩缩容装置,其特征在于,包括:

9.一种电子设备,其特征在于,包括:

<p>10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述容器扩缩容方法的步骤。

...

【技术特征摘要】

1.一种容器扩缩容方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,基于所述监控数据确定所述容器的cpu/内存预测值和cpu/内存统计值,包括:

3.根据权利要求2所述的方法,其特征在于,基于所述监控数据,预测cpu/内存的变化曲线,包括:

4.根据权利要求2所述的方法,其特征在于,对所述监控数据进行统计,得到cpu/内存最大值、cpu/内存最小值和cpu/内存平均值,包括:

5.根据权利要求2所述的方法,其特征在于,对所述监控数据进行统计,得到cpu/内存最大值、cpu/内存最小值和cpu/内存平均值,...

【专利技术属性】
技术研发人员:苏海明
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1