CN115237610B - 一种基于Kubernetes容器云平台的弹性伸缩方法、装置及应用 - Google Patents
一种基于Kubernetes容器云平台的弹性伸缩方法、装置及应用 Download PDFInfo
- Publication number
- CN115237610B CN115237610B CN202211169483.9A CN202211169483A CN115237610B CN 115237610 B CN115237610 B CN 115237610B CN 202211169483 A CN202211169483 A CN 202211169483A CN 115237610 B CN115237610 B CN 115237610B
- Authority
- CN
- China
- Prior art keywords
- algorithm
- load rate
- pod
- comprehensive load
- comprehensive
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提出了一种基于Kubernetes容器云平台的弹性伸缩方法、装置及应用,包括以下步骤:持续获取算法pod当前时刻的当前任务数据,计算所述当前任务数据的当前综合负载率,将所述综合负载率时间序列输入ARIMA‑Kalman预测模型进行预测得到预测综合负载率;当某一时刻的预测综合负载率大于第一设定阈值,则在该时刻后的第一设定时间段后对所述算法pod进行扩容;当某一时刻的预测综合负载率小于第二设定阈值,则在该时刻后的第二设定时间段后对所述算法pod进行缩容。本方案通过ARIMA‑Kalman预测模型对多种资源的综合负载率进行实时预测,来对算法pod进行弹性收缩。
Description
技术领域
本申请涉及云计算技术领域,特别是涉及一种基于Kubernetes容器云平台的弹性伸缩方法、装置及应用。
背景技术
在传统物理服务器时代,为了应对不断变化的业务请求流量,通常高峰期会部署较多的服务器来处理,而在低谷期过多的服务器会造成资源浪费,又无法迅速回收物理服务器,近些年随着云计算技术,特别是容器相关的蓬勃发展,Docker和Kubernetes技术已经成为众多企业应用交付的标准,作为目前主流的容器云编排和管理系统,Kubernetes内置的伸缩策略是通过监测衡量指标并与阈值比较计算,从而实现伸缩的功能,该策略主要存在单一衡量指标和相应延迟的问题,单一指标在衡量多种资源消耗的负载应用时存在明显缺陷;相应延迟问题会造成应用在一段时间内的服务质量无法保障。
现有原生的Kubernetes技术平台中,弹性伸缩是通过监测用户指定的评价指标,使用阈值的方式针对性地进行水平扩容和缩容,以保障应用服务质量和节省资源,针对扩容和缩容时的不同特征,分别提出了快速扩容算法和逐步收缩算法,通过在工作负载增加时快速创建多个pod和在工作负载降低时逐步缩容的方式保障应用的服务质量,亦或者使用了基于动态参数的指数平滑法对资源利用量进行预测,通过预测式扩容和响应式扩容相结合的办法解决Kubernetes扩容时的相应延迟问题,但是这些伸缩策略大多基于内存、CPU、带宽等现有资源的单一监控,而不是从业务出发,并不能准确的反应出应用负载接下来的变化,另外虽然有一些开源方案基于动态参数的指数平滑法做了一些预测,但是在预测精度上明显不足,更多的还是响应式伸缩,在负载高峰,从出发扩容到相应用户请求的这段时间服务质量无法得到保证,容易频繁伸缩,造成系统抖动。
综上所述,虽然目前针对Kubernetes弹性伸缩的方法已经存在许多,但是仍有很大的改善空间,尤其是对于原生不支持的GPU等资源的伸缩。
发明内容
本申请实施例提供了一种基于Kubernetes容器云平台的弹性伸缩方法、装置及应用,针对Kubernetes容器云平台在高峰期资源紧缺或者低谷期造成资源浪费的现象,实现通过综合负载率结合ARIMA-Kalman模型实现Kubernetes容器云平台的自动伸缩。
第一方面,本申请实施例提供了种基于Kubernetes容器云平台的弹性伸缩方法,所述方法包括:
持续获取算法pod当前时刻的当前任务数据,计算所述当前任务数据的当前综合负载率,所述当前综合负载率结合过往时刻的过往综合负载率得到综合负载率时间序列,所述综合负载率时间序列输入到经训练后的ARIMA-Kalman预测模型进行预测得到预测综合负载率;
所述算法pod中包含调度器,所述调度器基于所述预测综合负载对所述算法pod进行动态伸缩,当某一时刻的预测综合负载率大于第一设定阈值,则在该时刻后的第一设定时间段后对所述算法pod进行扩容;
当某一时刻的预测综合负载率小于第二设定阈值,则在该时刻后的第二设定时间段后对所述算法pod进行缩容。
第二方面,本申请实施例提供了一种基于Kubernetes容器云平台的弹性伸缩装置,包括:
获取模块:持续获取算法pod当前时刻的当前任务数据,计算所述当前任务数据的当前综合负载率,所述当前综合负载率结合过往时刻的过往综合负载率得到综合负载率时间序列,所述综合负载率时间序列输入到经训练后的ARIMA-Kalman预测模型进行预测得到预测综合负载率;
扩容模块:所述算法pod中包含调度器,所述调度器基于所述预测综合负载对所述算法pod进行动态伸缩,当某一时刻的预测综合负载率大于第一设定阈值,则在该时刻后的第一设定时间段后对所述算法pod进行扩容;
缩容模块:当某一时刻的预测综合负载率小于第二设定阈值,则在该时刻后的第二设定时间段后对所述算法pod进行缩容。
第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行一种基于Kubernetes容器云平台的弹性伸缩方法。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括一种基于Kubernetes容器云平台的弹性伸缩方法。
本发明的主要贡献和创新点如下:
本申请实施例通过对所述Kubernetes容器云平台中的算法pod的历史任务队列进行分析,得到所述历史任务队列中每一时刻的综合负载率,并将所述综合负载率送入ARIMA-Kalman模型中进行预测,得到预测综合负载率,将所述预测综合负载率作为Kubernetes容器云平台中的算法pod进行弹性伸缩的指标;所述综合负载率包括了所述Kubernetes容器云平台中算法pod的所有资源类型,并未每一资源类型分配不同的权重进行预测,提高了预测精度;本申请实施例提出的预测方法可以提前预测算法pod的综合负载率,以提前进行扩容或伸缩,减少系统抖动,减少系统相应时间。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种基于Kubernetes容器云平台的弹性伸缩方法的流程图;
图2是根据本申请实施例的一种ARIMA-Kalman模型的算法流程图;
图3是根据本申请实施例的一种伸缩规则的流程图;
图4是根据本申请实施例的一种Kubernetes扩展对象的架构图;
图5是根据本申请实施例的一种基于Kubernetes容器云平台的弹性伸缩装置的结构框图;
图6是根据本申请实施例的电子装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
为了方便理解本申请实施例,本申请实施例中出现的一些名词在此加以解释:
算法pod:Pod是Kubernetes资源控制的基本单位,可以包含多个容器。算法Pod含有多个算法服务,通过开放API接口服务。不同的算法对于资源的需求不同,包括内存、GPU、内核、视频流网络带宽等。
实施例一
本申请实施例提供了一种基于Kubernetes容器云平台的弹性伸缩方法,可以根据Kubernetes容器云平台的任务队列进行综合资源负载的预测,并根据预测进行预测式伸缩,参考图1,所述方法包括:
持续获取算法pod当前时刻的当前任务数据,计算所述当前任务数据的当前综合负载率,所述当前综合负载率结合过往时刻的过往综合负载率得到综合负载率时间序列,所述综合负载率时间序列输入到经训练后的ARIMA-Kalman预测模型进行预测得到预测综合负载率;
所述算法pod中包含调度器,所述调度器基于所述预测综合负载对所述算法pod进行动态伸缩,当某一时刻的预测综合负载率大于第一设定阈值,则在该时刻后的第一设定时间段后对所述算法pod进行扩容;
当某一时刻的预测综合负载率小于第二设定阈值,则在该时刻后的第二设定时间段后对所述算法pod进行缩容。
在一些实施例中,每一算法pod处理至少一调度不同资源的任务,所述综合负载率为算法pod对不同资源的综合资源利用率,当所述算法pod对某项某一种类资源的资源利用率大于上限阈值,所述综合负载率取所述算法pod对不同种类资源的资源利用率的最大值;当所述算法pod所有种类资源的资源利用率小于下限阈值,所述综合负载率取所述算法pod对不同种类资源利用率的最大值,当所述算法pod对任一种类资源的资源利用率不大于上限阈值且不小于下限阈值,所述综合负载率为算法pod对不同资源的资源利用率和相应的动态权重的乘积的总和。
具体的,可以通过综合负载率反应所述算法pod的整体负载水平,所述综合负载率的计算判断公式如下:
其中,CLR表示某一时刻的综合负载率,k代表资源类别数,Ci代表某一时刻所述算法pod对资源i的使用率,使用所述算法pod在该时刻对资源i的使用量比上容器云平台在该时刻对算法pod的资源分配量得到,Cmax表示当某一类别的资源高于上限阈值或所有类别的资源都小于下限阈值时,所述算法pod对不同种类资源利用率的最大值,在本申请实施例中,资源有四种类别,分别为CPU资源、GPU资源、内核资源、网络带宽资源,i代表不同类别的资源,mi表示i类别资源的动态权值,在本申请实施例中,将CPU资源的动态权值设置为0.3,GPU资源的动态权值设置为0.4,内核资源的动态权值设置为0.2,网络带宽资源的动态权值设置为0.1,所述综合负载率反应当前时刻所述算法pod的整体资源负载水平,实现从业务出发进行预测。
在一些实施例中,所述资源利用率为所述算法pod对某一种类资源的使用量与所述容器云平台对该种类资源分配量的比值。
示例性的,使用Ti代表某一时刻对资源i的资源需求,使用Ui来代表所述算法pod对资源i的使用量,则Ui=∑Ti,使用Ri代表所述容器云平台在该时刻对算法pod上的资源i的分配量,则在该时刻所述算法pod对资源i的利用率为Ci=Ui/Ri,为每种资源赋予不同的动态权值,算法pod对不同资源的资源利用率和相应的动态权重的乘积的总和为所述综合负载率CLR。
具体的,所述当前任务数据通过Kubernetes容器云平台上任意一种数据采集装置获得,所述当前任务数据包括每一时刻的任务到达时间、任务相应时间、任务资源需求等信息,将所述当前任务数据存放在kubernetes容器云平台的时序数据库中,对所述当前任务数据进行综合负载率的计算得到当前综合负载率,对所述时序数据库中的数据进行综合负载率的计算得到过往综合负载率。
在一些实施例中,所述综合负载率时间序列输入到所述ARIMA-Kalman预测模型中利用ARIMA模型计算出下一时刻的第一预测负载值,所述第一预测负载值基于Kalman滤波的状态公式转换为状态矩阵,所述状态矩阵利用Kalman滤波的测量公式得到下一时刻的预测综合负载。
进一步的,如图2所示,所述ARIMA-Kalman预测模型是将ARIMA模型与Kalman滤波模型相结合,先利用ARIMA模型建立低阶预测模型,再使用所述低阶预测模型计算Kalman滤波模型的状态方程和测量方程,最后通过Kalman滤波模型的状态方程和测量方程进行预测得到预测综合负载率。
示例性的,对所述综合负载率的时间序列进行平稳化处理,根据所述综合负载率数据建立散点图,自相关函数图和偏自相关函数图,利用图像和游程检验法来检验序列平稳性,若所述综合负载率数据的序列不平稳,则进行差分操作,直到通过平稳性检验,确认差分次数为d。
示例性的,对所述ARIMA模型进行参数确认,所述ARIMA模型的三个参数为ARIMA(p,d,q),其中p为自回归项数,q为滑动平均项数,p和q通过使用固定步长,遍历求出最小AIC(AIC是一种用于模型选择的指标,同时考虑模型的拟合程度以及简单性)信息准则时p和q的值,d代表所述综合负载率数据的序列进行平稳化处理过程中的差分次数。
具体的,所述ARIMA模型的一般表达式为φ(b)Kdxt=θ(b)et,xt为t时刻对应的综合负载率,t=1,2,…,t为自回归项;θ(b)为移动平均项;et为均值为0,方差为2的正态白噪声过程,表达式中:
φ(b)=1-φ1(t)b-φ2(t)b2-…φp(t)bp
θ(b)=1-θ1(t)b-θ2(t)b2-…θq(t)bq
K=1-b
其中,φi(t)为待估的自回归项系数,i=1,2,…p;θj(t)为待估的滑动平均项系数,j=1,2,…q;b为后移差分算子;k为差分算子;d为差分阶数;p为自回归阶数;q为滑动平均阶数,根据所述ARIMA模型的一般表达式得到t+1时刻对应的预测负载率,如公式一所述:
x(t+1)=φ1(t)*x(t)+ φ2(t)*x(t-1)…φp(t)*x(t-p+1)-θ1(t)*e(t)- θ2(t)*e(t-1)…θq(t)*e(t-q+1)
其中,x(t+1),x(t),…x(t-p+1)分别表示t+1,t,…,t-p+1时刻对应的综合负载率;φ1(t),φ2(t),…,φp(t)表示t时刻的自回归项系数;θ1(t),θ2(t),…,θp(t)表示t时刻的滑动平均项系数;e(t+1),e(t),…e(t-q+1)为t+1,t,…,t-p+1时刻对应的噪声值,且服从正态分布。
具体的,所述Kalman滤波模型的状态方程和测量方程如下:
Xt+1=AXt+Wt状态方程
Yt=BXt+Vt测量方程
其中,Xt+1为所述算法pod的n维状态向量,Yt为系统的m维观测向量,Wt是系统的p维随机干扰向量,Vt是系统的随机m维测量噪声向量,A是系统的n*n维状态转移矩阵,B是系统的测量矩阵。
示例性的,所述Kalman滤波模型的状态转移矩阵A、测量矩阵B、状态噪声向量Wk、测量噪声向量Vk由ARIMA(p,d,q)确定,所述Kalman滤波模型的初始状态X(0),协方差矩阵P(0|0)根据所述综合负载率的历史数据进行回测确定。
也就是说,当X1(t)=X(t), X2(t)=X(t-1),…, Xp(t)=X(t-p+1),e1(t)=e(t),e2(t)=e(t-1),…,eq(t)=e(t-q+1)时,则ARIMA模型可以表达为公式四:
x(t+1)=φ1(t)*x1(t)+φ2(t)*x2(t)…φp(t)*xp(t)+e1(t+1)-θ1(t)*e1(t)-θ2(t)*e2(t)…θq(t)*eq(t)
其中,x1(t),x2(t),…,xp(t)分别表示在t时刻综合负载率在自回归项为1,2,…,p时的对应值;e1(t),e2(t),…,eq(t)分别表示在t时刻的白噪声值。
进一步的,将公式四根据状态方程转为为矩阵表示得到公式五:
再根据状态方程、测量方程、公式四、公式五得到Kalman滤波模型的测量方程公式六:
其中,Y(t+1)表示t+1时刻对应的综合负载率,x1(t+1),x2(t+1),…xp(t+1)分别表示t+1时刻对应的综合负载率在自回归项为1,2,…,p时的对应值。
具体的,根据公式五、公式六并结合Kalman滤波算法,可得公式七:
其中,X(t+1|t)为基于t时刻对t+1时刻进行预测得到的预测综合负载率;P(t+1|t)为X(t+1|t)对应的协方差矩阵;R1,…,Rq为白噪声e1,e2,…,eq对应的协方差矩阵;Q为状态方程白噪声的协方差矩阵;A为系统的状态转移矩阵,B为系统的观测矩阵。
具体的,根据公式七可得,t+1时刻的预测综合负载率为:
Y(t+1)=BX(t+1|t+1)
在一些实施例中,将所述综合负载率的时间序列转换为平稳的时间序列后送入ARIMA-Kalman预测模型得到预测综合负载率,根据所述算法pod的后续任务队列,计算得出所述算法pod的任务综合负载率,将同一时刻的所述预测综合负载率与所述任务综合负载率进行对比,若所述预测综合负载率与所述任务综合负载率相差不大,则所述ARIMA-Kalman预测模型建立成功,若所述预测综合负载率与所述预测综合负载率相差较大,则所述ARIMA-Kalman预测模型建立失败,重新对所述ARIMA-Kalman预测模型进行训练。
示例性的,可以使用任何一种损失函数将所述预测综合负载率与已知综合负载率进行比对。
在一些实施例中,在“当某一时刻的预测综合负载率大于第一设定阈值,所述调度器在第一设定时间段后对所述算法pod进行扩容”步骤中,所述调度器会在所述第一设定时间段内对所述算法pod的综合负载率进行持续预测,获得多个预测结果,若多次预测结果中所述综合负载率大于所述第一设定阈值的次数小于第一设定次数,则取消对所述算法pod的扩容任务。
进一步的,若所述预测综合负载率中其中任意一项资源的使用量大于该资源的分配量,则直接认为所述预测综合负载率大于第一设定阈值。
示例性的,所述第一设定阈值可以为人为设定,在本申请实施例中,所述第一设定阈值为85%,如果某一时刻的预测综合负载率大于85%,所述调度器在第一设定时间段后对所述算法pod进行扩容。
示例性的,所述第一设定次数为3次,当在所述第一时间段内得到的多次预测结果中的综合负载率大于85%的次数小于3次,则通知所述调度器取消对所述算法pod的扩容任务。
具体的,对所述算法pod进行扩容的步骤为:获取所述算法pod的名称和期望副本容器数,将所述算法pod的名称和期望副本容器数整合给所述Kubernetes容器云平台自带的自动伸缩器,所述自动伸缩器向Kuberneters容器云平台的API服务器发送扩容请求,修改所述算法pod的副本容器数,所述算法pod的副本容器数修改后,Kubernetes容器云平台会通过自带的list-watch机制自动增加算法pod的副本容器数量,完成扩容,本方案通过提前对所述算法pod进行扩容,在扩容时不影响用户使用,提升服务质量。
在一些实施例中,所述第一设定时间段的时长为所述综合负载率时间序列的时间间隔的五倍减去两倍的容器镜像下载时间再减去两倍的容器启动时间。
具体的,对所述算法pod进行扩容时需要生成新的副本容器,所述容器镜像下载时间为在所述副本容器的下载时间,所述容器启动时间为启动所述副本容器所需要的时间,所述容器镜像下载时间与所述容器启动时间通过对所述算法pod的历史数据进行预估得到。
在一些实施例中,在“当某一时刻的预测综合负载率小于第二设定阈值,所述调度器在第二设定时间段后对所述算法pod进行缩容”步骤中,所述调度器会在所述第二设定时间段内对所述算法pod的综合负载率进行持续预测,获得多个预测结果,若多次预测结果中所述综合负载率小于所述第二设定阈值的次数小于第二设定次数,则取消对所述算法pod的缩容任务。
进一步的,若所述预测综合负载率中所有种类的资源的使用量小于对应资源的分配量,则直接认为所述预测综合负载率小于第二设定阈值。
示例性的,所述第二设定阈值可以为人为设定,在本申请实施例中,所述第二设定阈值为40%,如果某一时刻的预测综合负载率小于40%,所述调度器在第二设定时间段后对所述算法pod进行缩容。
示例性的,所述第二设定次数为3次,当在所述第二时间段内得到的多次预测结果中的综合负载率小于40%的次数小于3次,则通知所述调度器取消对所述算法pod的扩容任务。
在一些实施例中,所述第二设定时间段的时长为所述综合负载率时间序列的五倍时间间隔,其中所述第二设定阈值小于所述第一设定阈值。
示例性的,若所述算法pod的副本容器数量等于1,将不触发缩容。
具体的,对所述算法pod进行缩容的步骤为:获取所述算法pod的名称和期望副本容器数,将所述算法pod的名称和期望副本容器数整合给所述Kubernetes容器云平台自带的自动伸缩器,所述自动伸缩器向Kuberneters容器云平台的API服务器发送缩容请求,修改所述算法pod的副本容器数,所述算法pod的副本容器数修改后,Kubernetes容器云平台会通过自带的list-watch机制自动减少算法pod,完成缩容,本方案通过提前对所述算法pod进行缩容,在缩容时不影响用户使用,提升服务质量。
在一具体实施例中,对所述算法pod进行伸缩的规则如图3所示,将所述算法pod的伸缩记录保存至数据库中,便于技术人员进行查看。
在一些实施例中,如图4所示,根据上述伸缩规则生成自定义的Kubernetes扩展对象,集成到所述Kubernetes容器云平台中,所述Kubernetes扩展对象包括数据采集装置、CLR预测模块、策略模块、伸缩模块,在所述Kubernetes扩展对象运行过程中,所述数据采集装置持续监控并收集每一所述算法pod的综合负载率并形成时间序列,所述CLR预测模块根据所述ARIMA-Kalman模型不断生成预测综合负载率,所述策略模块和所述伸缩模块对所述算法pod进行扩容或缩容。
实施例二
基于相同的构思,参考图5,本申请还提出了一种基于Kubernetes容器云平台的弹性伸缩装置,包括:
获取模块:持续获取算法pod当前时刻的当前任务数据,计算所述当前任务数据的当前综合负载率,所述当前综合负载率结合过往时刻的过往综合负载率得到综合负载率时间序列,所述综合负载率时间序列输入到经训练后的ARIMA-Kalman预测模型进行预测得到预测综合负载率;
扩容模块:所述算法pod中包含调度器,所述调度器基于所述预测综合负载对所述算法pod进行动态伸缩,当某一时刻的预测综合负载率大于第一设定阈值,则在该时刻后的第一设定时间段后对所述算法pod进行扩容;
缩容模块:当某一时刻的预测综合负载率小于第二设定阈值,则在该时刻后的第二设定时间段后对所述算法pod进行缩容。
实施例三
本实施例还提供了一种电子装置,参考图6,包括存储器404和处理器402,该存储器404中存储有计算机程序,该处理器402被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
具体地,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecificIntegratedCircuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器404可以包括用于数据或指令的大容量存储器404。举例来说而非限制,存储器404可包括硬盘驱动器(HardDiskDrive,简称为HDD)、软盘驱动器、固态驱动器(SolidStateDrive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器404可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器404可在数据处理装置的内部或外部。在特定实施例中,存储器404是非易失性(Non-Volatile)存储器。在特定实施例中,存储器404包括只读存储器(Read-OnlyMemory,简称为ROM)和随机存取存储器(RandomAccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-OnlyMemory,简称为PROM)、可擦除PROM(ErasableProgrammableRead-OnlyMemory,简称为EPROM)、电可擦除PROM(ElectricallyErasableProgrammableRead-OnlyMemory,简称为EEPROM)、电可改写ROM(ElectricallyAlterableRead-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom-AccessMemory,简称为SRAM)或动态随机存取存储器(DynamicRandomAccessMemory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器404(FastPageModeDynamicRandomAccessMemory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDateOutDynamicRandomAccessMemory,简称为EDODRAM)、同步动态随机存取内存(SynchronousDynamicRandom-AccessMemory,简称SDRAM)等。
存储器404可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的计算机程序指令。
处理器402通过读取并执行存储器404中存储的计算机程序指令,以实现上述实施例中的任意一种基于Kubernetes容器云平台的弹性伸缩方法。
可选地,上述电子装置还可以包括传输设备406以及输入输出设备408,其中,该传输设备406和上述处理器402连接,该输入输出设备408和上述处理器402连接。
传输设备406可以用来经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的有线或无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备408用于输入或输出信息。在本实施例中,输入的信息可以是算法pod的历史任务数据,综合负载率等,输出的信息可以是预测综合负载率、扩容或缩容结果等。
可选地,在本实施例中,上述处理器402可以被设置为通过计算机程序执行以下步骤:
S101、持续获取算法pod当前时刻的当前任务数据,计算所述当前任务数据的当前综合负载率,所述当前综合负载率结合过往时刻的过往综合负载率得到综合负载率时间序列,所述综合负载率时间序列输入到经训练后的ARIMA-Kalman预测模型进行预测得到预测综合负载率;
S102、所述算法pod中包含调度器,所述调度器基于所述预测综合负载对所述算法pod进行动态伸缩,当某一时刻的预测综合负载率大于第一设定阈值,则在该时刻后的第一设定时间段后对所述算法pod进行扩容;
S103、当某一时刻的预测综合负载率小于第二设定阈值,则在该时刻后的第二设定时间段后对所述算法pod进行缩容。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
通常,各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。本发明的一些方面可以以硬件来实现,而其他方面可以以可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,但是本发明不限于此。尽管本发明的各个方面可以被示出和描述为框图、流程图或使用一些其他图形表示,但是应当理解,作为非限制性示例,本文中描述的这些框、装置、系统、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某种组合来实现。
本发明的实施例可以由计算机软件来实现,该计算机软件由移动设备的数据处理器诸如在处理器实体中可执行,或者由硬件来实现,或者由软件和硬件的组合来实现。包括软件例程、小程序和/或宏的计算机软件或程序(也称为程序产品)可以存储在任何装置可读数据存储介质中,并且它们包括用于执行特定任务的程序指令。计算机程序产品可以包括当程序运行时被配置为执行实施例的一个或多个计算机可执行组件。一个或多个计算机可执行组件可以是至少一个软件代码或其一部分。另外,在这一点上,应当注意,如图6中的逻辑流程的任何框可以表示程序步骤、或者互连的逻辑电路、框和功能、或者程序步骤和逻辑电路、框和功能的组合。软件可以存储在诸如存储器芯片或在处理器内实现的存储块等物理介质、诸如硬盘或软盘等磁性介质、以及诸如例如DVD及其数据变体、CD等光学介质上。物理介质是非瞬态介质。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (8)
1.一种基于Kubernetes容器云平台的弹性伸缩方法,其特征在于,包括以下步骤:
持续获取算法pod当前时刻的当前任务数据,计算所述当前任务数据的当前综合负载率,所述当前综合负载率结合过往时刻的过往综合负载率得到综合负载率时间序列,所述综合负载率时间序列输入到经训练后的ARIMA-Kalman预测模型进行预测得到预测综合负载率;
所述算法pod中包含调度器,所述调度器基于所述预测综合负载率对所述算法pod进行动态伸缩,当某一时刻的预测综合负载率大于第一设定阈值,所述调度器在第一设定时间段后对所述算法pod进行扩容,所述调度器会在所述第一设定时间段内对所述算法pod的综合负载率进行持续预测,获得多个预测结果,若多次预测结果中所述综合负载率大于所述第一设定阈值的次数小于第一设定次数,则取消对所述算法pod的扩容任务;
当某一时刻的预测综合负载率小于第二设定阈值,所述调度器在第二设定时间段后对所述算法pod进行缩容,所述调度器会在所述第二设定时间段内对所述算法pod的综合负载率进行持续预测,获得多个预测结果,若多次预测结果中所述综合负载率小于所述第二设定阈值的次数小于第二设定次数,则取消对所述算法pod的缩容任务。
2.根据权利要求1所述的一种基于Kubernetes容器云平台的弹性伸缩方法,其特征在于,每一算法pod处理至少一调度不同资源的任务,所述综合负载率为算法pod对不同资源的综合资源利用率,当所述算法pod对某项某一种类资源的资源利用率大于上限阈值,所述综合负载率取所述算法pod对不同种类资源的资源利用率的最大值;当所述算法pod所有种类资源的资源利用率小于下限阈值,所述综合负载率取所述算法pod对不同种类资源利用率的最大值,当所述算法pod对任一种类资源的资源利用率不大于上限阈值且不小于下限阈值,所述综合负载率为算法pod对不同资源的资源利用率和相应的动态权重 的乘积的总和。
3.根据权利要求2所述的一种基于Kubernetes容器云平台的弹性伸缩方法,其特征在于,所述资源利用率为所述算法pod对某一种类资源的使用量与所述容器云平台对该种类资源分配量的比值。
4.根据权利要求1所述的一种基于Kubernetes容器云平台的弹性伸缩方法,其特征在于,所述第一设定时间段的时长为所述综合负载率时间序列的时间间隔的五倍减去两倍的容器镜像下载时间再减去两倍的容器启动时间。
5.根据权利要求1所述的一种基于Kubernetes容器云平台的弹性伸缩方法,其特征在于,所述第二设定时间段的时长为所述综合负载率时间序列的五倍时间间隔,其中所述第二设定阈值小于所述第一设定阈值。
6.一种基于Kubernetes容器云平台的弹性伸缩装置,其特征在于,包括:
获取模块:持续获取算法pod当前时刻的当前任务数据,计算所述当前任务数据的当前综合负载率,所述当前综合负载率结合过往时刻的过往综合负载率得到综合负载率时间序列,所述综合负载率时间序列输入到经训练后的ARIMA-Kalman预测模型进行预测得到预测综合负载率;
扩容模块:所述算法pod中包含调度器,所述调度器基于所述预测综合负载率对所述算法pod进行动态伸缩,当某一时刻的预测综合负载率大于第一设定阈值,所述调度器在第一设定时间段后对所述算法pod进行扩容,所述调度器会在所述第一设定时间段内对所述算法pod的综合负载率进行持续预测,获得多个预测结果,若多次预测结果中所述综合负载率大于所述第一设定阈值的次数小于第一设定次数,则取消对所述算法pod的扩容任务;
缩容装置:当某一时刻的预测综合负载率小于第二设定阈值,所述调度器在第二设定时间段后对所述算法pod进行缩容,所述调度器会在所述第二设定时间段内对所述算法pod的综合负载率进行持续预测,获得多个预测结果,若多次预测结果中所述综合负载率小于所述第二设定阈值的次数小于第二设定次数,则取消对所述算法pod的缩容任务。
7.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1-5任一所述的一种基于Kubernetes容器云平台的弹性伸缩方法。
8.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据权利要求1-5任一所述的一种基于Kubernetes容器云平台的弹性伸缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211169483.9A CN115237610B (zh) | 2022-09-26 | 2022-09-26 | 一种基于Kubernetes容器云平台的弹性伸缩方法、装置及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211169483.9A CN115237610B (zh) | 2022-09-26 | 2022-09-26 | 一种基于Kubernetes容器云平台的弹性伸缩方法、装置及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115237610A CN115237610A (zh) | 2022-10-25 |
CN115237610B true CN115237610B (zh) | 2023-03-21 |
Family
ID=83667316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211169483.9A Active CN115237610B (zh) | 2022-09-26 | 2022-09-26 | 一种基于Kubernetes容器云平台的弹性伸缩方法、装置及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115237610B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017128979A1 (zh) * | 2016-01-30 | 2017-08-03 | 华为技术有限公司 | 一种资源管理方法及设备 |
CN114816728A (zh) * | 2022-03-07 | 2022-07-29 | 浪潮云信息技术股份公司 | 一种云环境MongoDB数据库集群实例节点弹性伸缩方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11294733B2 (en) * | 2019-09-12 | 2022-04-05 | Pivotal Software, Inc. | Dynamic autoscaler for cloud platform |
CN111913803B (zh) * | 2020-07-21 | 2023-12-29 | 哈尔滨工程大学 | 一种基于akx混合模型的服务负载细粒度预测方法 |
CN112532687B (zh) * | 2020-11-03 | 2022-07-08 | 杭州朗澈科技有限公司 | kubernetes负载均衡器扩容方法和系统 |
CN114296867A (zh) * | 2021-12-17 | 2022-04-08 | 山东海量信息技术研究院 | 一种云平台的容器运行方法、系统及相关装置 |
-
2022
- 2022-09-26 CN CN202211169483.9A patent/CN115237610B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017128979A1 (zh) * | 2016-01-30 | 2017-08-03 | 华为技术有限公司 | 一种资源管理方法及设备 |
CN114816728A (zh) * | 2022-03-07 | 2022-07-29 | 浪潮云信息技术股份公司 | 一种云环境MongoDB数据库集群实例节点弹性伸缩方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115237610A (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | Distributed autonomous virtual resource management in datacenters using finite-markov decision process | |
US7552152B2 (en) | Risk-modulated proactive data migration for maximizing utility in storage systems | |
US9426075B2 (en) | Method and system to represent the impact of load variation on service outage over multiple links | |
US11042410B2 (en) | Resource management of resource-controlled system | |
CN112835698B (zh) | 一种基于异构集群的请求分类处理的动态负载均衡方法 | |
CN108173698B (zh) | 网络服务管理方法、装置、服务器及存储介质 | |
US20120221730A1 (en) | Resource control system and resource control method | |
US10601690B2 (en) | Assessing performance of networked computing environments | |
CN109788489A (zh) | 一种基站规划方法及装置 | |
US10198295B2 (en) | Mechanism for controlled server overallocation in a datacenter | |
CN111385142B (zh) | 基于Kubernetes的自适应伸缩web容器的方法 | |
CN114595049A (zh) | 一种云边协同任务调度方法及装置 | |
CN115525394A (zh) | 容器数量的调整方法及装置 | |
CN116467082A (zh) | 一种基于大数据的资源分配方法及系统 | |
CN115237610B (zh) | 一种基于Kubernetes容器云平台的弹性伸缩方法、装置及应用 | |
CN116389266A (zh) | 一种基于强化学习的数字孪生网络切片的方法和装置 | |
WO2023129221A1 (en) | Resource capacity management in computing systems | |
CN118035051A (zh) | 能效评估方法、装置、系统及相关设备 | |
CN112579246B (zh) | 虚拟机迁移处理方法及装置 | |
CN114936089A (zh) | 资源调度方法、系统、设备及存储介质 | |
CN111598390B (zh) | 服务器高可用性评估方法、装置、设备和可读存储介质 | |
CN114035940A (zh) | 资源分配方法以及装置 | |
JP2021082874A (ja) | モデル化方法、モデル化プログラム及び情報処理装置 | |
CN111045815B (zh) | 多个处理机的已部署资源的优化方法及其扩展设备 | |
CN118170550B (zh) | Node节点水位线阈值调节方法、装置及相关设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |