CN115774605A - Kubernetes的预测式弹性伸缩方法及系统 - Google Patents
Kubernetes的预测式弹性伸缩方法及系统 Download PDFInfo
- Publication number
- CN115774605A CN115774605A CN202211699602.1A CN202211699602A CN115774605A CN 115774605 A CN115774605 A CN 115774605A CN 202211699602 A CN202211699602 A CN 202211699602A CN 115774605 A CN115774605 A CN 115774605A
- Authority
- CN
- China
- Prior art keywords
- pod
- bigru
- cnn
- eemd
- copy number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种Kubernetes的预测式弹性伸缩方法及系统。所述Kubernetes的预测式弹性伸缩方法包括:获取经过训练的EEMD‑CNN‑BIGRU组合预测模型;获取当前时刻之前的预设时间内的负载量信息;将所述负载量信息输入至所述EEMD‑CNN‑BIGRU组合预测模型,从而获取下一个滑动窗口的HTTP请求量;根据下一个滑动窗口的HTTP请求量计算下一个滑动窗口的期望的Pod副本数量;根据期望的Pod副本数量对当前应用的Pod副本数量进行调整。本申请的Kubernetes的预测式弹性伸缩方法相对于现有技术,提出了一种EEMD‑CNN‑BIGRU组合预测模型,所述模型包括:使用EEMD分解超文本传输数据,获得的IMF分量作为训练集,输入到卷积神经网络获取潜藏特征被馈送到BiGRU进行双向学习。使Kubernetes集群中的应用有了负载预测能力,改善了HPA应对突发流量时的滞后性。
Description
技术领域
本申请涉及云计算与深度学习技术领域,具体涉及一种Kubernetes的预测式弹性伸缩方法以及Kubernetes的预测式弹性伸缩系统。
背景技术
Kubernetes是可以自动部署、扩展和管理容器化应用程序的开源系统,主要应用在私有云、公共云和混合云环境中。它的创立是为了解决大规模或关键任务应用程序中的容器编排问题,在这些情况下借助Kubernetes可以轻松地自动化跨不同节点集群的应用程序容器的部署、扩展和调度操作。Kubernetes目前已经成为DevOps中最流行的技术之一,而对于Kubernetes集群来说,弹性伸缩策略是一个直接影响Kubernetes应用服务质量的问题,目前,Kubernetes的弹性伸缩策略包括Pod级别的横向自动伸缩HPA、集群中节点伸缩CPA、节点级别的横向伸缩CA、Pod级别的纵向伸缩VPA。其中,HPA应用最广泛、技术最成熟,它根据CPU利用率、内存使用、其他自定义度动态调整Pod副本数。
深度学习是模仿人脑的学习机制,来让计算机学习样本数据的内在规律和表示层次,从而让计算机对文本数据或图像声音等具有分类或者预测的能力,在实际的生产中已经得到了广泛的应用。在时间序列预测问题方面,目前常用的时序序列预测算法有ARIMA,SVM,RNN,LSTM,GRU等。但在云计算环境中,容器处理的负载数量往往波动很大,单一的时间序列预测算法有时不能取得很好的效果。而目前存在的一些时频局部化分析方法,如EMD(经验模态分解)、EEMD(集合经验模态分解)、CEEMDAN(自适应噪声完备集合经验模态分解)等可以将复杂的时间序列分解成若干分量,其分量具有独有的特征尺度,与分解前的原数据序列相比更有规律性,从而减小弹性伸缩预测的误差。现将上述的时间序列分解方法与预测算法相结合形成组合预测模型提高预测精确度并应用于自定义的HPA之中,从而提高自定义预测式HPA的准确性。
Kubernetes提供的横向扩展特性(Horizontal Pod Autoscaler,HPA):是指基于一定的性能指标(如:CPU使用率等资源指标)对在ReplicaSet、Deployment、ReplicaController等集合中的pod副本数量进行动态变更,使运行在Kubernetes集群上面的服务对指标的变化有一定的自适应能力。
参见图1,在现有技术中,HPA伸缩过程:
由管理员创建HPA并设置最小副本数Podmin、最大副本数Podmax以及CPU利用率的阈值。
收集对应HPA的所有Pod的CPU使用情况,即CPU使用率。
将收集到的CPU使用率与管理员设定的CPU使用率阈值进行对比。
根据3中的对比情况利用RC/Deployment等组件对Pod副本数量进行变更,其中,Pod副本数量范围为管理员所设定的最小副本数Podmin与最大副本数Podmax之间。
每隔30秒重新进行一次伸缩判断。
注:HPA伸缩过程中的CPU使用率计算过程为:首先使用Metrics直接获取集群容器最近一分钟的平均CPU占用率,再用这个CPU占用率除以管理员在创建容器时所设定的此容器CPU使用的核心数量,从而得到一个CPU利用率的平均值,这个平均值也是每个Pod副本CPU核心的平均使用占比。
现有技术的HPA缺点如下:
(1)在面对突发流量时,HPA的表现较差,具体体现为:在负载激增时,存在Pod扩容不及时现象;在负载骤减时,存在Pod频繁缩容现象。在pod扩展或收缩之前的应用服务质量无法保障,应用负载太高有可能会出现崩溃等现象。
(2)新建的pod副本在就绪前,需要进行一系列的初始化操作,从负载过高触发扩容,到副本就绪提供服务,存在一定的时间差。同时无法保证在提高服务效率时兼顾高资源利用率调度,具有一定的滞后性。
因此,希望有一种技术方案来解决或至少减轻现有技术的上述不足。
发明内容
本发明的目的在于提供一种Kubernetes的预测式弹性伸缩方法来至少解决上述的一个技术问题。
本发明的一个方面,提供一种Kubernetes的预测式弹性伸缩方法,基于时频局部化分析方法和时间序列预测算法,所述Kubernetes的预测式弹性伸缩方法包括:
获取经过训练的EEMD-CNN-BIGRU组合预测模型;
获取当前时刻之前的预设时间内的负载量信息;将所述负载量信息输入至所述EEMD-CNN-BIGRU组合预测模型,从而获取下一个滑动窗口的HTTP请求量;
根据下一个滑动窗口的HTTP请求量计算下一个滑动窗口的期望的Pod副本数量;
根据期望的Pod副本数量对当前应用的Pod副本数量进行调整。
可选地,所述获取当前时刻之前的预设时间内的负载量信息包括:
使用Promtheus以及CAdvisor监控工具获取节点以及容器的负载量信息,同时使用Promtheus实现数据持久化存储。
可选地,所述获取经过训练的EEMD-CNN-BIGRU组合预测模型包括:
获取训练数据集,所述训练数据集包括HTTP负载信息;
对训练数据集中的HTTP负载信息进行预处理,从而获取经过预处理的HTTP负载信息;
获取EEMD-CNN-BIGRU组合预测模型;
通过经过预处理的HTTP负载信息对EEMD-CNN-BIGRU组合预测模型进行训练。
可选地,所述EEMD-CNN-BIGRU组合预测模型包括CNN卷积神经网络、以及BIGRU,其中,
所述CNN卷积神经网络的结构包括两层卷积层,一层最大池化层以及一层展平层;
所述BIGRU包括两个方向相反的GRU网络;
所述将所述负载量信息输入至所述EEMD-CNN-BIGRU组合预测模型,从而获取下一个滑动窗口的HTTP请求量包括:将负载量信息按照EEMD时间序列分解算法将序列分解为n-1个IMF分量与一个res分量,所述n-1个IMF分量与一个res分量组成n个分量;
将n个分量分别送入CNN卷积神经网络;
所述CNN卷积神经网络用于提取n个分量的潜藏特征,并将提取后的特征并行送入n个BIGRU网络;
每个BIGRU用于对送入其中的潜藏特征进行过滤并输出预测结果;
将各个BIGRU所输出的结果同步后进行累加,从而获取下一个滑动窗口的HTTP请求量。
可选地,所述根据下一个滑动窗口的HTTP请求量计算下一个滑动窗口的期望的Pod副本数量采用如下公式获取:
Pestimated=Westimated/Wmax;其中,
Pestimated为下一个滑动窗口的期望的Pod副本数量;Westimated为下一个滑动窗口的HTTP请求量预测值;Wmax为单个Pod副本每时刻可以处理的最大HTTP请求量。
可选地,所述根据期望的Pod副本数量对实际Pod副本数量进行调整包括:
获取当前应用的Pod副本数量;
根据所述期望的Pod副本数量以及当前应用的Pod副本数量对当前应用的Pod副本数量进行调整。
可选地,所述加载模型数据,所述根据所述期望的Pod副本数量以及当前应用的Pod副本数量对当前应用的Pod副本数量进行调整包括:
判断期望的Pod副本数量是否大于当前应用的Pod副本数量,若是,则生成扩容命令。
可选地,所述根据所述期望的Pod副本数量以及当前应用的Pod副本数量对当前应用的Pod副本数量进行调整进一步包括:
判断期望的Pod副本数量是否小于当前应用的Pod副本数量,若是,则生成缩容命令。
可选地,在根据期望的Pod副本数量对当前应用的Pod副本数量进行调整之前,所述Kubernetes的预测式弹性伸缩方法进一步包括:
获取距离当前时刻最近的一次对当前应用的Pod副本数量进行调整的时间与当前时刻的时间差值;
判断时间差值是否超过预设冷却时间,若否,则不根据期望的Pod副本数量对当前应用的Pod副本数量进行调整。
本申请还提供了一种Kubernetes的预测式弹性伸缩系统,所述Kubernetes的预测式弹性伸缩系统包括:
模型获取模块,所述模型获取模块用于获取经过训练的EEMD-CNN-BIGRU组合预测模型;
监控模块,所述监控模块用于获取当前时刻之前的预设时间内的负载量信息;
分析模块,所述分析模块用于将所述负载量信息输入至所述EEMD-CNN-BIGRU组合预测模型,从而获取下一个滑动窗口的HTTP请求量;
规划模块,所述规划模块用于根据下一个滑动窗口的HTTP请求量计算下一个滑动窗口的期望的Pod副本数量;
执行模块,所述执行模块用于根据期望的Pod副本数量对当前应用的Pod副本数量进行调整。
有益效果
本申请的Kubernetes的预测式弹性伸缩方法相对于现有技术,提出了一种EEMD-CNN-BIGRU组合预测模型,针对当前条件下负载时间序列的波动性大,较难预测等问题,提出的EEMD-CNN-BIGRU组合负载预测模型首先对序列进行分解降噪,然后经过一维CNN提取特征后使用BIGRU预测,具有较高的预测精确度。并且使Kubernetes集群中的应用有了负载预测能力,改善了HPA应对突发流量时的滞后性。在实际生产中,本发明提出的弹性伸缩方法,在伸缩效果以及稳定性方面优于Kubernetes内置的HPA。本发明的弹性伸缩策略提升了部署在Kubernetes集群上应用的服务质量。
附图说明
图1是现有技术的HPA的流程示意图。
图2是图1所示的Kubernetes的预测式弹性伸缩方法的流程示意图。
图3是本申请一实施例的能够实现本申请的Kubernetes的预测式弹性伸缩方法的电子设备示意图。
图4是本申请一实施例中的训练EEMD-CNN-BIGRU组合预测模型的示意图。
图5是本申请一实施例中的一维CNN网络结构图。
图6是本申请一实施例中的EEMD-CNN-BIGRU组合预测模型BiGRU网络结构图。
图7是本申请一实施例中的调整策略示意图。
具体实施方式
为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本申请一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。下面结合附图对本申请的实施例进行详细说明。
图2是图1所示的Kubernetes的预测式弹性伸缩方法的流程示意图。
如图2所示的Kubernetes的预测式弹性伸缩方法,基于时频局部化分析方法和时间序列预测算法。
本申请的Kubernetes的预测式弹性伸缩方法包括:
步骤1:获取经过训练的EEMD-CNN-BIGRU组合预测模型;
步骤2:获取当前时刻之前的预设时间内的负载量信息;
步骤3:将所述负载量信息输入至所述EEMD-CNN-BIGRU组合预测模型,从而获取下一个滑动窗口的HTTP请求量;
步骤4:根据下一个滑动窗口的HTTP请求量计算下一个滑动窗口的期望的Pod副本数量;
步骤5:根据期望的Pod副本数量对当前应用的Pod副本数量进行调整。
在本实施例中,所述获取经过训练的EEMD-CNN-BIGRU组合预测模型包括:
获取训练数据集,所述训练数据集包括HTTP负载信息;
对训练数据集中的HTTP负载信息进行预处理,从而获取经过预处理的HTTP负载信息;
获取EEMD-CNN-BIGRU组合预测模型;
通过经过预处理的HTTP负载信息对EEMD-CNN-BIGRU组合预测模型进行训练。
本申请的Kubernetes的预测式弹性伸缩方法相对于现有技术,其中EEMD-CNN-BIGRU组合预测模型能更符合云计算容器下的负载环境预测;Kubernetes预测式弹性伸缩方法相对于现有技术,使Kubernetes集群中的应用有了负载预测能力,其优点在于:
可以降低延迟:预测式弹性伸缩可以在负载发生变化之前就预先调整资源,这可以减少延迟并提高应用的性能。
可以降低成本:预测式弹性伸缩可以有效地预测未来负载,并根据预测结果调整资源使用量,从而节省资源。
可以提高应用的可用性:预测式弹性伸缩可以有效地应对突发流量,并保证应用的可用性。
在本实施例中,获取当前时刻之前的预设时间内的负载量信息包括:
使用Promtheus以及CAdvisor监控工具获取节点以及容器的负载量信息,同时使用Promtheus实现数据持久化存储。
在本实施例中,所述对训练数据集中的HTTP负载信息进行预处理包括:
将集群历史HTTP负载信息为训练集,首先按照EEMD时间序列分解算法将序列分解为n-1个IMF分量与一个res分量。
在本实施例中,所述EEMD-CNN-BIGRU组合预测模型包括CNN卷积神经网络、以及BIGRU,其中,
所述CNN卷积神经网络的结构包括两层卷积层,一层最大池化层以及一层展平层;
所述BIGRU包括两个方向相反的GRU网络;
所述将所述负载量信息输入至所述EEMD-CNN-BIGRU组合预测模型,从而获取下一个滑动窗口的HTTP请求量包括:将负载量信息按照EEMD时间序列分解算法将序列分解为n-1个IMF分量与一个res分量,所述n-1个IMF分量与一个res分量组成n个分量;
将n个分量分别送入CNN卷积神经网络;
所述CNN卷积神经网络用于提取n个分量的潜藏特征,并将提取后的特征并行送入n个BIGRU网络;
每个BIGRU用于对送入其中的潜藏特征进行过滤并输出预测结果;
将各个BIGRU所输出的结果同步后进行累加,从而获取下一个滑动窗口的HTTP请求量。
在本实施例中,所述根据下一个滑动窗口的HTTP请求量计算下一个滑动窗口的期望的Pod副本数量采用如下公式获取:
Pestimated=Westimated/Wmax;其中,
Pestimated为下一个滑动窗口的期望的Pod副本数量;Westimated为下一个滑动窗口的HTTP请求量预测值;Wmax为单个Pod副本每时刻可以处理的最大HTTP请求量。
在本实施例中,所述根据期望的Pod副本数量对实际Pod副本数量进行调整包括:
获取当前应用的Pod副本数量;
根据所述期望的Pod副本数量以及当前应用的Pod副本数量对当前应用的Pod副本数量进行调整。
在本实施例中,所述加载模型数据,所述根据所述期望的Pod副本数量以及当前应用的Pod副本数量对当前应用的Pod副本数量进行调整包括:
判断期望的Pod副本数量是否大于当前应用的Pod副本数量,若是,则生成扩容命令。
在本实施例中,所述根据所述期望的Pod副本数量以及当前应用的Pod副本数量对当前应用的Pod副本数量进行调整进一步包括:
判断期望的Pod副本数量是否小于当前应用的Pod副本数量,若是,则生成缩容命令。
在本实施例中,在根据期望的Pod副本数量对当前应用的Pod副本数量进行调整之前,所述Kubernetes的预测式弹性伸缩方法进一步包括:
获取距离当前时刻最近的一次对当前应用的Pod副本数量进行调整的时间与当前时刻的时间差值;
判断时间差值是否超过预设冷却时间,若否,则不根据期望的Pod副本数量对当前应用的Pod副本数量进行调整。
下面以举例的方式对本申请进行进一步详细阐述,可以理解的是,该举例并不构成对本申请的任何限制。
获取训练数据集,所述训练数据集包括HTTP负载信息,具体而言,在本实施例中,对Kubernetes集群容器负载实时收集,实际应用中使用的Kubernetes集群一般为高可用集群(主节点大于1),包含奇数个master主节点与多个worker工作节点,这里使用cAdvisor工具对容器数据进行采集,cAdvisor是Kubernetes中的监控组件,可以对worker节点机器上的资源及容器进行实时监控和性能数据采集,本申请采用每个容器所处理的HTTP负载数量作为指标。之后,针对不同容器的exporter,将采集到的数据指标暴露并汇总至集群监控工具Prometheus,Prometheus也具有时序数据库的功能,可以存储采集的时序数据。
在本实施例中,对训练数据集中的HTTP负载信息进行预处理,从而获取经过预处理的HTTP负载信息,EEMD-CNN-BIGRU组合预测模型在使用时具体如下:
根据收集的每分钟的HTTP负载量作为训练数据,首先,对数据进行预处理,对其按照时间序列分解为n-1个IMF分量与一个res分量,将n个分量作为训练数据,同时输入到深度学习模型中进行模型训练,得到n个时序模型,输入n个分量的预测数据,输出所有预测结果,并将其相加得到最终的预测结果。最终,通过输入前十分钟数据预测未来每分钟的负载量,本发明的负载预测模型为EEMD-CNN-BIGRU,具体参见图4、图5、图6。
本申请所提供的网络结构EEMD-CNN-BiGRU基于时间序列预测算法以及时间序列预测算法生成,能够使Kubernetes集群中的应用有了负载预测能力,改善了HPA应对突发流量时的滞后性。在实际生产中,本发明提出的弹性伸缩方法,在伸缩效果以及稳定性方面优于Kubernetes内置的HPA。本发明的弹性伸缩策略提升了部署在Kubernetes集群上应用的服务质量。
当训练完EEMD-CNN-BIGRU组合预测模型后,通过Prometheus时序数据库,调用Restful API来使EEMD-CNN-BIGRU组合预测模型获取INGRESS所代理的服务,即获取经过训练的EEMD-CNN-BIGRU组合预测模型进行预测。
具体而言,将所述负载量信息输入至所述EEMD-CNN-BIGRU组合预测模型,从而获取下一个滑动窗口的HTTP请求量,其中,使用压力测试工具得到容器可以处理的最大HTTP请求量Wmax,,根据预测的下一个滑动窗口的HTTP请求量为Westimated。所述具体流程如图6。
Pestimated=Westimated/Wmax(1)
由上述公式得到下一时刻应用所需要的Pod副本数量Pestimated。假定当前应用的Pod副本数量为Pcur,整体伸缩情况分为三种情况,如公式(2)所示:
所述情况一,Pestimated=Pcur,则不执行任何扩缩操作;
所述情况二,Pestimated>Pcur,则发送一个扩容命令,其扩容大小为Pestimated;
所述情况三,Pestimated<Pcur,则发送一个缩容命令,其缩容大小为Pestimated,其前提Pestimated不低于Pmin,否则,缩容大小为Pmin。
此外,为了节约资源,减小震荡以及减少伸缩次数,克服HPA原本频繁伸缩的问题,在扩缩的过程中设置一个预设冷却时间,是任意两次伸缩操作的最小时间差,只有超过该最小时间差才可以进行下次伸缩。每次伸缩操作过后,冷却时间将被重置。
当得到期望的Pod副本数量后,通过Kubernetes API对RC或者Deployment进行修改,完成Pod副本数量的变动。
在本实施例中,EEMD-CNN-BIGRU组合预测模型是一种基于集和经验模态分解EEMD算法的CNN-BIGRU组合预测模型,包括:使用EEMD算法将原始负载时间序列分解为n个分量;将分解后的n个分量送入一维CNN中提取特征;将CNN提取后的特征送入BIGRU进行预测。本申请的新型容器负载预测模型框架相比与现有技术提高了对负载预测的准确性。Kubernetes弹性伸缩基于负载预测模型相对于现有技术,使Kubernetes集群中的应用有了负载预测能力,改善了HPA应对突发流量时的滞后性。
在本实施例中,对EEMD-CNN-BIGRU组合预测模型进行训练包括:
预处理步骤:获取集群历史HTTP负载信息为训练集,对训练数据集中的HTTP负载信息按照EEMD时间序列分解算法为n-1个IMF分量与一个res分量,将这些分量作为训练数据。
将上述步骤中的所有分量首先送入CNN卷积神经网络中提取特征,然后将提取后的特征送入BIGRU进行预测。取得未来预测的HTTP请求数量Westimated。
本申请还提供了一种Kubernetes的预测式弹性伸缩系统,所述Kubernetes的预测式弹性伸缩系统包括模型获取模块、监控模块、分析模块、规划模块以及执行模块,其中,
模型获取模块用于获取经过训练的EEMD-CNN-BIGRU组合预测模型;
监控模块用于获取当前时刻之前的预设时间内的负载量信息;
分析模块用于将所述负载量信息输入至所述EEMD-CNN-BIGRU组合预测模型,从而获取下一个滑动窗口的HTTP请求量;
规划模块用于根据下一个滑动窗口的HTTP请求量计算下一个滑动窗口的期望的Pod副本数量;
执行模块用于根据期望的Pod副本数量对当前应用的Pod副本数量进行调整。
可以理解的是,上述对方法的描述,也同样适用于对装置的描述。
本申请还提供了一种电子设备,包括存储器、处理器以及存储在存储器中并能够在处理器上运行的计算机程序,处理器执行计算机程序时实现如上的Kubernetes的预测式弹性伸缩方法。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时能够实现如上的Kubernetes的预测式弹性伸缩方法。
图3是能够实现根据本申请一个实施例提供的Kubernetes的预测式弹性伸缩方法的电子设备的示例性结构图。
如图3所示,电子设备包括输入设备501、输入接口502、中央处理器503、存储器504、输出接口505以及输出设备506。其中,输入接口502、中央处理器503、存储器504以及输出接口505通过总线507相互连接,输入设备501和输出设备506分别通过输入接口502和输出接口505与总线507连接,进而与电子设备的其他组件连接。具体地,输入设备504接收来自外部的输入信息,并通过输入接口502将输入信息传送到中央处理器503;中央处理器503基于存储器504中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器504中,然后通过输出接口505将输出信息传送到输出设备506;输出设备506将输出信息输出到电子设备的外部供用户使用。
也就是说,图3所示的电子设备也可以被实现为包括:存储有计算机可执行指令的存储器;以及一个或多个处理器,该一个或多个处理器在执行计算机可执行指令时可以实现结合图2描述的Kubernetes的预测式弹性伸缩方法。
在一个实施例中,图3所示的电子设备可以被实现为包括:存储器504,被配置为存储可执行程序代码;一个或多个处理器503,被配置为运行存储器504中存储的可执行程序代码,以执行上述实施例中的Kubernetes的预测式弹性伸缩方法。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动,媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数据多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
此外,显然“包括”一词不排除其他单元或步骤。装置权利要求中陈述的多个单元、模块或装置也可以由一个单元或总装置通过软件或硬件来实现。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,模块、程序段、或代码的一部分包括一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地标识的方框实际上可以基本并行地执行,他们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或总流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本实施例中所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现装置/终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在本实施例中,装置/终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。本申请虽然以较佳实施例公开如上,但其实并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此,本申请的保护范围应当以本申请权利要求所界定的范围为准。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
此外,显然“包括”一词不排除其他单元或步骤。装置权利要求中陈述的多个单元、模块或装置也可以由一个单元或总装置通过软件或硬件来实现。
虽然,上文中已经用一般性说明及具体实施方案对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (10)
1.一种Kubernetes的预测式弹性伸缩方法,其特征在于,所述Kubernetes的预测式弹性伸缩方法包括:
获取经过训练的EEMD-CNN-BIGRU组合预测模型;
获取当前时刻之前的预设时间内的负载量信息;将所述负载量信息输入至所述EEMD-CNN-BIGRU组合预测模型,从而获取下一个滑动窗口的HTTP请求量;
根据下一个滑动窗口的HTTP请求量计算下一个滑动窗口的期望的Pod副本数量;
根据期望的Pod副本数量对当前应用的Pod副本数量进行调整。
2.如权利要求1所述的Kubernetes的预测式弹性伸缩方法,其特征在于,所述获取当前时刻之前的预设时间内的负载量信息包括:
使用Promtheus以及CAdvisor监控工具获取节点以及容器的负载量信息,同时使用Promtheus实现数据持久化存储。
3.如权利要求2所述的Kubernetes的预测式弹性伸缩方法,其特征在于,所述获取经过训练的EEMD-CNN-BIGRU组合预测模型包括:
获取训练数据集,所述训练数据集包括HTTP负载信息;
对训练数据集中的HTTP负载信息进行预处理,从而获取经过预处理的HTTP负载信息;
获取EEMD-CNN-BIGRU组合预测模型;
通过经过预处理的HTTP负载信息对EEMD-CNN-BIGRU组合预测模型进行训练。
4.如权利要求3所述的Kubernetes的预测式弹性伸缩方法,其特征在于,所述EEMD-CNN-BIGRU组合预测模型包括CNN卷积神经网络、以及BIGRU,其中,
所述CNN卷积神经网络的结构包括两层卷积层,一层最大池化层以及一层展平层;
所述BIGRU包括两个方向相反的GRU网络;
所述将所述负载量信息输入至所述EEMD-CNN-BIGRU组合预测模型,从而获取下一个滑动窗口的HTTP请求量包括:将负载量信息按照EEMD时间序列分解算法将序列分解为n-1个IMF分量与一个res分量,所述n-1个IMF分量与一个res分量组成n个分量;
将n个分量分别送入CNN卷积神经网络;
所述CNN卷积神经网络用于提取n个分量的潜藏特征,并将提取后的特征并行送入n个BIGRU网络;
每个BIGRU用于对送入其中的潜藏特征进行过滤并输出预测结果;
将各个BIGRU所输出的结果同步后进行累加,从而获取下一个滑动窗口的HTTP请求量。
5.如权利要求4所述的Kubernetes的预测式弹性伸缩方法,其特征在于,所述根据下一个滑动窗口的HTTP请求量计算下一个滑动窗口的期望的Pod副本数量采用如下公式获取:
Pestimated=Westimated/Wmax;其中,
Pestimated为下一个滑动窗口的期望的Pod副本数量;Westimated为下一个滑动窗口的HTTP请求量预测值;Wmax为单个Pod副本每时刻可以处理的最大HTTP请求量。
6.如权利要求5所述的Kubernetes的预测式弹性伸缩方法,其特征在于,所述根据期望的Pod副本数量对实际Pod副本数量进行调整包括:
获取当前应用的Pod副本数量;
根据所述期望的Pod副本数量以及当前应用的Pod副本数量对当前应用的Pod副本数量进行调整。
7.如权利要求6所述的Kubernetes的预测式弹性伸缩方法,其特征在于,所述加载模型数据,所述根据所述期望的Pod副本数量以及当前应用的Pod副本数量对当前应用的Pod副本数量进行调整包括:
判断期望的Pod副本数量是否大于当前应用的Pod副本数量,若是,则生成扩容命令。
8.如权利要求7所述的Kubernetes的预测式弹性伸缩方法,其特征在于,所述根据所述期望的Pod副本数量以及当前应用的Pod副本数量对当前应用的Pod副本数量进行调整进一步包括:
判断期望的Pod副本数量是否小于当前应用的Pod副本数量,若是,则生成缩容命令。
9.如权利要求8所述的Kubernetes的预测式弹性伸缩方法,其特征在于,在根据期望的Pod副本数量对当前应用的Pod副本数量进行调整之前,所述Kubernetes的预测式弹性伸缩方法进一步包括:
获取距离当前时刻最近的一次对当前应用的Pod副本数量进行调整的时间与当前时刻的时间差值;
判断时间差值是否超过预设冷却时间,若否,则不根据期望的Pod副本数量对当前应用的Pod副本数量进行调整。
10.一种Kubernetes的预测式弹性伸缩系统,其特征在于,所述Kubernetes的预测式弹性伸缩系统包括:
模型获取模块,所述模型获取模块用于获取经过训练的EEMD-CNN-BIGRU组合预测模型;
监控模块,所述监控模块用于获取当前时刻之前的预设时间内的负载量信息;
分析模块,所述分析模块用于将所述负载量信息输入至所述EEMD-CNN-BIGRU组合预测模型,从而获取下一个滑动窗口的HTTP请求量;
规划模块,所述规划模块用于根据下一个滑动窗口的HTTP请求量计算下一个滑动窗口的期望的Pod副本数量;
执行模块,所述执行模块用于根据期望的Pod副本数量对当前应用的Pod副本数量进行调整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211699602.1A CN115774605A (zh) | 2022-12-28 | 2022-12-28 | Kubernetes的预测式弹性伸缩方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211699602.1A CN115774605A (zh) | 2022-12-28 | 2022-12-28 | Kubernetes的预测式弹性伸缩方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115774605A true CN115774605A (zh) | 2023-03-10 |
Family
ID=85393052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211699602.1A Pending CN115774605A (zh) | 2022-12-28 | 2022-12-28 | Kubernetes的预测式弹性伸缩方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115774605A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610454A (zh) * | 2023-07-17 | 2023-08-18 | 中国海洋大学 | 一种基于maddpg算法的混合式云资源弹性伸缩系统及运行方法 |
-
2022
- 2022-12-28 CN CN202211699602.1A patent/CN115774605A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610454A (zh) * | 2023-07-17 | 2023-08-18 | 中国海洋大学 | 一种基于maddpg算法的混合式云资源弹性伸缩系统及运行方法 |
CN116610454B (zh) * | 2023-07-17 | 2023-10-17 | 中国海洋大学 | 一种基于maddpg算法的混合式云资源弹性伸缩系统及运行方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109978142B (zh) | 神经网络模型的压缩方法和装置 | |
CN108012156B (zh) | 一种视频处理方法及控制平台 | |
CN110298446B (zh) | 面向嵌入式系统的深度神经网络压缩和加速方法及系统 | |
CN114787824A (zh) | 联合混合模型 | |
CN112866136B (zh) | 业务数据处理方法和装置 | |
CN110363297A (zh) | 神经网络训练及图像处理方法、装置、设备和介质 | |
US20210142210A1 (en) | Multi-task segmented learning models | |
Kaur et al. | Dynamic resource allocation for big data streams based on data characteristics (5 V s) | |
CN115774605A (zh) | Kubernetes的预测式弹性伸缩方法及系统 | |
CN112132279A (zh) | 卷积神经网络模型压缩方法、装置、设备及存储介质 | |
Niu et al. | Machine learning-based framework for saliency detection in distorted images | |
CN111062431A (zh) | 图像聚类方法、图像聚类装置、电子设备及存储介质 | |
CN113485792A (zh) | 一种kubernetes集群内Pod调度方法、终端设备及存储介质 | |
Zhou et al. | AdaptCL: Efficient collaborative learning with dynamic and adaptive pruning | |
CN112529767B (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
WO2017015059A1 (en) | Efficient cache warm up based on user requests | |
CN114640669A (zh) | 边缘计算方法及装置 | |
CN116226139B (zh) | 一种适用大规模海洋数据的分布式存储和处理方法及系统 | |
CN110245688B (zh) | 一种数据处理的方法及相关装置 | |
CN112418388A (zh) | 一种实现深度卷积神经网络处理的方法及装置 | |
CN113807330B (zh) | 面向资源受限场景的三维视线估计方法及装置 | |
US10331700B2 (en) | System, method, and apparatus for dynamically replicating data for heterogeneous Hadoop | |
CN115130569A (zh) | 音频处理方法、装置及计算机设备、存储介质、程序产品 | |
CN113038118B (zh) | 一种基于大数据环境下的视频QoE预测系统及方法 | |
CN117056033A (zh) | 数据处理方法、装置、mec服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |