Kubernetes Autoscaler增加對百度云容器引擎CCE的支

原標(biāo)題:Kubernetes Autoscaler增加對百度云容器引擎CCE的支

在眾多企業(yè)的容器化應(yīng)用和實(shí)踐中,彈性伸縮一直是個(gè)很重要的話題。受益于容器本身輕量級、快速啟動(dòng)的特性,容器化應(yīng)用的規(guī)模部署變得愈發(fā)靈活彈性。

那么容器集群的運(yùn)維者就會(huì)問到:我應(yīng)該保持多大的節(jié)點(diǎn)規(guī)模來滿足應(yīng)用隨時(shí)變化的資源需求?能否讓集群所占用的底層資源也隨著應(yīng)用規(guī)模的變化而靈活縮放呢?

Cluster-Autoscaler(后文中將簡稱為CA) 就是Kubernetes中用于解決以上疑問的組件,它幫助用戶實(shí)現(xiàn)了容器集群規(guī)模的動(dòng)態(tài)伸縮,能夠自動(dòng)根據(jù)部署的應(yīng)用所請求的資源量來維持集群大小,當(dāng)集群資源過剩時(shí)自動(dòng)釋放部分資源,當(dāng)資源不足時(shí)完成資源的申請并將其加入集群。CA一方面提高了底層資源的利用率,為企業(yè)節(jié)約成本。另一方面也大大降低了人力運(yùn)維集群的負(fù)擔(dān)。

百度云獲得社區(qū)官方支持

CA組件雖然是Kubernetes社區(qū)的開源組件,但并不意味著將它部署在集群內(nèi)就可以正常開始工作。因?yàn)镃A的工作涉及到集群節(jié)點(diǎn)信息的查詢、節(jié)點(diǎn)的創(chuàng)建和釋放等, CA需要與底層資源平臺提供的接口進(jìn)行交互,而這些接口通常是由不同的云廠商提供的,因此將CA應(yīng)用到不同云平臺往往需要大量的改造工作。

在此之前,Kubernetes社區(qū)官方只支持部分云平臺,本次加入對百度云容器引擎CCE的支持,使百度云成為國內(nèi)第二個(gè)得到Kubernetes Autoscaler官方支持的云廠商。這意味著用戶在使用百度云容器引擎CCE時(shí),可以無縫體驗(yàn)CA組件帶來的靈活和彈性,無需關(guān)心底層資源的差異性。

除了彈性伸縮以外,百度云容器團(tuán)隊(duì)一直以來都在積極參與開源社區(qū)的重要項(xiàng)目,從Kubernetes v0.8版本推出之際就開始進(jìn)行生產(chǎn)級別的實(shí)踐,是國內(nèi)Kubernetes容器技術(shù)的最早踐行者之一。

2018年百度云繼續(xù)與開源社區(qū)保持良好的合作,為Kubernetes主庫提交總共25個(gè)PullRequest,合入14個(gè),主要集中在scheduler、auto-scaling等模塊。同時(shí)成為Kubernetes子項(xiàng)目kube-batchd的Maintainer,并在LinuxCon和KubeCon上對paddle-k8s-operator和kube-batchd項(xiàng)目進(jìn)行主題演講。

百度云今年在開源領(lǐng)域發(fā)布了兩個(gè)云提供商:cloud-provider-baiducloud與cluster-api-provider-baiducloud,為整合入Kubernetes主庫進(jìn)行準(zhǔn)備,同時(shí)百度云CCE已經(jīng)在2018年年初正式通過Kubernetes公有云統(tǒng)一化認(rèn)證。

CCE自動(dòng)擴(kuò)縮容功能

基于Kubernetes CA組件,CCE為用戶提供了便捷的自動(dòng)擴(kuò)縮容功能,使得該組件的使用更加便捷。用戶可以在集群詳情中找到自動(dòng)擴(kuò)縮容的開關(guān),如下圖所示:

如果需要使用自動(dòng)擴(kuò)縮容的能力只需要將開關(guān)打開,然后設(shè)置擴(kuò)縮容的節(jié)點(diǎn)數(shù)范圍即可。打開之后,CCE的自動(dòng)擴(kuò)縮容會(huì)啟用集群中的CA組件,并依靠CA組件在資源不足或者過剩時(shí)自動(dòng)創(chuàng)建和釋放集群中的BCC節(jié)點(diǎn)。

所有打開了自動(dòng)擴(kuò)縮容功能的集群,CCE都將在集群名稱右下角進(jìn)行標(biāo)識,以便用戶區(qū)分。需要注意的是自動(dòng)擴(kuò)縮容可能會(huì)觸發(fā)節(jié)點(diǎn)釋放的操作,將會(huì)同步釋放節(jié)點(diǎn)關(guān)聯(lián)的后付費(fèi)公網(wǎng)IP和云磁盤,因此在開啟該功能之前,請務(wù)必閱讀相關(guān)文檔,以避免縮容造成的業(yè)務(wù)數(shù)據(jù)損失。

在現(xiàn)有功能基礎(chǔ)上,CCE還會(huì)繼續(xù)對自動(dòng)擴(kuò)縮容能力進(jìn)行擴(kuò)展,未來將支持更加豐富的擴(kuò)縮容策略,用戶可以靈活地自定義擴(kuò)容時(shí)使用的節(jié)點(diǎn)配置,并在縮容時(shí)對可能有持久化存儲(chǔ)的資源進(jìn)行保護(hù)。

實(shí)現(xiàn)原理與技術(shù)細(xì)節(jié)

在開啟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源不足無法被調(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é)評估計(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開源庫。

CA組件的整體架構(gòu)如下圖所示:

其中CA與百度云CCE相關(guān)的適配通過以下模塊實(shí)現(xiàn):

  • CCE Manager:CCE Cluster-Autoscaler的中控模塊,初始化各項(xiàng)配置,開啟定時(shí)器緩存擴(kuò)縮容相關(guān)信息
  • ASG-Cache:緩存擴(kuò)縮容各項(xiàng)配置
  • CloudProvider:能夠獲得集群內(nèi)所有節(jié)點(diǎn)的相關(guān)信息,用戶配置的擴(kuò)縮容相關(guān)信息
  • NodeGroup:能夠根據(jù)擴(kuò)縮容的估算結(jié)果,安全的擴(kuò)容集群或者縮容集群
  • Cloud-SDK:對BCE中BCC、CCE的OpenAPI的封裝,用于下單擴(kuò)容集群、刪除空閑節(jié)點(diǎn)、查詢集群節(jié)點(diǎn)信息等

如果你也認(rèn)為自動(dòng)擴(kuò)縮容的功能會(huì)為你的容器化架構(gòu)帶來幫助的話,請登錄百度云CCE服務(wù)網(wǎng)站或關(guān)注百度云微信公眾號了解更多。

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2019-01-25
Kubernetes Autoscaler增加對百度云容器引擎CCE的支
這意味著用戶在使用百度云容器引擎CCE時(shí),可以無縫體驗(yàn)CA組件帶來的靈活和彈性,無需關(guān)心底層資源的差異性。

長按掃碼 閱讀全文