CN111984381A - 一种基于历史数据预测的Kubernetes资源调度优化方法 - Google Patents

一种基于历史数据预测的Kubernetes资源调度优化方法 Download PDF

Info

Publication number
CN111984381A
CN111984381A CN202010661724.6A CN202010661724A CN111984381A CN 111984381 A CN111984381 A CN 111984381A CN 202010661724 A CN202010661724 A CN 202010661724A CN 111984381 A CN111984381 A CN 111984381A
Authority
CN
China
Prior art keywords
resource
model
sequence
scheduling
prediction
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
Application number
CN202010661724.6A
Other languages
English (en)
Inventor
张彤
王仪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian University of Technology
Original Assignee
Xian University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian University of Technology filed Critical Xian University of Technology
Priority to CN202010661724.6A priority Critical patent/CN111984381A/zh
Publication of CN111984381A publication Critical patent/CN111984381A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于历史数据预测的Kubernetes资源调度优化方法,采取最能发挥ARIMA模型和RBF神经网络模型优点的组合模型作为最终的预测模型。通过采集运行在容器管理器Kubernetes平台上应用的历史资源使用库,然后建立模型预测未来某段时间的资源使用量,最后将这些预测数据应用于调度设计中的资源动态调度模块和监控模块。将这三个模块应用在容器管理器Kubernetes的调度组件上,让调度组件可以对运行其上的应用之间进行动态的资源调度,提高资源使用率,提高容器管理器Kubernetes平台上应用的服务质量。

Description

