一种Kubernetes应用容器的预测混合自动伸缩方法技术

技术编号:37211302 阅读:14 留言:0更新日期:2023-04-20 23:01
本发明专利技术公开了一种Kubernetes应用容器的预测混合自动伸缩方法。首先,获取监控数据,并对监控数据进行预处理。然后,使用三指数平滑模型和DTR监督机器学习算法对Pod进行工作负载预测,通过三指数平滑模型预测Pod的副本数,再通过DTR监督机器学习算法预测分配给Pod的资源数。最后根据预测的Pod副本数和Pod资源数,对Pod进行水平和垂直自动伸缩。本发明专利技术方法可应用在Kubernetes容器编排平台上,能够有效解决现有Kubernetes上使用自动伸缩器时响应时间长、容器利用率低和无法保证应用服务QoS的问题。的问题。的问题。

【技术实现步骤摘要】
一种Kubernetes应用容器的预测混合自动伸缩方法


[0001]本专利技术属于Kubernetes容器资源编排平台,特别涉及一种Kubernetes应用容器的预测混合自动伸方法。

技术介绍

[0002]近年来,容器化技术发展迅速,在企业中的应用也越来越多。Docker是一个流行的应用程序容器引擎,它使开发的应用程序能够无缝迁移到Docker支持的操作系统,从而使交付更加容易。Kubernetes是一个基于Docker的开源容器管理平台,它可以在多个服务器节点之间部署容器,并在集群上调度和扩展这些容器。Kubernetes的水平自动伸缩是增加或减少Pod副本的数量,可以通过HPA(Horizontal Pod Autoscaler)功能实现;Kubernetes的垂直自动伸缩是增加或减少Pod副本请求的资源,可以通过VPA(Vertical Pod Autoscaler)功能实现。
[0003]但是,Kubernetes现有的自动伸缩方法存在以下不足:
[0004](1)现有的水平伸缩方法只是基于阈值的响应式伸缩,对突然增加的流量会有一定的响应滞后,无法保证响应时间;
[0005](2)现有的水平伸缩方法在低请求期间,会导致容器的低利用率;
[0006](3)现有的垂直伸缩方法在进行自动伸缩时,会中断应用服务,无法保证应用服务的QoS。
[0007]由此可见,目前Kubernetes中的自动伸缩方法在响应时间、利用率和QoS等方面还存在较多的问题,因此需要一种Kubernetes应用容器的预测混合自动伸缩方法来解决这些问题。本专利技术提供的一种Kubernetes应用容器的预测混合自动伸缩方法,通过三指数平滑模型对Pod副本进行预测部署,在水平自动伸缩上降低应用副本的响应时间和提高容器的利用率,通过DTR监督机器学习算法对Pod资源进行预测,在垂直自动伸缩上保证应用服务的QoS。

技术实现思路

