原標題:Kubernetes Autoscaler增加對百度云容器引擎CCE的支
在眾多企業(yè)的容器化應用和實踐中,彈性伸縮一直是個很重要的話題。受益于容器本身輕量級、快速啟動的特性,容器化應用的規(guī)模部署變得愈發(fā)靈活彈性。
那么容器集群的運維者就會問到:我應該保持多大的節(jié)點規(guī)模來滿足應用隨時變化的資源需求?能否讓集群所占用的底層資源也隨著應用規(guī)模的變化而靈活縮放呢?
Cluster-Autoscaler(后文中將簡稱為CA) 就是Kubernetes中用于解決以上疑問的組件,它幫助用戶實現(xiàn)了容器集群規(guī)模的動態(tài)伸縮,能夠自動根據(jù)部署的應用所請求的資源量來維持集群大小,當集群資源過剩時自動釋放部分資源,當資源不足時完成資源的申請并將其加入集群。CA一方面提高了底層資源的利用率,為企業(yè)節(jié)約成本。另一方面也大大降低了人力運維集群的負擔。
百度云獲得社區(qū)官方支持
CA組件雖然是Kubernetes社區(qū)的開源組件,但并不意味著將它部署在集群內(nèi)就可以正常開始工作。因為CA的工作涉及到集群節(jié)點信息的查詢、節(jié)點的創(chuàng)建和釋放等, CA需要與底層資源平臺提供的接口進行交互,而這些接口通常是由不同的云廠商提供的,因此將CA應用到不同云平臺往往需要大量的改造工作。
在此之前,Kubernetes社區(qū)官方只支持部分云平臺,本次加入對百度云容器引擎CCE的支持,使百度云成為國內(nèi)第二個得到Kubernetes Autoscaler官方支持的云廠商。這意味著用戶在使用百度云容器引擎CCE時,可以無縫體驗CA組件帶來的靈活和彈性,無需關(guān)心底層資源的差異性。
除了彈性伸縮以外,百度云容器團隊一直以來都在積極參與開源社區(qū)的重要項目,從Kubernetes v0.8版本推出之際就開始進行生產(chǎn)級別的實踐,是國內(nèi)Kubernetes容器技術(shù)的最早踐行者之一。
2018年百度云繼續(xù)與開源社區(qū)保持良好的合作,為Kubernetes主庫提交總共25個PullRequest,合入14個,主要集中在scheduler、auto-scaling等模塊。同時成為Kubernetes子項目kube-batchd的Maintainer,并在LinuxCon和KubeCon上對paddle-k8s-operator和kube-batchd項目進行主題演講。
百度云今年在開源領(lǐng)域發(fā)布了兩個云提供商:cloud-provider-baiducloud與cluster-api-provider-baiducloud,為整合入Kubernetes主庫進行準備,同時百度云CCE已經(jīng)在2018年年初正式通過Kubernetes公有云統(tǒng)一化認證。
CCE自動擴縮容功能
基于Kubernetes CA組件,CCE為用戶提供了便捷的自動擴縮容功能,使得該組件的使用更加便捷。用戶可以在集群詳情中找到自動擴縮容的開關(guān),如下圖所示:
如果需要使用自動擴縮容的能力只需要將開關(guān)打開,然后設置擴縮容的節(jié)點數(shù)范圍即可。打開之后,CCE的自動擴縮容會啟用集群中的CA組件,并依靠CA組件在資源不足或者過剩時自動創(chuàng)建和釋放集群中的BCC節(jié)點。
所有打開了自動擴縮容功能的集群,CCE都將在集群名稱右下角進行標識,以便用戶區(qū)分。需要注意的是自動擴縮容可能會觸發(fā)節(jié)點釋放的操作,將會同步釋放節(jié)點關(guān)聯(lián)的后付費公網(wǎng)IP和云磁盤,因此在開啟該功能之前,請務必閱讀相關(guān)文檔,以避免縮容造成的業(yè)務數(shù)據(jù)損失。
在現(xiàn)有功能基礎上,CCE還會繼續(xù)對自動擴縮容能力進行擴展,未來將支持更加豐富的擴縮容策略,用戶可以靈活地自定義擴容時使用的節(jié)點配置,并在縮容時對可能有持久化存儲的資源進行保護。
實現(xiàn)原理與技術(shù)細節(jié)
在開啟CCE的自動擴縮容功能后,當pod由于資源不足而調(diào)度失敗,即有pod一直處于Pending狀態(tài)時,CA會采取擴容操作;當node的資源利用率較低時,且此node上存在的pod都能被重新調(diào)度到其他node上運行時,CA會采取縮容操作。如果你的集群同時也啟用了HPA(Horizontal Pod Autoscaling,是k8s中pod的水平自動擴展),那么CA也能與HPA協(xié)同工作,例如:當CPU負載增加,HPA擴容pod,如果此pod因為資源不足無法被調(diào)度,則此時CA會擴容節(jié)點。當CPU負載減小,HPA減少pod,CA發(fā)現(xiàn)有節(jié)點資源利用率低甚至已經(jīng)是空時,CA就會刪除此節(jié)點。
Kubernetes的CA組件由以下幾個模塊組成:
- CA autoscaler:核心模塊,負責整體擴縮容功能
- Estimator:負責評估計算擴容節(jié)點
- Simulator:負責模擬調(diào)度,計算縮容節(jié)點
- CA Cloud-Provider:與云交互進行節(jié)點的增刪操作。
其中CA Cloud-Provider部分每個云廠商的實現(xiàn)都不一樣,基于百度云的實現(xiàn)在這筆PR中被合入了Kubernetes autoscaler開源庫。
CA組件的整體架構(gòu)如下圖所示:
其中CA與百度云CCE相關(guān)的適配通過以下模塊實現(xiàn):
- CCE Manager:CCE Cluster-Autoscaler的中控模塊,初始化各項配置,開啟定時器緩存擴縮容相關(guān)信息
- ASG-Cache:緩存擴縮容各項配置
- CloudProvider:能夠獲得集群內(nèi)所有節(jié)點的相關(guān)信息,用戶配置的擴縮容相關(guān)信息
- NodeGroup:能夠根據(jù)擴縮容的估算結(jié)果,安全的擴容集群或者縮容集群
- Cloud-SDK:對BCE中BCC、CCE的OpenAPI的封裝,用于下單擴容集群、刪除空閑節(jié)點、查詢集群節(jié)點信息等
如果你也認為自動擴縮容的功能會為你的容器化架構(gòu)帶來幫助的話,請登錄百度云CCE服務網(wǎng)站或關(guān)注百度云微信公眾號了解更多。
- 世間將再無松下電視:松下官宣解散家電子公司并徹底放棄電視機業(yè)務
- 雅迪集團與南都電源簽署協(xié)議:攜手共繪固態(tài)電池未來藍圖
- 美媒聚焦比亞迪“副業(yè)”:電子代工助力蘋果,下個大計劃瞄準AI機器人
- 微信零錢通新政策:銀行卡轉(zhuǎn)入資金提現(xiàn)免手續(xù)費引熱議
- 消息稱塔塔集團將收購和碩印度iPhone代工廠60%股份 并接管日常運營
- 蘋果揭秘自研芯片成功之道:領(lǐng)先技術(shù)與深度整合是關(guān)鍵
- 英偉達新一代Blackwell GPU面臨過熱挑戰(zhàn),交付延期引發(fā)市場關(guān)注
- 馬斯克能否成為 AI 部部長?硅谷與白宮的聯(lián)系日益緊密
- 余承東:Mate70將在26號發(fā)布,意外泄露引發(fā)關(guān)注
- 無人機“黑科技”亮相航展:全球首臺低空重力測量系統(tǒng)引關(guān)注
免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。