作者:Yi Xuan Chia,Chee Kiat Seow,Kan Chen,Qi Cao
发表期刊:2024 the 9th International Conference on Cloud Computing and Big Data Analytics
发表日期:2024年
一、背景
1、Kubernetes 应用广泛,但原生自动扩展功能有限: Kubernetes 通过 Horizontal Pod Autoscaler (HPA) 实现应用水平扩展,但仅支持 CPU 和内存指标,无法满足所有应用的需求。
2、实时扩展存在延迟: HPA 响应实时负载,只有在负载发生后才进行扩展,可能导致关键系统出现延迟问题。
3、黄金指标的重要性: Google 提出的“黄金指标”包括延迟、流量、错误和饱和度,这些指标更能反映应用性能。
4、预防性扩展的需求: 通过预测资源需求,在负载发生前进行扩展,可以提高系统响应速度和效率。
二、创新点
1、文章引入了延迟作为自定义指标,将延迟作为自定义指标纳入 Kubernetes 自动扩展,更贴近实际应用需求。
2、文章还对比多种时间序列预测模型,实验了 ARIMA、Holt-Winters、LSTM 和 Prophet 等多种模型,评估其预测性能,为选择合适的模型提供参考。通过实验验证了时间序列预测模型对 Kubernetes 自动扩展的优化效果,为实际应用提供依据。
三、实验设计
Kubernetes 集群搭建在 Google Kubernetes Engine (GKE) 上。

部署了一个 ExpressJS API Server,该服务器暴露了一个 API 端点,用于获取延迟指标。使用 Prometheus 和 Grafana 从 API Server 端点抓取指标数据。
部署了一个自定义指标服务器,该服务器使用时间序列预测模型来预测未来延迟,并将预测结果传递给 Kubernetes HPA。
集群配置了 Istio 服务网格,其中包含一个网关,用于路由流量到相应的服务,并允许将延迟延迟注入到 API Server 部署中。
四、实验及结果
使用四种时间序列预测模型进行实验:
ARIMA 模型:
一种广泛使用的时序预测模型,能够根据历史数据预测未来值。


ARIMA能够预测上升趋势和下降趋势,但有时会过早预测下降趋势,导致不必要的缩容。
Holt-Winters 模型:
一种基于指数平滑的预测方法,适用于具有趋势和季节性的时间序列数据。


Holt-Winters在预测上升趋势方面存在延迟,导致缩容不及时。
LSTM 模型:
一种循环神经网络模型,能够学习序列数据中的长期依赖关系,并进行预测。


LSTM预测值通常高于实际值,但在缩容方面表现良好,能够在负载出现前进行扩容,并在负载消失后进行缩容。
Prophet 模型:
一种非线性回归模型,适用于具有日、周、年季节性的数据预测。将过去 60 秒内以 5 秒间隔采集的延迟数据输入到模型中进行预测,并将预测结果与实际延迟进行比较,评估模型的预测效果。


Prophet表现最佳,能够准确预测上升趋势和下降趋势,并有效地进行缩容和扩容。
五、总结
文章通过实验验证了时间序列预测模型在优化 Kubernetes Pod 自动伸缩功能方面的有效性。Prophet 模型在实验中表现最佳,能够有效地预测未来负载并优化资源利用率。