999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Kubernetes的容器自動伸縮技術的研究?

2019-10-08 07:12:34陳莉君
計算機與數字工程 2019年9期

楊 茂 陳莉君

(西安郵電大學計算機學院 西安 710061)

1 引言

隨著云計算技術的不斷發展,以虛擬機技術為基礎的傳統云計算出現了資源利用率低、調度分發緩慢等一系列問題。為了解決這些問題,Docker作為容器技術的代表性產品迅速普及[1~2]。Docker是一個開源的應用容器引擎[3~4],主要負責提供容器和鏡像,但這對于構建復雜應用來說還遠遠不夠。Kubernetes是Google開源的Docker容器集群編排管理系統[5~7]。作為Docker生態圈的重要成員,Kubernetes能讓用戶方便地創建和管理Docker容器集群,并為容器化的應用集群提供豐富的管理功能。為了應對應用負載動態變化,Kubernetes實現了自動伸縮功能,即Kubernetes可以根據應用負載變化自動地調整資源的分配。一方面,當應用的負載過高時,Kubernetes增加資源供應,保障應用的服務質量;另一方面,當應用負載降低時,回收空閑資源,降低成本并提高資源利用率。

目前,關于云計算自動伸縮技術的研究已經有很多,但主要是在基于虛擬機技術的云環境下。文獻[8]中將自動伸縮技術從伸縮方式上分為水平伸縮和垂直伸縮,從伸縮時機上分為響應式伸縮和預測式伸縮?;陂撝档纳炜s策略以其簡單易實現的優點被許多云服務商采用[9],但確定合適的閾值需要用戶對應用有比較深入的理解,文獻[10]研究了閾值與伸縮規模對云服務性能的影響。文獻[11]使用增強學習算法制定自動伸縮策略,增強學習需要大量的先驗知識,因此集群運行前期表現較差。文獻[12]中通過結合線性回歸模型和改進的KMP字符串匹配算法預測未來負載變化。文獻[13]使用神經網絡進行負載預測與資源評估,使伸縮表現出智能化的優點,但時間復雜度較高。

本文通過分析Kubernetes自動伸縮策略,針對現有策略存在的響應延遲問題,提出一種預測式伸縮與響應式伸縮相結合的伸縮算法。通過測試,本算法能夠有效改善響應延遲問題。

2 Kubernetes集群架構與自動伸縮策略

2.1 Kubernetes集群架構

Kubernetes主要架構如圖1。

圖1 Kubernetes架構

Kubernetes采用Master-Slave架構,其中Master作為中心控制節點,主要負責資源調度、訪問控制、服務接口以及Pod生命周期控制等工作。其中Scheduler為調度器,負責集群資源的調度,API Server為集群內各功能組件之間提供通信接口,Controller Mananger是集群內部管理控制中心,包含 Replication Controller、Node Controller等多個控制組件,其中Replication Controller負責維持Pod副本數量。

Node節點受Master節點管理,每個Node節點運行一個Kubele服務進程,該進程負責具體執行控制節點的命令,管理Pod及Pod中的容器并反饋自身信息。Pod是Kubernetes管理的基本單元,每個Pod包含一個或多個Docker容器。Service是一組Pod副本提供服務的抽象。Kube-Proxy負責副本之間的負載均衡。

2.2 Kubernetes自動伸縮策略及響應延遲問題

目前Kubernetes實現了水平自動伸縮,自動伸縮器 HPA(Horizontal Pod Autoscaler)做出伸縮決定,并通過 RC(Replication Controller)增加或減少應用的Pod副本,從而實現擴容和縮容。如圖2所示。

Kubernetes采用響應式伸縮,HPA根據應用當前負載變化進行擴容或縮容,將應用的負載保持在目標水平。具體地說,用戶指定資源指標(例如CPU利用率),并設定目標值。在特定的時間間隔,HPA檢查當前對應Pod副本集的CPU利用率,然后與目標值對比,計算出需要伸縮的副本數量。具體公式如下:

TargetNumOfPods=ceil(sum(CurrentPodsCPUU-tilization)/Target)

其中,TargetNumOfPods為Pod副本應有數量;sum(CurrentPodsCPUUtilization)為各副本CPU利用率之和;Target是用戶在創建自動伸縮器時指定的目標值。

圖2 Kubernetes自動伸縮