[0008]本专利技术的目的在于改进目前Kubernetes中的自动伸缩方法,提出一种Kubernetes应用容器的预测混合自动伸缩方法。通过三指数平滑模型对Pod副本进行预测部署,在水平自动伸缩上降低应用副本的响应时间和提高容器的利用率,通过DTR监督机器学习算法对Pod资源进行预测,在垂直自动伸缩上保证应用服务的QoS。
[0009]本专利技术是这样实现的:一种Kubernetes应用容器的预测混合自动伸缩器,包括以下步骤:
[0010]步骤S1.数据获取:获取实时监控数据;
[0011]步骤S2.数据预处理:对监控数据进行归一化处理;
[0012]步骤S3.工作负载预测:使用三指数平滑模型和DTR监督机器学习算法对Pod进行预测;
[0013]步骤S4.更新控制:根据预测值,对Pod进行水平和垂直自动伸缩。
[0014]在所述步骤S2中的对监控数据进行归一化处理是将监控数据集归一化到(0,1)之间,归一化公式如下:
[0015][0016]其中,x'表示归一化后的监控数据,x表示原始监控数据,x
min
,x
max
表示监控数据集中最大值和最小值。
[0017]在所述步骤S3中使用三指数平滑模型和DTR监督机器学习算法对Pod进行预测,所述步骤S3具体如下:
[0018]S31.使用三指数平滑模型对Pod副本数进行预测,然后进行Pod扩缩容,三指数平滑模型公式如下:
[0019][0020]其中,γ为平滑参数,h为预测时间与当前时间的时间差,x(t+h)为t+h时刻的预测值,a
t
,b
t
,c
t
为t时刻的预测参数,计算公式如下:
[0021][0022]在所述步骤S31中对Pod进行扩缩容,具体包括如下步骤:
[0023]S311.判断是扩容还是缩容,若是扩容则执行S312,若是缩容则执行S313;
[0024]S312.获取需要扩容的预测Pod副本数;
[0025]S313.采用反应式收缩算法,计算需要缩容的预测Pod副本数,反应式收缩算法公式如下:
[0026]desiredRas = ceil[currentRas * ( currentMV / desiredMV )]ꢀꢀ
(4)
[0027]其中,currentRas表示当前Pod的数量,currentMV表示当前的度量值,desiredMV表示期望的度量值,desiredRas表示期望的Pod副本数量;
[0028]S32.使用DTR监督机器学习算法对Pod资源进行预测是获取Pod预测资源数。
[0029]在所述步骤S4中根据预测值,对Pod进行水平和垂直自动伸缩是根据预测的Pod副本数和Pod预测资源数对Pod进行水平和垂直自动伸缩,具体包括如下步骤:
[0030]S41.获取预测值;
[0031]S42.判断预测值是Pod预测副本数还是Pod预测资源数,若是Pod预测副本数则执行S43,若是Pod预测资源数则执行S44;
[0032]S43.对Pod进行水平自动伸缩;
[0033]S44.对Pod进行垂直自动伸缩;
[0034]S45.结束水平和垂直自动伸缩。
[0035]在所述步骤S44中对Pod进行垂直自动伸缩,具体包括如下步骤:
[0036]S441.获取Pod预测资源数;
[0037]S442.更新此Pod分配的资源数;
[0038]S443.重新部署此Pod;
[0039]S444.删除原有部署的Pod。
[0040]与原有的Kubernetes自动伸缩方法相比,一种Kubernetes应用容器的预测混合自动伸缩方法有以下的优点:
[0041](1)通过三指数平滑模型对Pod副本进行预测部署,在水平自动伸缩上降低应用副本的响应时间和提高容器的利用率;
[0042](2)通过DTR监督机器学习算法对Pod资源进行预测,在垂直自动伸缩上保证应用服务的QoS。
附图说明
[0043]图1为本专利技术一种Kubernetes应用容器的预测混合自动伸缩方法步骤示意图。
[0044]图2为本专利技术实施例中对Pod进行水平和垂直自动伸缩流程图。
具体实施方式
[0045]为了更加清楚、直观地说明本专利技术的技术方案,将结合附图与实施例做进一步说明。
[0046]实施例:如图1所示为本专利技术一种Kubernetes应用容器的预测混合自动伸缩方法步骤示意图,实施步骤如下所示:
[0047]步骤S1.数据获取:通过部署Prometheus组件获取实时监控数据,数据分为训练集合测试集,训练集和测试集的比例为8:2;
[0048]步骤S2.数据预处理:将监控数据归一化到(0,1)之间,归一化公式如下:
[0049][0050]其中,x'表示归一化后的监控数据,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Kubernetes应用容器的预测混合自动伸缩方法,其特征在于,包含以下步骤:步骤S1.数据获取:获取实时监控数据;步骤S2.数据预处理:对监控数据进行归一化处理;步骤S3.工作负载预测:使用三指数平滑模型和DTR监督机器学习算法对Pod进行预测;步骤S4.更新控制:根据预测值,对Pod进行水平和垂直自动伸缩。2.根据权利要求1所述的一种Kubernetes应用容器的预测混合自动伸缩方法,其特征在于,所述步骤S2中对监控数据进行归一化处理是将监控数据集归一化到(0,1)之间,归一化公式如下:其中,x'表示归一化后的监控数据,x表示原始监控数据,x
min
,x
max
表示监控数据集中最大值和最小值。3.根据权利要求1所述的一种Kubernetes应用容器的预测混合自动伸缩方法,其特征在于,所述步骤S3中使用三指数平滑模型和DTR监督机器学习算法对Pod进行预测,具体包括如下步骤:S31.使用三指数平滑模型对Pod副本数进行预测,然后进行Pod扩缩容,三指数平滑模型公式如下:其中,γ为平滑参数,h为预测时间与当前时间的时间差,x(t+h)为t+h时刻的预测值,a
t
,b
t
,c
t
为t时刻的预测参数,计算公式如下:S32.使用DTR监督机器学习算法对Pod资源进行预测是获取Pod预测资源数。4.根据权利要求1所述的一种Kubernetes应用容器的预测混合自动伸缩方其特征在于,所述步骤S4中根据预...

【专利技术属性】
技术研发人员:谢晓兰高荣徐克顺刘亚荣
申请(专利权)人:桂林理工大学
类型:发明
国别省市:

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

1