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