盡管Kubernetes自動伸縮策略簡單有效,但是它忽略了一個重要問題,響應延遲問題,即當應用的負載增加時,從HPA發出擴容指令到新創建的Pod副本真正提供服務需要一定的初始化時間。這段時間應用對應的Pod副本集在資源不足狀態下運行,因此服務質量無法保障。

3 Kubernetes伸縮策略的優化

根據上述分析,本文提出一種預測式伸縮解決Kubernetes現有伸縮策略存在的響應延遲問題,預測式伸縮通過預測應用未來的工作負載變化,提前做好資源供應,從而保障服務的可靠性與穩定性。

3.1 工作負載預測模型

為了預測負載變化,首先需要了解負載的特性。美國卡內基梅隆大學的Peter A.Dinda通過對大量服務器負載數據的統計分析,總結了負載的特性,發現負載數據隨時間變化有很強的關聯性,即過去的負載值對將來的負載值有很大影響[14],可以利用時間序列模型進行負載預測。

Kubernetes是基于容器技術的集群管理系統,輕量級和靈活性是容器技術的一大優勢,選取預測模型需要同時考慮預測準確性和算法時間復雜度。因此應該避免使用時間復雜度高的高次曲線對節點負載情況進行模擬。另外由于只需要預測下一階段的負載變化,模型要適用于短期預測?;谝陨显颍疚牟捎弥笖灯交ㄟM行預測。

指數平滑法是一種簡單易行、成本較低且應用廣泛的短期時間序列預測方法。它有兩個顯著的特點:一是能充分利用全部歷史數據;二是按照“重近輕遠”的原則加權平均、修勻數據[15~16]。從而使時間序列所包含的歷史規律能顯著地體現出來。

指數平滑法包括一次指數平滑、二次指數平滑以及高次的指數平滑法??紤]到一次指數平滑法只適合具有水平發展趨勢的時間序列,高次的指數平滑法時間復雜度過高,因此本文采用二次指數平滑法進行預測。二次指數平滑法是對一次指數平滑后的序列再作一次指數平滑,設時間序列值,二次指數平滑模型為

在二次指數平滑法中,平滑參數α的取值對預測結果影響很大,α值的大小體現了不同時期的數據在預測中所起的不同作用。靜態的平滑參數難以適應時間序列自身的變化,因此本文采用動態平滑參數[17]提高預測精度。

以φt為動態參數的指數平滑公式為

采用預測誤差平方和SSE最小為目標作為確定α的模型,即

求解最優平滑系數可采用最速下降迭代算法,過程如下:

1)給 定 初 值 α0、s(1)0及 精 度 ε,計 算,如果,則α0為近似最優解,跳轉3);

3)將近似最優解αk代入,得到動態平滑參數φt,計算公式(2)用于預測。

3.2 自動伸縮算法概述

自動伸縮包括擴容與縮容??s容階段沒有擴容階段的響應延遲問題,并且預測式縮容可能會頻繁觸發伸縮造成顛簸,因此縮容階段只采用響應式算法。

考慮到預測模型存在一定的誤差,并且負載可能會出現短時間突發的峰值,預測式擴容應對這種情況時往往不能做出正確的判斷。因此本文采用響應式擴容來彌補預測式擴容的不足。

算法以CPU利用率作為伸縮指標為例說明,表1為各個變量及其含義。

表1 各個變量及其含義

擴容算法:

Begin

for(beginning ofevery interval)

Monitor forevery Pod

Calculate

if()

Invoke Pod Scaling up

Predict forevery Pod

Calculate

if()

Invoke Pod Scaling up

End

擴容算法結合響應式擴容與預測式擴容。在每個伸縮周期開始時,首先通過當前的CPU利用率計算目標副本數。如果目標副本數大于當前副本數,說明上次的預測值偏小,預測式擴容的結果不能滿足應用負載增長,需要繼續擴容。然后再根據上一節的預測模型預測下一周期各Pod副本的CPU利用率并計算下一階段的目標副本數,如果大于當前副本數,則提前為下一周期擴容。

縮容算法:

Begin

for(beginning ofevery interval)

Monitor u(t) forevery Pod

Calculate Ntarget(t)

if(Ntarget(t) <Ncurrent)

Invoke Pod Scaling down

End

通過當前CPU利用率計算目標副本數,若目標副本數小于當前副本數,則進行縮容。

4 實驗驗證

4.1 實驗環境

本實驗搭建了Kubernetes集群,集群由三臺主機組成,一臺為Master節點,其它兩臺為Node節點。其中Kubernetes版本為1.5,Docker版本為1.10,操作系統為CentOS 7。在集群上部署一個簡單的web應用作為伸縮的對象,并使用Apache JMeter模擬并發訪問。

