202410论文研读-Exploring Resource Prediction Models Based on Custom Kubernetes Auto-scaling Metrics

作者: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 模型在实验中表现最佳,能够有效地预测未来负载并优化资源利用率。