一种基于历史数据预测的Kubernetes资源调度优化方法
技术领域
本发明属于计算机虚拟化技术领域,涉及一种基于历史数据预测的Kubernetes资源调度优化方法。
背景技术
自从Docker技术开源化之后,它迅速成为了容器生态圈最为炙手可热的新平台。Docker本身只专注于提供容器和镜像,所以不论是IT巨头还是初创公司或是普通的企业用户,都需要一个集成的Docker容器即服务管理平台高效地完成容器的编排、自动化部署、资源调度、健康监控、网络规划、服务发现等任务。开放开源的Kubernetes有着出色的容器调度与管理能力,成为了业界容器编排系统的首选。在现有的Kubernetes系统中,资源调度的工作主要由组件负责。在应用首次被调度时,由组件根据应用的资源配置情况,在集群内所有的节点上选择一个最适合的节点来部署,这种属于静态调度策略,虽然简单,却缺乏灵活性。为了保证Kubernetes系统中资源调度的服务质量,可以通过预测模型预测未来对资源的使用情况,使其能够在应用出现瓶颈之前就能预先触发调度,更加从容地按需将资源分配给应用,从而得到一个资源动态调度的近似最优解。
随着对于Kubernetes资源调度的深入研究,国内外学者做了大量研究,将BP神经网络、时间序列分析、灰色系统理论、统计学理论等理论应用于Kubernetes的资源调度分析预测。上述的建模过程都属于单一模型,在此类模型中大多都考虑其主要的影响因素而未考虑其残差预测里混沌效应的影响,进而影响了拟合粒度和预测结果可靠性的保证。因此,如何有效的提取残差序列以保证修正常规变形的预测精度,对于提高模型预测能力具有重要的意义。
在现实世界中,预测对象往往会受到众多因素的影响,单一预测模型由于其自身的局限性,无法符合预测对象的所有特征。建立组合预测模型可以有效避免单一预测模型的缺陷,有效提高预测精度。因此本专利的研究内容拟采用:ARIMA和RBF组合预测模型。本发明在基于Kubernetes资源使用量监测数据上建立统计回归模型,将监测到的资源使用量数据整合成时间序列,用ARIMA模型对时间序列进行建模,得到预测值序列,然后用RBF神经网络对ARIMA模型产生的误差值序列进行建模,得到预测误差值序列,最后将两者结合,就得到组合模型的预测值。
发明内容
本发明提供了一种基于历史数据预测的Kubernetes资源调度优化方法,为其他容器云平台中存在的资源调度提供了一种高效便捷的新方案。
本发明所采用的技术方案是,一种基于历史数据预测的Kubernetes资源调度优化方法,包括以下步骤:
步骤1:周期性的收集容器管理器Kubernetes上每个子节点上运行时产生的CPU使用量、内存使用量和I/O配置信息,并通过监控组件cAdvisor收集传入服务监控系统保存;
步骤2:将步骤1中的三种资源使用量按时间先后顺序排列成时间序列;
步骤3:将步骤2中得到的时间序列利用ARIMA模型进行建模预测,得到资源预测值序列Pt
步骤4:将步骤3中得到的资源预测值序列Pt和实际资源使用结果序列对比得到误差值序列,再使用RBF神经网络对误差值序列进行建模,得到预测误差值序列Et,最后将资源预测值序列Pt和预测误差值序列Et两者结合,就得到组合模型的预测值;
步骤5:利用步骤4得到的预测值,针对每种资源生成一系列资源调度决策,并将决策响应到Pod的请求资源限制中。
本发明的特点还在于,
步骤1.1:每一个子节点上运行监控组件cAdvisor容器的Pod,收集节点的资源使用量信息,包括CPU使用量、内存使用量和I/O配置信息,在主节点运行一个容器的Pod,用键对值将监控组件cAdvisor的资源使用信息,以Pod为单位聚合起来;
步骤1.2:将监控组件cAdvisor的服务地址配置到服务监控系统,将步骤1.1聚合好的数据传入服务监控系统汇总,用于存储资源信息。
步骤2具体如下:
步骤2.1:令监控组件cAdvisor中周期性收集到的历史使用量数据为R={R1,R2...Rt},其中Rt为第t个时刻子节点的负载情况,R1为收集的第1个时刻子节点的负载情况;
步骤2.2:从步骤2.1中得到的R中选出n个时刻的数据作为预测模型的时间序列输入,对时间序列预测就是通过n个输入数据集预测下一时刻t+1的资源使用量,ARIMA资源预测模型输入输出如下:
ARIMA:yt(Rt,Rt,...,Rt+n)
输入:Rt代表第t个时刻的资源需求量,
输出:yt代表资源预测值。
步骤3具体如下:
步骤3.1:输入资源使用量序列(Rt,Rt+1,...,Rt+n);
步骤3.2:判断步骤3.1中的时间序列是否满足平稳性,如果时间序列Rt满足以下两个条件:E(rt)=u,u是常数;Cov(rt,rt-i)=ri,ri只依赖于i,那么时间序列Rt是平稳的;
步骤3.3:利用自相关函数和偏自相关函数进行模式识别,判断哪一种模型比较适合对资源使用量序列进行建模;
步骤3.4:利用时间序列对模型函数参数估计,确定p、d、q变量,也就是模型的自回归、积分、和移动平均部分的顺序;
步骤3.4.1:如果在一个时间序列中,对于第t个时刻的值yt与过去p个时刻的值有关,则yt可以表示为历史值的线性组合加上t时刻的白噪声干扰项ξt来表示,该模型可表示为公式(1):
Figure BDA0002578820900000041
其中ξt为白噪声序列,并要确保该白噪声序列为零均值白噪声序列;
Figure BDA0002578820900000042
为自回归参数,常数p为自回归阶数,并且要满足
Figure BDA0002578820900000043
确定该模型的最高阶数为p;
步骤3.4.2:如果在一个时间序列中,对于第t个时刻的值yt都可以由过去q个时刻的残差序列{ξt}的加权平均值和的和来表示,则该模型可表示为公式(2):
yt=ξt1ξt-12ξt-2+...+θqξt-q (2)
其中ξt为白噪声序列,并要确保白噪声序列为零均值白噪声序列,θ1θ2,...,θq为需要估计参数,常数q为滑动平均阶数,并且要满足θq≠0,确定该模型的最高阶数q;
步骤3.4.3:为了保证模型有更大的灵活性,需要模型中增加移动平均部分,结合回归模型组合成自回归移动平均模型,该模型可以表示公式(3),一个由p阶自回归模型公式(1)和q阶滑动平均模型公式(2)组合成的自回归移动平均模型ARMA(p,q)表示如下:
Figure BDA0002578820900000051
其中ξt为白噪声序列,
Figure BDA0002578820900000052
和θ1θ2,...,θq是需要确
定的参数,常数p是自回归模型的阶数,常数q为滑动平均模型
的阶数,并且要满足
Figure BDA0002578820900000053
Figure BDA0002578820900000054
步骤3.4.4:为了将其平稳化,应用一次差分或者多次差分将原序列转化为平稳序列,用公式(4)表示差分自回归移动平均模型:
Figure BDA0002578820900000055
其中,
Figure BDA0002578820900000056
是自回归模型的参数,θj是滑动平均模型的参数,ξt是均值为零白噪声序列,Δdwt表示对自回归移动平均模型ARMA(p,q)进行差分处理,确定该模型差分的次数被称为齐次的阶数d;
步骤3.5:预测;将3.4步骤中建模得到的p、d、q可能的组合进行参数估计,并利用AIC准则进行定阶,确定满足要求的最佳模型为ARIMA(p,d,q)模型,得到资源预测值序列Pt
步骤4具体如下:
步骤4.1:对比预测后一段时间内的资源使用量和上步骤得到此段时间的资源未来使用量,得到误差值序列,并作归一化处理,使其变换成RBF模型需要的的输入层数据。
步骤4.2:构建RBF神经网络模型,定义网络的相关参数;
步骤4.3:调整隐含层单元数和隐含层单元中心,用高斯函数计算隐含层权值,获得隐含层输出;
步骤4.4:通过隐含层与输出层的函数关系得出输出层的输出,即得到误差值Et
步骤4.5:将步骤3.5中ARIMA模型预测得到的资源预测值序列Pt和步骤4.4中得到的RBF模型预测的误差值结果Et相结合,得到组合模型预测值。
步骤5具体如下:
步骤5.1:对于子节点上所有应用实例间的动态资源调度,由动态调度程序来负责,在每一个的调度周期进行一轮资源动态调度,令Rtemp为动态调度程序临时持有的资源R的数值,在每一轮调度开始之前和结束之后都必须为0;
步骤5.2:对于任意时刻,可以将应用实例对某种资源R的需求表示为一个元组:(Rcur,Rlimit,Rdr,Rcr,Rfuture)
其中:Rcur表示实例对资源R的当前使用量,Rlimit表示实例对资源R的最大使用量,Rdr表示实例从其它实例借来的数值,Rcr表示实例将资源R借给其它资源的数值,Rfuture表示实例未来某个时间段内对资源R的平均使用量,调度过程如下:
步骤5.2.1:在开始调度之前,首先清算目前已经被删除、停止或者异常奔溃的实例,即收回这些实例借出去以及借进来的资源;
步骤5.2.2:排除运行时间不足或资源使用量数据不够的部分实例;
步骤5.2.3:将所有可以借出资源R的资源总量暂存起来,交给动态调度程序保管,保证可借的资源要优先满足所有上一轮作为贷方实例的需求量;如果可借资源刚好满足所有实例的需求量,那就直接执行调度决策这一步;如果还剩下可借资源,就执行下一步调度;如果不能满足,就将空缺的资源需求量将借方的资源按比例回收,然后执行调度策略;
步骤5.2.4:如果还剩下可借的资源,将剩下需要资源的实例按需求量从大到小排序,然后依次满足这些实例的需求量,如还有剩下的可借资源,则按比例返还给这一轮的贷方,然后执行调度策略;如果可用资源恰好分配完就直接执行调度策略。
步骤5.2.5最终将所有的调度决策全部应用到Pod以及Pod里运行的容器中,再等待下一个周期的调度。
本发明的有益效果是,本发明在Kubernetes上建立资源负载预测模型,为部署在Kubernetes容器云平台的应用进行动态资源调度提供了依据,达到解决云平台资源调度工作的滞后性、资源利用率低的问题。
附图说明
图1是本发明一种基于历史数据预测的Kubernetes资源调度优化方法流程图;
图2是本发明一种基于历史数据预测的Kubernetes资源调度优化方法的ARIMA模型建模过程图;
图3是本发明一种基于预测模型的Kubernetes资源调度优化方法的RBF神经网络拓扑结构图。
图4是本发明一种基于预测模型的Kubernetes资源调度优化方法的资源动态调度过程图;
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明,但本发明并不限于这些方式。
一种基于历史数据预测的Kubernetes资源调度优化方法,流程如图(1)所示,具体操作步骤如下:
步骤1:周期性的收集容器管理器Kubernetes上每个子节点上运行时产生的CPU使用量、内存使用量和I/O配置信息,并通过监控组件cAdvisor收集传入服务监控系统保存。
步骤1.1:每一个子节点上运行监控组件cAdvisor容器的Pod,收集节点的资源使用量信息,包括CPU使用量、内存使用量和I/O配置信息。在主节点运行一个容器的Pod,用键对值将监控组件cAdvisor的资源使用信息,以Pod为单位聚合起来。
步骤1.2:将监控组件cAdvisor的服务地址配置到服务监控系统,将步骤1.1聚合好的数据传入服务监控系统汇总,用于存储资源信息。
步骤2:将步骤1中的三种资源使用量按时间先后顺序排列成时间序列。
步骤2.1:令监控组件cAdvisor中周期性收集到的历史使用量数据为R={R1,R2...Rt},其中Rt为第t个时刻子节点的负载情况,R1为收集的第1个时刻子节点的负载情况。
步骤2.2:从步骤2.1中得到的R选出n个时刻的数据作为预测模型的时间序列输入。对时间序列预测就是通过n个输入数据集预测下一时刻t+1的资源使用量。ARIMA资源预测模型输入输出如下:
ARIMA:yt(Rt,Rt,...,Rt+n)
输入:Rt代表第t个时刻的资源需求量
输出:yt资源预测值
步骤3:将步骤2中得到的时间序列利用ARIMA模型进行建模预测,得到资源预测值序列Pt,建模过程(如图2所示);
步骤3.1:输入资源使用量序列(Rt,Rt+1,...,Rt+n);
步骤3.2:判断步骤3.1中的时间序列是否满足平稳性。如果时间序列Rt满足以下两个条件:E(rt)=u,u是常数;Cov(rt,rt-i)=ri,ri只依赖于i。那么时间序列Rt是平稳的。
步骤3.3:利用自相关函数和偏自相关函数进行模式识别,判断哪一种模型比较适合对资源使用量序列进行建模。
步骤3.4利用时间序列对模型函数参数估计。确定p、d、q变量,也就是模型的自回归、积分、和移动平均部分的顺序。
步骤3.4所述的模型识别操作步骤为:
步骤3.4.1:如果在一个时间序列中,对于第t个时刻的值yt与过去p个时刻的值有关。则yt可以表示为历史值的线性组合加上t时刻的白噪声干扰项ξt来表示,该模型可表示为公式(1):
Figure BDA0002578820900000091
其中ξt为白噪声序列,并要确保该白噪声序列为零均值白噪声序列。
Figure BDA0002578820900000101
为自回归参数,常数p为自回归阶数,并且要满足
Figure BDA0002578820900000102
确定该模型的最高阶数为p。
步骤3.4.2:如果在一个时间序列中,对于第t个时刻的值yt都可以由过去q个时刻的残差序列{ξt}的加权平均值和的和来表示,则该模型可表示为公式(2):
yt=ξt1ξt-12ξt-2+...+θqξt-q (2)
其中ξt为白噪声序列,并要确保白噪声序列为零均值白噪声序列,θ1θ2,...,θq为需要估计参数,常数q为滑动平均阶数,并且要满足θq≠0,确定该模型的最高阶数q。
步骤3.4.3:当时间序列对于任意时刻t的值不仅与历史值有关,还跟外部的干扰有关,两者具有一点的依存关系,那在进行数据拟合时,为了保证模型有更大的灵活性,需要模型中增加移动平均部分,结合回归模型组合成自回归移动平均模型,该模型可以表示公式(3),一个由p阶自回归模型公式(1)和q阶滑动平均模型公式(2)组合成的自回归移动平均模型ARMA(p,q):
Figure BDA0002578820900000103
其中ξt为白噪声序列,
Figure BDA0002578820900000104
和θ1θ2,...,θq是需要确定的参数,常数p是自回归模型的阶数,常数q为滑动平均模型的阶数,并且要满足
Figure BDA0002578820900000105
和θq≠0。
步骤3.4.4:步骤3.4.3中的模型描述的是平稳序列,然而在本发明中的时间序列为非平稳序列,为了将其平稳化,应用一次差分或者多次差分将原序列转化为平稳序列。一个序列若能通过差分转化为平稳序列,则被称为齐次非平稳序列。用公式(4)表示差分自回归移动平均模型:
Figure BDA0002578820900000111
其中
Figure BDA0002578820900000112
是自回归模型的参数,θj是滑动平均模型的参数,ξt是均值为零白噪声序列。Δdwt表示对自回归移动平均模型ARMA(p,q)进行差分处理,确定该模型差分的次数被称为齐次的阶数d。
步骤3.5预测;将3.4步骤中建模得到的对p、d、q可能的组合进行参数估计,并利用AIC准则进行定阶,确定满足要求的最佳模型为ARIMA(p,d,q)模型,得到资源预测值序列Pt
步骤4:将步骤3中得到的资源预测值序列Pt和实际资源使用结果序列对比得到误差值序列,再使用RBF神经网络对误差值序列进行建模,得到预测误差值序列Et,最后将资源预测值序列Pt和预测误差值序列Et两者结合,就得到组合模型的预测值;
步骤4.1对比预测后一段时间内的资源使用量和上步骤得到此段时间的资源未来使用量,得到误差值序列,并作归一化处理,使其变换成RBF模型需要的的输入层数据;
步骤4.2构建RBF神经网络模型,网络拓扑结构如图(3)所示,定义网络的相关参数;
步骤4.3调整隐含层单元数和隐含层单元中心,用高斯函数计算隐含层权值,获得隐含层输出;
步骤4.4通过隐含层与输出层的函数关系得出输出层的输出,即得到误差值Et
步骤4.5将步骤3.5中ARIMA模型预测得到的资源预测值序列Pt和步骤4.4中得到的RBF模型预测的误差值结果Et相结合,得到组合模型的预测值。
步骤5:利用步骤4得到的预测值,针对每种资源生成一系列资源调度决策,并将决策响应到Pod的请求资源限制中。
步骤5.1:对于子节点上所有应用实例间的动态资源调度,由动态调度程序来负责,在每一个的调度周期进行一轮资源动态调度。令Rtemp为动态调度程序临时持有的资源R的数值,在每一轮调度开始之前和结束之后都必须为0。
步骤5.2:在调度过程中定义借方为:从其它实例中借用了资源,定义贷方:将资源借出给了其他实例。对于任意时刻,可以将应用实例对某种资源R的需求表示为一个元组:(Rcur,Rlimit,Rdr,Rcr,Rfuture)
其中:Rcur表示实例对资源R的当前使用量,Rlimit表示实例对资源R的最大使用量(即配额),Rdr表示实例从其它实例借来资源R的数值(即借方),Rcr表示实例将资源R借给其它实例的数值(即贷方),Rfuture表示实例未来某个时间段内对资源R的平均使用量,调度过程如下:
步骤5.2.1:在开始调度之前,首先清算目前已经被删除、停止或者异常奔溃的实例,即收回这些实例借出去以及借进来的资源。
步骤5.2.2:排除部分实例,因为有些实例的运行时间不足,采集到的资源使用量数据不够,达不到预测模型的训练效果,所以可以不参与调度。
步骤5.2.3:将所有可以借出资源R的资源总量暂存起来,交给动态调度程序保管。保证可借的资源要优先满足所有上一轮作为贷方实例的需求量。如果可借资源刚好满足所有这些实例的需求量,那就直接执行调度决策这一步;如果还剩下可借资源,就执行下一步调度;如果不能满足,就将空缺的资源需求量将借方的资源按比例回收,然后执行调度策略。
步骤5.2.4:如果还剩下可借的资源,将剩下需要资源的实例按需求量从大到小排序。然后依次满足这些实例的需求量。如还有剩下的可借资源,则按比例返还给这一轮的贷方,然后执行调度策略;如果可用资源恰好分配完就直接执行调度策略。
步骤5.2.5:最终将所有的调度决策全部应用到Pod以及Pod里运行的容器中,再等待下一个周期的调度(如图4所示)。

