牟梁 張誼雯 伊成彬
摘要:隨著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