本申请公开了一种容器扩缩容方法、装置、设备及可读存储介质,该方法包括:获取预设时段内工作负载对应容器的监控数据;监控数据包括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/内存平均值,...
【专利技术属性】
技术研发人员:苏海明,
申请(专利权)人:济南浪潮数据技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。