Claims (6)

1.一种基于预测模型的Kubernetes资源调度优化方法,其特征在于:具体包括如下步骤:
步骤1:周期性的收集容器管理器Kubernetes上每个子节点上运行时产生的CPU使用量、内存使用量和I/O配置信息,并通过监控组件cAdvisor收集传入服务监控系统保存;
步骤2:将步骤1中的三种资源使用量按时间先后顺序排列成时间序列;
步骤3:将步骤2中得到的时间序列利用ARIMA模型进行建模预测,得到资源预测值序列Pt
步骤4:将步骤3中得到的资源预测值序列Pt和实际资源使用结果序列对比得到误差值序列,再使用RBF神经网络对误差值序列进行建模,得到预测误差值序列Et,最后将资源预测值序列Pt和预测误差值序列Et两者结合,就得到组合模型的预测值;
步骤5:利用步骤4得到的预测值,针对每种资源生成一系列资源调度决策,并将决策响应到Pod的请求资源限制中。
2.根据权利要求1所述的一种基于预测模型的Kubernetes资源调度优化方法,其特征在于:步骤1具体如下:
步骤1.1:每一个子节点上运行监控组件cAdvisor容器的Pod,收集节点的资源使用量信息,包括CPU使用量、内存使用量和I/O配置信息,在主节点运行一个容器的Pod,用键对值将监控组件cAdvisor的资源使用信息,以Pod为单位聚合起来;
步骤1.2:将监控组件cAdvisor的服务地址配置到服务监控系统,将步骤1.1聚合好的数据传入服务监控系统汇总,用于存储资源信息。
3.根据权利要求2所述的一种基于预测模型的Kubernetes资源调度优化方法,其特征在于:
步骤2具体如下:
步骤2.1:令监控组件cAdvisor中周期性收集到的历史使用量数据为R={R1,R2...Rt},其中Rt为第t个时刻子节点的负载情况,R1为收集的第1个时刻子节点的负载情况;
步骤2.2:从步骤2.1中得到的R中选出n个时刻的数据作为预测模型的时间序列输入,对时间序列预测就是通过n个输入数据集预测下一时刻t+1的资源使用量,ARIMA资源预测模型输入输出如下:
ARIMA:yt(Rt,Rt,...,Rt+n)
输入:Rt代表第t个时刻的资源需求量,
输出:yt代表资源预测值。
4.根据权利要求3所述的一种基于预测模型的Kubernetes资源调度优化方法,其特征在于:步骤3具体如下:
步骤3.1:输入资源使用量序列(Rt,Rt+1,...,Rt+n);
步骤3.2:判断步骤3.1中的时间序列是否满足平稳性,如果时间序列Rt满足以下两个条件:E(rt)=u,u是常数;Cov(rt,rt-i)=ri,ri只依赖于i,那么时间序列Rt是平稳的;
步骤3.3:利用自相关函数和偏自相关函数进行模式识别,判断哪一种模型比较适合对资源使用量序列进行建模;
步骤3.4:利用时间序列对模型函数参数估计,确定p、d、q变量,也就是模型的自回归、积分、和移动平均部分的顺序;
步骤3.4.1:如果在一个时间序列中,对于第t个时刻的值yt与过去p个时刻的值有关,则yt可以表示为历史值的线性组合加上t时刻的白噪声干扰项ξt来表示,该模型可表示为公式(1):
Figure FDA0002578820890000031
其中ξt为白噪声序列,并要确保该白噪声序列为零均值白噪声序列;
Figure FDA0002578820890000032
为自回归参数,常数p为自回归阶数,并且要满足
Figure FDA0002578820890000033
确定该模型的最高阶数为p;
步骤3.4.2:如果在一个时间序列中,对于第t个时刻的值yt都可以由过去q个时刻的残差序列{ξt}的加权平均值和的和来表示,则该模型可表示为公式(2):
yt=ξt1ξt-12ξt-2+...+θqξt-q (2)
其中ξt为白噪声序列,并要确保白噪声序列为零均值白噪声序列,θ1θ2,...,θq为需要估计参数,常数q为滑动平均阶数,并且要满足θq≠0,确定该模型的最高阶数q;
步骤3.4.3:为了保证模型有更大的灵活性,需要模型中增加移动平均部分,结合回归模型组合成自回归移动平均模型,该模型可以表示公式(3),一个由p阶自回归模型公式(1)和q阶滑动平均模型公式(2)组合成的自回归移动平均模型ARMA(p,q)表示如下:
Figure FDA0002578820890000034
其中ξt为白噪声序列,
Figure FDA0002578820890000035
和θ1θ2,...,θq是需要确定的参数,常数p是自回归模型的阶数,常数q为滑动平均模型的阶数,并且要满足
Figure FDA0002578820890000041
和θq≠0;
步骤3.4.4:为了将其平稳化,应用一次差分或者多次差分将原序列转化为平稳序列,用公式(4)表示差分自回归移动平均模型:
Figure FDA0002578820890000042
其中,
Figure FDA0002578820890000043
是自回归模型的参数,θj是滑动平均模型的参数,ξt是均值为零白噪声序列,Δdwt表示对自回归移动平均模型ARMA(p,q)进行差分处理,确定该模型差分的次数被称为齐次的阶数d;
步骤3.5:预测;将3.4步骤中建模得到的p、d、q可能的组合进行参数估计,并利用AIC准则进行定阶,确定满足要求的最佳模型为ARIMA(p,d,q)模型,得到资源预测值序列Pt
5.根据权利要求4所述的一种基于预测模型的Kubernetes资源调度优化方法,其特征在于:步骤4具体如下:
步骤4.1:对比预测后一段时间内的资源使用量和上步骤得到此段时间的资源未来使用量,得到误差值序列,并作归一化处理,使其变换成RBF模型需要的的输入层数据;
步骤4.2:构建RBF神经网络模型,定义网络的相关参数;
步骤4.3:调整隐含层单元数和隐含层单元中心,用高斯函数计算隐含层权值,获得隐含层输出;
步骤4.4:通过隐含层与输出层的函数关系得出输出层的输出,即得到误差值Et
步骤4.5:将步骤3.5中ARIMA模型预测得到的资源预测值序列Pt和步骤4.4中得到的RBF模型预测的误差值结果Et相结合,得到组合模型预测值。
6.根据权利要求5所述的一种基于预测模型的Kubernetes资源调度优化方法,其特征在于:步骤5具体如下:
步骤5.1:对于子节点上所有应用实例间的动态资源调度,由动态调度程序来负责,在每一个的调度周期进行一轮资源动态调度,令Rtemp为动态调度程序临时持有的资源R的数值,在每一轮调度开始之前和结束之后都必须为0;
步骤5.2:对于任意时刻,可以将应用实例对某种资源R的需求表示为一个元组:(Rcur,Rlimit,Rdr,Rcr,Rfuture)
其中:Rcur表示实例对资源R的当前使用量,Rlimit表示实例对资源R的最大使用量,Rdr表示实例从其它实例借来的数值,Rcr表示实例将资源R借给其它资源的数值,Rfuture表示实例未来某个时间段内对资源R的平均使用量,调度过程如下:
步骤5.2.1:在开始调度之前,首先清算目前已经被删除、停止或者异常奔溃的实例,即收回这些实例借出去以及借进来的资源;
步骤5.2.2:排除运行时间不足或资源使用量数据不够的部分实例;
步骤5.2.3:将所有可以借出资源R的资源总量暂存起来,交给动态调度程序保管,保证可借的资源要优先满足所有上一轮作为贷方实例的需求量;如果可借资源刚好满足所有实例的需求量,那就直接执行调度决策这一步;如果还剩下可借资源,就执行下一步调度;如果不能满足,就将空缺的资源需求量将借方的资源按比例回收,然后执行调度策略;
步骤5.2.4:如果还剩下可借的资源,将剩下需要资源的实例按需求量从大到小排序,然后依次满足这些实例的需求量,如还有剩下的可借资源,则按比例返还给这一轮的贷方,然后执行调度策略;如果可用资源恰好分配完就直接执行调度策略;
步骤5.2.5:最终将所有的调度决策全部应用到Pod以及Pod里运行的容器中,再等待下一个周期的调度。
CN202010661724.6A 2020-07-10 2020-07-10 一种基于历史数据预测的Kubernetes资源调度优化方法 Pending CN111984381A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010661724.6A CN111984381A (zh) 2020-07-10 2020-07-10 一种基于历史数据预测的Kubernetes资源调度优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010661724.6A CN111984381A (zh) 2020-07-10 2020-07-10 一种基于历史数据预测的Kubernetes资源调度优化方法

