一文了解Kubernetes的前世今生
近十幾年來,IT領(lǐng)域新技術(shù)、新概念層出不窮,例如DevOps、微服務(wù)(Microservice)、容器(Container)、云計算(Cloud Computing)和區(qū)塊鏈(Blockchain)等,直有“亂花漸欲迷人眼”之勢。另外,出于業(yè)務(wù)的需要,IT應(yīng)用模型也在不斷地變革,例如,開發(fā)模式從瀑布式(Waterfall)到敏捷(Agile)再到精益(Lean),甚至是與QA和Operations融合的DevOps,應(yīng)用程序架構(gòu)從單體(monolithic)模型到分層模型再到微服務(wù),部署及打包方式從面向物理機(jī)到虛擬機(jī)再到容器,應(yīng)用程序的基礎(chǔ)架構(gòu)從自建機(jī)房到托管再到云計算,等等,這些變革使得IT技術(shù)應(yīng)用的效率大大提升,同時卻以更低的成本交付更高質(zhì)量的產(chǎn)品。
尤其是以Docker為代表的容器技術(shù)的出現(xiàn),終結(jié)了DevOps中交付和部署環(huán)節(jié)因環(huán)境、配置及程序本身的不同而造成的動輒幾種甚至十幾種部署配置的困境,將它們統(tǒng)一在容器鏡像(image)之上。如今,越來越多的企業(yè)或組織開始選擇以鏡像文件作為交付載體。容器鏡像之內(nèi)直接包含了應(yīng)用程序及其依賴的系統(tǒng)環(huán)境、庫、基礎(chǔ)程序等,從而能夠在容器引擎上直接運(yùn)行。于是,IT運(yùn)維工程師(operator)無須關(guān)注開發(fā)應(yīng)用程序的編程語言、環(huán)境配置等,甚至連業(yè)務(wù)邏輯本身也不必過多關(guān)注,而只需要掌握容器管理的單一工具鏈即可。
部署的復(fù)雜度雖然降低了,但以容器格式運(yùn)行的應(yīng)用程序間的協(xié)同卻成了一個新的亟待解決的問題,這種需求在微服務(wù)架構(gòu)中表現(xiàn)得尤為明顯。結(jié)果,以Kubernetes為代表的容器編排系統(tǒng)應(yīng)需而生。
盡管公開面世不過短短數(shù)年時間,Kubernetes業(yè)已成為容器編排領(lǐng)域事實上的標(biāo)準(zhǔn),其近一兩年的發(fā)展?fàn)顟B(tài)也在不斷地驗證著Urs H?lzle曾經(jīng)的斷言:無論是公有云、私有云抑或混合云,Kubernetes都將作為一個為任何應(yīng)用、任何環(huán)境提供的容器管理框架而無處不在。
Kubernetes(來自希臘語,意為“舵手”或“飛行員”)由Joe Beda、Brendan Burns和Craig McLuckie創(chuàng)立,而后Google的其他幾位工程師,包括Brian Grant和Tim Hockin等加盟共同研發(fā),并由Google在2014年首次對外宣布。Kubernetes的開發(fā)和設(shè)計都深受Google內(nèi)部系統(tǒng)Borg的影響,事實上,它的許多頂級貢獻(xiàn)者之前也是Borg系統(tǒng)的開發(fā)者。
Borg是Google內(nèi)部使用的大規(guī)模集群管理系統(tǒng),久負(fù)盛名。它建構(gòu)于容器技術(shù)之上,目的是實現(xiàn)資源管理的自動化,以及跨多個數(shù)據(jù)中心的資源利用率最大化。2015年4月,Borg論文《Large-scale cluster management at Google with Borg》伴隨Kubernetes的高調(diào)宣傳被Google首次公開,人們終于有緣得窺其全貌。
事實上,正是由于誕生于容器世家Google,并站在Borg這個巨人的肩膀之上,充分受益于Borg過去十?dāng)?shù)年間積累的經(jīng)驗和教訓(xùn),Kubernetes甫一面世就立即廣受關(guān)注和青睞,并迅速稱霸了容器編排技術(shù)領(lǐng)域。很多人將Kubernetes視為Borg系統(tǒng)的一個開源實現(xiàn)版本,在Google內(nèi)部,Kubernetes的原始代號曾經(jīng)是Serven of Nine,即星際迷航中友好的“Borg”角色,它標(biāo)識中的舵輪有七個輪輻就是對該項目代號的致意,如圖所示。
Kubernetes v1.0于2015年7月21日發(fā)布,緊隨其后,Google與Linux基金會合作組建了Cloud Native Computing Foundation(云原生計算基金會,簡稱為CNCF),并將Kubernetes作為種子技術(shù)予以提供。這之后,Kubernetes進(jìn)入了版本快速迭代期,從此不斷地融入著新功能,如Federation、Network Policy API、RBAC、CRD和CSI,等等,并增加了對Windows系統(tǒng)的支持。
2017年可謂是容器生態(tài)發(fā)展史上具有里程碑意義的一年。這一年,AWS、Azure和Alibaba Cloud都相繼在其原有容器服務(wù)上新增了對Kubernetes的支持,而Docker官方也在2017年10月宣布同時支持Swarm和Kubernetes編排系統(tǒng)。這一年,RKT容器派系的CoreOS舍棄掉自己的調(diào)度工具Fleet,將其商用平臺Tectonic的重心轉(zhuǎn)移至Kubernetes。這一年,Mesos也于9月宣布了對Kubernetes的支持,其平臺用戶可以安裝、擴(kuò)展和升級多個生產(chǎn)級的Kubernetes集群。這一年,Rancher Labs推出了其2.0版本的容器管理平臺并宣布all-in Kubernetes,放棄了其內(nèi)置多年的容器編排系統(tǒng)Cattle。類似的故事依然在進(jìn)行,并且必將在一個時期內(nèi)持續(xù)上演。
本文摘編自《Kubernetes進(jìn)階實戰(zhàn)》,經(jīng)出版方授權(quán)發(fā)布。
推薦閱讀:《Kubernetes進(jìn)階實戰(zhàn)》 作者 馬永亮?
內(nèi)容簡介:
基于K8S 1.12版本,透徹解析技術(shù)架構(gòu)、組件應(yīng)用、擴(kuò)縮容、網(wǎng)絡(luò)與存儲策略,以及技術(shù)進(jìn)階等話題 。
馬哥教育CEO馬哥(馬永亮)撰寫,漸進(jìn)式鋪陳,適合入門與進(jìn)階 ;
涵蓋Kubernetes架構(gòu)、部署、核心/自定義資源、擴(kuò)縮容、存儲卷、網(wǎng)絡(luò)插件與策略、安全、調(diào)度策略、監(jiān)控、日志等話題 ;
漸進(jìn)式講解,手把手示范,大量實操案例,隨時動手驗證。
總結(jié)
以上是生活随笔為你收集整理的一文了解Kubernetes的前世今生的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《神魔降世》隐私政策
- 下一篇: 代码坏味道之非必要的