本发明涉及容器伸缩,尤其涉及一种容器伸缩方法、系统、电子设备及存储介质。
背景技术:
1、容器伸缩能够根据业务需求,在一定策略下自动增加或缩减容器资源。当业务需求增长时,增加容器数量或容器资源,以保证业务能力;当业务需求下降时,减少容器数量或容器资源,以节约成本。
2、目前容器伸缩系统的策略一般分为响应式伸缩策略和基于时间序列的伸缩策略。响应式伸缩策略对新增的用户负载处理慢,需要较长的容器启动时间,增加了用户的请求时延。根据伸缩方向,响应式伸缩策略分为水平伸缩与垂直伸缩。其中,垂直伸缩方案调整速度快而且管理简单,但容错性差;水平伸缩方案扩展能力强,但节点数量的增加使得管理复杂,导致应用服务中断,难以迁移服务。基于时间序列的容器伸缩策略只利用了时序数据,缺少多指标全方位的数据,波动高,趋势复杂,负载预测模型的适应能力不足,负载预测的准确率不高。
技术实现思路
1、本发明实施例提供了一种容器伸缩方法、系统、电子设备及存储介质,以解决负载预测模型的适应能力不足,负载预测的准确率不高的问题。
2、第一方面,本发明实施例提供了一种容器伸缩方法,包括:
3、获取集群中容器当前时刻和至少一个历史时刻的状态信息;状态信息包括容器数量、负载数据和并发请求数量;负载数据包括cpu负载、gpu负载和内存占用数据;
4、将状态信息输入到负载预测模型中,得到下一时刻的集群中容器的负载预测数据,其中,负载预测模型用于对状态信息进行相似融合,并将融合后的状态信息以及每个状态的发生时刻进行编码,得到总状态向量的表征向量;并根据总状态向量的表征向量,得到下一时刻的集群中容器的负载预测数据;
5、根据集群容器当前时刻的负载数据和负载预测数据,对集群中容器进行伸缩控制。
6、在一种可能的实现方式中,负载预测模型为深度强化学习网络模型,负载预测模型中包括状态编码器;状态编码器具体用于:
7、融合多个状态信息中的相似状态信息;
8、对融合后的多个状态信息及相应的发生时刻进行编码,得到状态表示向量和时间表示向量;
9、基于状态表示向量和时间表示向量,确定总状态向量的表征向量。
10、在一种可能的实现方式中,负载预测模型中包括q函数;q函数为:
11、q(s,a)=r(s,a)+γ·max(q(s′,a′))
12、其中,q(s,a)表示在状态s下采取行动a所获得的长期回报;r(s,a)表示在状态s下采取行动a所获得的即时回报;γ为衰减因子;max(q(s′,a′))表示在下一个状态s′下采取所有可能的行动a′所能获得的最大长期回报。
13、在一种可能的实现方式中,该方法还包括:
14、将当前时刻的状态信息,存储到经验回放缓冲区;
15、基于经验回放缓冲区的状态信息,对训练模型进行训练,更新训练模型的参数;
16、每隔预设时间间隔,将训练模型替换负载预测模型。
17、在一种可能的实现方式中,该方法还包括:
18、将下一时刻的集群中容器的负载预测数据存储到经验回放缓冲区中,作为训练模型更新的参考;
19、经验回放缓冲区中包括负载预测模型之前的状态、行动、奖励值和下一个状态。
20、在一种可能的实现方式中,至少一个历史时刻的状态信息从经验回放缓冲区提取。
21、在一种可能的实现方式中,根据集群容器当前时刻的负载数据和负载预测数据,对集群中容器进行伸缩控制,包括:
22、当负载预测数据大于当前时刻的负载数据时,对容器进行扩容操作;
23、当负载预测数据小于当前时刻的负载数据时,对容器进行缩容操作。
24、第二方面,本发明实施例提供了一种容器伸缩系统,包括:
25、获取模块,获取集群中容器当前时刻和至少一个历史时刻的状态信息;状态信息包括容器数量、负载数据和并发请求数量;负载数据包括cpu负载、gpu负载和内存占用数据;
26、预测模块,用于将状态信息输入到负载预测模型中,得到下一时刻的集群中容器的负载预测数据,其中,负载预测模型用于对状态信息进行相似融合,并将融合后的状态信息以及每个状态的发生时刻进行编码,得到总状态向量的表征向量;并根据总状态向量的表征向量,得到下一时刻的集群中容器的负载预测数据;
27、伸缩模块,用于根据集群容器当前时刻的负载数据和负载预测数据,对集群中容器进行伸缩控制。
28、第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上第一方面或第一方面的任一种可能的实现方式所述方法的步骤。
29、第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面或第一方面的任一种可能的实现方式所述方法的步骤。
30、本发明实施例提供一种容器伸缩方法、系统、电子设备及存储介质,通过获取集群中容器当前时刻和至少一个历史时刻的状态信息;状态信息包括容器数量、负载数据和并发请求数量;负载数据包括cpu负载、gpu负载和内存占用数据;将状态信息输入到负载预测模型中,得到下一时刻的集群中容器的负载预测数据,其中,负载预测模型用于对状态信息进行相似融合,并将融合后的状态信息以及每个状态的发生时刻进行编码,得到总状态向量的表征向量;并根据总状态向量的表征向量,得到下一时刻的集群中容器的负载预测数据;根据集群容器当前时刻的负载数据和负载预测数据,对集群中容器进行伸缩控制。本发明基于容器数量、cpu负载、gpu负载、内存占用和并发请求数量以及时间进行预测,考虑了多种指标,并将相似的状态进行融合,提高了负载预测模型的适应能力以及负载预测的准确率。
1.一种容器伸缩方法,其特征在于,包括:获取集群中容器当前时刻和至少一个历史时刻的状态信息;所述状态信息包括容器数量、负载数据和并发请求数量;所述负载数据包括cpu负载、gpu负载和内存占用数据;
2.根据权利要求1所述的容器伸缩方法,其特征在于,所述负载预测模型为深度强化学习网络模型,所述负载预测模型中包括状态编码器;所述状态编码器具体用于:
3.根据权利要求1所述的容器伸缩方法,其特征在于,所述负载预测模型中包括q函数;所述q函数为:
4.根据权利要求1所述的容器伸缩方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的容器伸缩方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的容器伸缩方法,其特征在于,所述至少一个历史时刻的状态信息从所述经验回放缓冲区提取。
7.根据权利要求1所述的容器伸缩方法,其特征在于,所述根据所述集群容器当前时刻的负载数据和所述负载预测数据,对所述集群中容器进行伸缩控制,包括:
8.一种容器伸缩系统,其特征在于,包括:
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上的权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上的权利要求1至7中任一项所述方法的步骤。