4.2 實驗結果分析

使用JMeter模擬并發訪問web應用,從Pod副本數和請求響應時間兩方面對比Kubernetes原有伸縮算法與本文算法,結果如圖3所示。

圖3 實驗結果

分析實驗結果圖可知,第1min時,由于當前CPU利用率和目標利用率大致相等,原算法沒有執行伸縮,本文算法預測第2min的CPU利用率高于目標利用率,需要進行擴容,因此觸發擴容操作。第2min,由于負載增加,原算法觸發擴容,但新創建的Pod需要一段初始化時間,因此這段時間的請求響應時間變大,服務質量變差。而本文算法由于在第1min提前擴容,因此請求響應時間繼續保持穩定。第3min,原算法已完成擴容,請求響應時間降低,與本文算法大致一致。第4min負載穩定,本文算法與原算法基本一致。第5min與第1min相似,本文算法提前進行擴容,第6min時請求響應時間較低,而原算法導致請求響應時間突然增加。第7min原算法完成擴容,請求響應時間降低。第8min、9min,負載穩定。第10min負載降低,觸發縮容,Pod副本數減少。

5 結語

本文通過分析Kubernetes自動伸縮策略,針對原有策略因Pod初始化時間導致的響應延遲問題,提出一種預測式和響應式相結合的伸縮方案,預測式伸縮采用指數平滑模型預測應用未來的負載情況,提前進行擴容,并通過響應式伸縮彌補預測不準確時的不足。實驗表明本文伸縮算法能有效改善響應延遲問題,降低響應時間,提高應用服務質量。

主站蜘蛛池模板: a级毛片在线免费| 人人看人人鲁狠狠高清| 青青草原国产| 57pao国产成视频免费播放 | 最新精品国偷自产在线| 亚洲欧美一级一级a| 亚洲va在线∨a天堂va欧美va| 精品无码一区二区三区在线视频| 国产无码网站在线观看| 亚洲av中文无码乱人伦在线r| 91精品网站| 欧美激情视频二区三区| 九九精品在线观看| 国产成人精品2021欧美日韩| 天堂va亚洲va欧美va国产| yy6080理论大片一级久久| 国产91高清视频| 国产精品网曝门免费视频| a级毛片毛片免费观看久潮| 99激情网| 婷婷色狠狠干| 国产成人乱码一区二区三区在线| 国产门事件在线| 一级爱做片免费观看久久| 蝌蚪国产精品视频第一页| 亚洲有码在线播放| 国产传媒一区二区三区四区五区| 日韩亚洲综合在线| 制服丝袜国产精品| 婷婷五月在线| 天堂在线www网亚洲| 粗大猛烈进出高潮视频无码| 日韩无码视频网站| 成人福利在线看| 国产一级做美女做受视频| 国产欧美视频在线观看| 欧美在线网| 美女被操91视频| 成人午夜视频免费看欧美| 欧美国产精品不卡在线观看| 久久国产精品波多野结衣| 国产亚洲精品yxsp| 亚洲中文字幕久久精品无码一区 | 少妇被粗大的猛烈进出免费视频| 91蝌蚪视频在线观看| 女人毛片a级大学毛片免费| 日韩视频福利| 91啪在线| 国产高颜值露脸在线观看| 午夜一区二区三区| 精品国产美女福到在线直播| 在线精品欧美日韩| 91免费精品国偷自产在线在线| 国产成人精品在线1区| 午夜精品影院| 国产精品免费入口视频| 制服无码网站| 青青久在线视频免费观看| 日韩A级毛片一区二区三区| 四虎影视无码永久免费观看| 国产aⅴ无码专区亚洲av综合网| 亚洲精品午夜天堂网页| 午夜三级在线| 欧美翘臀一区二区三区| 精品国产毛片| 久久精品国产亚洲AV忘忧草18| 狠狠五月天中文字幕| 免费 国产 无码久久久| 黄色网页在线观看| 亚洲av无码久久无遮挡| 精品国产欧美精品v| 一级黄色欧美| 国产成人精品在线| 玖玖免费视频在线观看| 美女无遮挡被啪啪到高潮免费| 国产av一码二码三码无码| 亚洲欧美一级一级a| 色天天综合| 人妖无码第一页| 国产特级毛片aaaaaaa高清| 亚洲AV色香蕉一区二区| 亚洲精品你懂的|