参考论文:
[1]杜军. 基于Kubernetes的云端资源调度器改进[D].浙江大学,2016. |
k8s主要应用Pod这一概念进行应用部署和操作,以后是pod对象的创建时序图,pod对象的创建效率直接影响系统的整体性能。
优先级分类与抢占式调度:
按照Pod对象的重启策略分为低优先级以及高优先级
利用双端循环队列,维护队首指针以及队尾指针
Pod对象重启策略为Always加入到队首,优先调度
Pod对象重启策略为OnFailure Never加入到队尾 如果Pod.spec.Host值为非空,说明直接已经调度过需要重新调度,则加入到队首,优先调度
资源配额动态调整调度:
资源申请配额 资源实际使用 利用率较低
动态调整Pod资源的配额,例如内存以及cpu等,pod对象实际使用内存超过申请额度,会被杀死。在此只动态调整cpu的额度。
利用linux CGroup技术来实现资源配额限制
支持动态调度和负载均衡的云资源管理平台D-Cloud的设计与实现
资源动态调度:
参考论文:[1]杨鹏飞. 基于Kubernetes的资源动态调度的研究与实现[D].浙江大学,2017.
主要对容器层资源(内存使用量、CPU使用率、网络带宽和磁盘10等资源),使用预测模型预测未来一段时间的资源使用量,并
基于预测数据对资源动态调度、实例自动伸缩和考虑资源敏感程度的负载均衡策略等方面。
资源使用量预测模型:
ARIMA模型也称为差分自回归移动平均模型,能够运用于随机行时间序列预测,在时间序列分析方式中,被认为是最高级、最有效的分析方法。
ARIMA模型的思想是:在时间序列中,单个的值虽然具有随机性和不确定性,但整个时间序列却有规律可寻,可以用ARIMA模型进行类似的描述。
ARIMA模型本质上是三种模型的组合,分别是:
用于处理线性问题的AR(p)模型(自回归模型)
加入平均滑动的MA(q)模型(移动平均模型)
针对平稳时间序列的ARMA(p,q)模型(自回归移动平均模型)
AR模型:某一时刻的值yt与过去p个时刻有关
零均值的白噪声
MA模型:某一时刻的值yt与过去p个时刻的残差序列加权平均值组成
ARMA模型:时间序列对于任意时刻t的值x不仅和历史值有关,还跟外部的干扰有关,并且两者还存在一定的依存关系,在进行数据拟合时,为了保证模型有更大的灵活性,在模型中增加了移动平均部分,并结合自回归模型功能组合成自回归移动平均模型。
ARIMA+RBF模型:
时间序列可以分解成线性关系和非线性关系
用ARIMA对数据进行线性建模,得到预测值Lt,预测值与实际值的误差为:
误差序列隐含了非线性关系。
RBP网络模型对误差值序列建模进行数据训练,最终来逼近时间序列中的非线性关系
误差值预测序列:
监控模块:
资源动态调度模块:
总结:
提供对于资源的预测算法
Pod调度到Node节点时,需要考虑多种因素,改进调度器
弹性伸缩的设计