彈性伸縮 是指在集群資源不足時(shí),通過(guò)自動(dòng)調(diào)整集群的規(guī)模以提高集群的承載能力,從而保證用戶體驗(yàn)和系統(tǒng)服務(wù)的穩(wěn)定性,而在集群負(fù)載很低時(shí),能夠自動(dòng)釋放多余的資源,從而保障集群資源始終足以支撐業(yè)務(wù)負(fù)載,同時(shí)最大化節(jié)約成本。
華為云的云容器引擎CCE基于Kubernetes開(kāi)發(fā)了強(qiáng)大的彈性伸縮能力,可以根據(jù)業(yè)務(wù)需求和策略,經(jīng)濟(jì)地自動(dòng)調(diào)整彈性計(jì)算資源,讓您的業(yè)務(wù)以最小成本運(yùn)行。其基本能力包括:

彈性伸縮的目的
一般來(lái)講,彈性伸縮主要用來(lái)解決兩個(gè)問(wèn)題:
應(yīng)對(duì)突發(fā)流量
隨著搶購(gòu)、秒殺的興起,要求電商能夠具備集中時(shí)間內(nèi)應(yīng)對(duì)超大請(qǐng)求量的處理能力,同時(shí)國(guó)內(nèi)外大事頻發(fā),娛樂(lè)圈也是“吃瓜”不斷,社交媒體瞬間暴漲的流量潮汐已經(jīng)成為了面向新十年數(shù)字化升級(jí)的首要任務(wù)。
節(jié)省資源
瞬時(shí)擴(kuò)容帶來(lái)的運(yùn)維成本高、運(yùn)維難度大,擴(kuò)容縮容如何 自動(dòng)化 的根據(jù)業(yè)務(wù)負(fù)載最有效的匹配調(diào)整業(yè)務(wù)資源占用,如何在不損失服務(wù)穩(wěn)定性的前提下,盡可能地提高資源利用率,一直是彈性伸縮方案不懈的目標(biāo)。
華為云CCE,通過(guò)極致彈性應(yīng)對(duì)流量洪峰
CCE能夠提供快速擴(kuò)容縮容能力,實(shí)現(xiàn)千級(jí)規(guī)模容器集群秒級(jí)極速發(fā)放,同時(shí)提供自動(dòng)識(shí)別擴(kuò)容場(chǎng)景,靈活響應(yīng)告警、定時(shí)、周期、預(yù)測(cè)四種伸縮策略,實(shí)現(xiàn)虛擬機(jī)的極速?gòu)椥陨炜s,通過(guò)智能化策略和極速?gòu)椥缘脑茢U(kuò)容能力,解決了業(yè)務(wù)的流量承載壓力。CCE的彈性伸縮分為兩個(gè)維度:
工作負(fù)載伸縮(調(diào)度層彈性):主要是負(fù)責(zé)修改負(fù)載的調(diào)度容量變化。例如,HPA是典型的調(diào)度層彈性組件,通過(guò)HPA可以調(diào)整應(yīng)用的副本數(shù),調(diào)整的副本數(shù)會(huì)改變當(dāng)前負(fù)載占用的調(diào)度容量,從而實(shí)現(xiàn)調(diào)度層的伸縮。
節(jié)點(diǎn)伸縮(資源層彈性):主要是集群的容量規(guī)劃不能滿足集群調(diào)度容量時(shí),會(huì)通過(guò)彈出ECS或CCI等資源的方式進(jìn)行調(diào)度容量的補(bǔ)充。
兩個(gè)維度的彈性組件與能力可以分開(kāi)使用,也可以結(jié)合在一起使用,并且兩者之間是通過(guò)調(diào)度層面的容量狀態(tài)進(jìn)行解耦。

CCE的工作負(fù)載伸縮
CCE通過(guò)安裝prometheus、metrics-server、cce-hpa-controller等插件,可以提供HPA和CustomedHPA兩種工作負(fù)載的伸縮策略,能夠?qū)崿F(xiàn)對(duì)Pod的橫向和縱向伸縮。
兩種伸縮策略的對(duì)比如下:
-
HPA策略:即Horizontal Pod Autoscaling,是Kubernetes中實(shí)現(xiàn)POD水平自動(dòng)伸縮的功能。該策略在kubernetes社區(qū)HPA功能的基礎(chǔ)上,增加了HPA級(jí)別的冷卻時(shí)間窗和擴(kuò)縮容閾值等功能。CCE支持在控制臺(tái)界面上快速創(chuàng)建支持HPA的應(yīng)用,實(shí)現(xiàn)容器資源的彈性伸縮。
-
CustomedHPA策略:華為云自研的彈性伸縮增強(qiáng)能力,能夠基于CPU利用率、內(nèi)存利用率等指標(biāo),對(duì)無(wú)狀態(tài)工作負(fù)載進(jìn)行彈性擴(kuò)縮容。
主要功能如下:
-
支持按照當(dāng)前實(shí)例數(shù)的百分比進(jìn)行擴(kuò)縮容。
-
支持設(shè)置一次擴(kuò)縮容的最小步長(zhǎng)。
-
支持按照實(shí)際指標(biāo)值執(zhí)行不同的擴(kuò)縮容動(dòng)作。
-
支持每天、每周、每月或每年的具體時(shí)間點(diǎn)周期性觸發(fā)擴(kuò)縮容。
CCE的節(jié)點(diǎn)伸縮
CCE服務(wù)的自動(dòng)伸縮能力是通過(guò)節(jié)點(diǎn)自動(dòng)伸縮組件實(shí)現(xiàn)的,可以根據(jù)Pod的調(diào)度狀態(tài)和資源使用情況對(duì)集群的工作節(jié)點(diǎn)進(jìn)行自動(dòng)擴(kuò)容和縮容,可以按需彈出普通實(shí)例、GPU實(shí)例,支持多可用區(qū)、多實(shí)例規(guī)格、多種伸縮模式,滿足不同的節(jié)點(diǎn)伸縮場(chǎng)景。

主要功能如下:
-
支持按照節(jié)點(diǎn)的“CPU分配率”或“內(nèi)存分配率”進(jìn)行擴(kuò)縮容。
-
支持按照實(shí)際指標(biāo)值執(zhí)行不同的擴(kuò)縮容動(dòng)作。
什么是云容器引擎
華為云云容器引擎( Cloud Container Engine ,簡(jiǎn)稱CCE)提供高度可擴(kuò)展的、高性能的企業(yè)級(jí)Kubernetes集群,支持運(yùn)行容器。借助云容器引擎,您可以在云上輕松部署、管理和擴(kuò)展容器化應(yīng)用程序。
云容器引擎深度整合了華為云高性能的計(jì)算(ECS/BMS)、網(wǎng)絡(luò)(VPC/EIP/ELB)、存儲(chǔ)(EVS/OBS/ SFS )等服務(wù),并支持GPU、ARM、FPGA等異構(gòu)計(jì)算架構(gòu),支持多可用區(qū)(Available zone,簡(jiǎn)稱AZ)、多區(qū)域(Region)容災(zāi)等技術(shù)構(gòu)建高可用Kubernetes集群,并提供高性能可伸縮的容器應(yīng)用管理能力,簡(jiǎn)化集群的搭建和擴(kuò)容等工作,讓您專注于容器化應(yīng)用的開(kāi)發(fā)與管理。