Publications (1)

Publication Number Publication Date
CN111984381A true CN111984381A (zh) 2020-11-24

Family

ID=73438302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010661724.6A Pending CN111984381A (zh) 2020-07-10 2020-07-10 一种基于历史数据预测的Kubernetes资源调度优化方法

Country Status (1)

Country Link
CN (1) CN111984381A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113094116A (zh) * 2021-04-01 2021-07-09 中国科学院软件研究所 一种基于负载特征分析的深度学习应用云配置推荐方法及系统
CN113343489A (zh) * 2021-06-29 2021-09-03 重庆两江卫星移动通信有限公司 基于容器技术和数字孪生技术的卫星通信仿真方法及系统
CN113365299A (zh) * 2021-04-29 2021-09-07 西安交通大学 空天地一体网络下基于自回归的多维资源预测方法及系统
CN113671913A (zh) * 2021-08-10 2021-11-19 河海大学 一种智能制造车间隐形扰动应对方法
CN113806018A (zh) * 2021-09-13 2021-12-17 北京计算机技术及应用研究所 基于神经网络和分布式缓存的Kubernetes集群资源混合调度方法
CN114205190A (zh) * 2021-12-03 2022-03-18 中国长江三峡集团有限公司 一种用于物联网关的自主监测协调方法
CN115297112A (zh) * 2022-07-31 2022-11-04 南京匡吉信息科技有限公司 一种基于Kubernetes的动态资源配额及调度组件
CN117130882A (zh) * 2023-08-14 2023-11-28 中南民族大学 基于时间序列干预分析模型的节点资源预测方法和系统
US11868812B2 (en) 2021-08-12 2024-01-09 International Business Machines Corporation Predictive scaling of container orchestration platforms
US11928503B2 (en) 2021-06-22 2024-03-12 International Business Machines Corporation Cognitive scheduler for Kubernetes

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104992244A (zh) * 2015-07-08 2015-10-21 中国民用航空总局第二研究所 一种基于sarima和rbf神经网络集成组合模型的机场货运量预测分析方法
CN106844180A (zh) * 2017-02-07 2017-06-13 山东浪潮云服务信息科技有限公司 一种OpenStack平台计算资源的监控预测方法
CN107045455A (zh) * 2017-06-19 2017-08-15 华中科技大学 一种基于负载预测的Docker Swarm集群资源调度优化方法
US20180225391A1 (en) * 2017-02-06 2018-08-09 Neural Algorithms Ltd. System and method for automatic data modelling
CN110149237A (zh) * 2019-06-13 2019-08-20 东北大学 一种Hadoop平台计算节点负载预测方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104992244A (zh) * 2015-07-08 2015-10-21 中国民用航空总局第二研究所 一种基于sarima和rbf神经网络集成组合模型的机场货运量预测分析方法
US20180225391A1 (en) * 2017-02-06 2018-08-09 Neural Algorithms Ltd. System and method for automatic data modelling
CN106844180A (zh) * 2017-02-07 2017-06-13 山东浪潮云服务信息科技有限公司 一种OpenStack平台计算资源的监控预测方法
CN107045455A (zh) * 2017-06-19 2017-08-15 华中科技大学 一种基于负载预测的Docker Swarm集群资源调度优化方法
CN110149237A (zh) * 2019-06-13 2019-08-20 东北大学 一种Hadoop平台计算节点负载预测方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
WEIHUI DENG; GUOYIN WANG; XUERUI ZHANG; YISHUAI GUO; GUANGDI LI: "Water quality prediction based on a novel hybrid model of ARIMA and RBF neural network", 《IEEE XPLORE》 *
刘次华: "《随机过程》", 31 August 2014, 华中科技大学出版社 *
杨冬菊: "基于ARIMA模型的虚拟资源动态调度方法", 《计算机科学》 *
杨鹏飞: "基于Kubernetes的资源动态调度的研究与实现", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113094116A (zh) * 2021-04-01 2021-07-09 中国科学院软件研究所 一种基于负载特征分析的深度学习应用云配置推荐方法及系统
CN113094116B (zh) * 2021-04-01 2022-10-11 中国科学院软件研究所 一种基于负载特征分析的深度学习应用云配置推荐方法及系统
CN113365299A (zh) * 2021-04-29 2021-09-07 西安交通大学 空天地一体网络下基于自回归的多维资源预测方法及系统
CN113365299B (zh) * 2021-04-29 2022-12-09 西安交通大学 空天地一体网络下基于自回归的多维资源预测方法及系统
US11928503B2 (en) 2021-06-22 2024-03-12 International Business Machines Corporation Cognitive scheduler for Kubernetes
CN113343489A (zh) * 2021-06-29 2021-09-03 重庆两江卫星移动通信有限公司 基于容器技术和数字孪生技术的卫星通信仿真方法及系统
CN113343489B (zh) * 2021-06-29 2024-04-09 重庆两江卫星移动通信有限公司 基于容器技术和数字孪生技术的卫星通信仿真方法及系统
CN113671913A (zh) * 2021-08-10 2021-11-19 河海大学 一种智能制造车间隐形扰动应对方法
CN113671913B (zh) * 2021-08-10 2022-09-13 河海大学 一种智能制造车间隐形扰动应对方法
US11868812B2 (en) 2021-08-12 2024-01-09 International Business Machines Corporation Predictive scaling of container orchestration platforms
CN113806018A (zh) * 2021-09-13 2021-12-17 北京计算机技术及应用研究所 基于神经网络和分布式缓存的Kubernetes集群资源混合调度方法
CN114205190B (zh) * 2021-12-03 2023-07-14 中国长江三峡集团有限公司 一种用于物联网关的自主监测协调方法
CN114205190A (zh) * 2021-12-03 2022-03-18 中国长江三峡集团有限公司 一种用于物联网关的自主监测协调方法
CN115297112A (zh) * 2022-07-31 2022-11-04 南京匡吉信息科技有限公司 一种基于Kubernetes的动态资源配额及调度组件
CN117130882A (zh) * 2023-08-14 2023-11-28 中南民族大学 基于时间序列干预分析模型的节点资源预测方法和系统
CN117130882B (zh) * 2023-08-14 2024-03-08 中南民族大学 基于时间序列干预分析模型的节点资源预测方法和系统

