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