牟梁 张谊雯 伊成彬
摘要:随着Docker为代表的容器技术发展, K8s容器云平台得到广泛关注。通过分析K8s的HPA自动伸缩策略,在HPA伸缩策略的基础上提出一种基于灰色马尔科夫模型的伸缩策略。利用GM模型利用历史数据进行负载预测,以提高伸缩机制的适应性。
关键词:容器伸缩;云计算;灰色模型;
中图分类号:TP393.08 文献标识码:A
0引言
随着云计算技术的发展,K8s提供的弹性伸缩是一个重要的容器伸缩机制,在负载较高的情况下能够快速扩容。在负载较低的状态下释放资源,在保证服务质量的同时也减小资源浪费的情况。在K8s平台上HPA 被设计为一个调度控制器,通过周期性地检查pod负载状态,并根据创建时设定的阈值进行对比,通过增加pod数量增强负载能力。
目前自动伸缩机制已经有很多的研究,文献[1]提出了一种多重阈值方法,对传统方法只设上限阈值和下限阈值进行扩容;文献[2,3]对静态阈值的缺点进行了分析,并用动态阈值的方法改进了静态阈值造成的资源利用率低的问题;文献[4]研究了阈值设定的大小对于伸缩扩缩容的影响。但需要用户对应用特点以及云平台基础架构有深入的理解。
1相关工作
1.1 HPA伸缩机制
为了解决业务流量变化波动带来的实际需求资源与预估需求资源之间的差距,出现了HPA水平自动伸缩。HPA通过监控分析每个Pod的负载数据,通过用户指定某种资源指标,在每个监控周期轮询一次Pod的资源,将设定值和当前Pod副本的CPU利用率对比,判断是否需要对Pod进行扩容或缩容操作,让负载维持在目标水平。
这个方法并不能在负载出现波动变化时进行及时的扩缩容响应,在HPA进行扩容请求到Pod扩容完成期间任务仍然在资源不足的状态下运行,存在任务队列等待时间变长,SLA违约率增大,系统的任务吞吐量变小等问题。
1.2 灰色马尔科夫模型
灰色模型通过不完全的信息建立灰色预测模型。预测过程为,在已有数据的前提下完成数据序列的预测。以下为详细的模型过程:
作为原始数据序列。对原始数据序列进行一次累加生成,得到第一次累加序列
对序列 建立GM对应的线性微分方程,其中α与u为待计算的参数。
2 GM伸缩策略
2.1 GM数值预测
历史数据序列设为H(k)。根据2.1节建立的模型得到预测结果序列P(k)。
历史数据序列H(k)与预测序列P(k)做差,可得的到误差序列E(k),预测值与实际值k时刻的误差定义为E(k)=H(k)-P(k)。由此可得到误差序列E(k)。此时利用2.1节建立的模型计算,可得到第k时刻的误差值E(k)。
根据马尔科夫理论,在当前状态的条件下,其未来状态的变化与过去的状态变化无关,只与当前状态有关。对于预测的每个时刻,根据E(k)正負号状态的变换建立状态转移矩阵。再建立符号确定函数:
2.2 GM伸缩策略
GM策略先为容器的伸缩设定上限阈值α和下限阈值β,并设置一个周期,一个周期就进行一次资源访问,得到负载,通过建立好的计算模型判断触发不同的策略(1)扩容策略:当预测的结果大于上限阈值时,则提前触发扩容。(2)缩容策略:当预测的结果大于下限阈值时,则放弃缩容。若预测结果小于下限阈值则利用马尔科夫模型,选择是否进行缩容。
3实验结果与分析
本实验搭建了K8s集群,集群由三台主机组成,一台为 Master节点,其它两台为 Node节点。其中K8s版本为1.5,Docker版本为1.10,操作系统为CentOS7。在集群上部署一个简单的 web 应用作为伸缩的对象,并使用 Apache JMeter模拟并发访问。使用JMeter模拟并发访问web应用,从Pod扩容副本数和平均响应时间,两个方面对比K8s原有HPA伸缩与GM伸缩,结果如图3所示。
由图可以看出,GM伸缩策略在扩容副本数量,请求的平均响应时间均高于传统的HPA伸缩机制。
4结论
本文通过分析K8s自动伸缩策略,针对原有策略Pod初始化时间导致的响应延迟问题,提出一种预测式的伸缩方案,提前进行扩容,并通过响应式伸缩弥补预测不准确时的不足。实验表明本文伸缩算法能有效改善响应延迟问题,降低响应时间,提高应用服务质量。
参考文献:
[1] Morenovozmediano R , Montero, Rubén S, Llorente I M . Proceedings of the 1st workshop on Automated control for datacenters and clouds – ACDC
'09. 2009.
[2] Lim H C , Babu S , Chase J S . [ACM Press Proceeding of the 7th international conference - Washington, DC, USA (2010.06.07-2010.06.11)] Proceeding of the 7th international conference on Autonomic computing - ICAC \"10 - Automated control for elastic storage[C]// International Conference on Autonomic Computing. DBLP, 2010:1.
[3] Al-Haidari F , Sqalli M , Salah K . Impact of CPU Utilization Thresholds and Scaling Size on Autoscaling Cloud Resources[C]// IEEE International Conference on Cloud Computing Technology & Science. IEEE, 2014.
[4] Iqbal W , Dailey M , Carrera D . SLA-Driven Adaptive Resource Management for Web Applications on a Heterogeneous Compute Cloud[C]// IEEE International Conference on Cloud Computing. Springer, Berlin, Heidelberg, 2009.
1463500511259