Similar Documents

Publication Publication Date Title
CN111984381A (zh) 一种基于历史数据预测的Kubernetes资源调度优化方法
CN108829494B (zh) 基于负载预测的容器云平台智能资源优化方法
Karim et al. BHyPreC: a novel Bi-LSTM based hybrid recurrent neural network model to predict the CPU workload of cloud virtual machine
CN114721833B (zh) 一种基于平台业务类型的智能云端协调方法和装置
CN110231976B (zh) 一种基于负载预测的边缘计算平台容器部署方法及系统
Mekala et al. A DRL-based service offloading approach using DAG for edge computational orchestration
CN108270805B (zh) 用于数据处理的资源分配方法及装置
CN113806018B (zh) 基于神经网络和分布式缓存的Kubernetes集群资源混合调度方法
CN108365969B (zh) 一种基于无线传感网的自适应服务组合方法
CN115686846B (zh) 边缘计算中融合图神经网络和强化学习的容器集群在线部署方法
CN112732444A (zh) 一种面向分布式机器学习的数据划分方法
CN108196957A (zh) 一种云环境下的主机负载预测方法
Mistry et al. Predicting dynamic requests behavior in long-term iaas service composition
CN115543626A (zh) 采用异构计算资源负载均衡调度的电力缺陷图像仿真方法
CN109614210B (zh) 基于能耗感知的Storm大数据节能调度方法
Li et al. A QoS-based scheduling algorithm for instance-intensive workflows in cloud environment
Mahan et al. A novel resource productivity based on granular neural network in cloud computing
Pelaez et al. Dynamic adaptation of policies using machine learning
Mateen et al. A self-adaptive resource provisioning approach using fuzzy logic for cloud-based applications
CN114296872A (zh) 用于容器集群管理系统的调度方法及装置
Du et al. OctopusKing: A TCT-aware task scheduling on spark platform
CN111784029A (zh) 一种雾节点资源分配方法
Bhargavi et al. Uncertainty aware resource provisioning framework for cloud using expected 3-SARSA learning agent: NSS and FNSS based approach
Dimolitsas et al. Multi-Application Hierarchical Autoscaling for Kubernetes Edge Clusters
Vilà et al. Impact analysis of training in deep reinforcement learning-based radio access network slicing

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20201124

RJ01 Rejection of invention patent application after publication