1. 程式人生 > >Docker系列(八):kubernetes橫空出世背後的祕密

Docker系列(八):kubernetes橫空出世背後的祕密

Docker與CoreOS的恩怨情仇

2013年2月,Docker建立了一個網站釋出它的首個演示版本, 3月,美國加州Alex Polvi正在自己的車庫開始 他的 第二次創業
有了第一桶金的Alex這次準備幹一票大的,他計劃開發一個足以顛覆傳統的伺服器系統的Linux發行版。為了提供能夠從任意作業系統版本穩定無縫地升級到最新版系統 的能力,Alex急需解決應用程式與作業系統之間的耦合問題。因此,當時還名不見經傳的Docker容器引起了他的注意,憑著敏銳直覺,Alex預見了這個專案的價值,當 仁不讓地將Docker做為了這個系統支援的第一套應用程式隔離方案。不久以後,他們成立了以自己的系統發行版命名的組織:CoreOS。事實證明,採用Docker這個決定, 後來很大程度上成就了CoreOS的生態系統。
在這裡插入圖片描述


分手
*真相是利益問題
Docker一開始的時候是作為一個元件來構建平臺,一個構建塊,可以將它分層置入系統來利用容器…這是支撐 Docker的原始價值,是一個幫助構建東西的簡單工具,我認為這是目前它如此成功的原因。
但是,Polvi明顯覺得,Docker忽略了自己的核心,期望擁有更多功能——成為一個平臺。
他們一直認為 Docker 應該成為一個簡單的基礎單元,但不幸的是事
情並如他們期望的那樣,Docker正在構建一些工具用於釋出雲伺服器、 集群系統以及構建、執行、上傳和下載映像等服務,甚至包括底層網
絡的功能等,以打造自己的Docker平臺或生態圈。
Docker 剛問世就紅透半邊天,不僅拿了融資,還得到了Google 等巨頭的支援。CoreOS此前一直忙於為Docker 提供技術支援服務
徹底分手,找到新女友

Alex Polvi 認為,由於 Docker 貌似已經從原本做"業界標準容器"的初心轉變成打造一款以容器為中心的企業服務 平臺,CoreOS 才決定開始推出自己的標準化產品。
2014年12
Polvi 表示,Docker 在安全性和可組合性方面是有根本上的缺陷的,而 Rocket 的設計原型就是為了彌補這些
缺陷。
CoreOS 的聯合創始人兼 CTO Brandon Philips 是 Dcoker 管理委員會的成員,CoreOS 打算繼續支援 Docker 專案,但是當 Rocket 逐漸成熟之後,他們將重新評估是否繼續參與貢獻。
在這裡插入圖片描述
2015年5月4日舉行的CoreOS Fest大會上,CoreOS宣佈了它的新合作伙伴:Red Hat、Google、Vmware及 Apcera。Docker對容器的標準控制比較獨斷,而且目前看上去沒有引入其他人一起進行設計的可能。CoreOS的 Rocket自定義程度相對更高,對於Google等公司來說,也是可以制衡Docker的手段。所以Google等公司支援 Rocket
CoreOS CEO Alex Polvi 說:
當開始做 CoreOS 的時候,我們便著手構建並傳遞給大家 Google 的基礎架構。如今,伴隨著 Tectonic 的誕生, 這個目標也實現了。企業可以像 Google 執行其基礎設施一樣,在世界各地安全執行基於容器的分散式應用。
在這裡插入圖片描述

容器技術的標準之爭

在這裡插入圖片描述
cgroup最初由google的工程師提出,後來被整合進Linux核心中 而後的Android作業系統也就憑藉著這個技術,為每個應用程式分配不同的cgroup,將每個程式進行隔離,達到了
一個應用程式不會影響其他應用程式環境的目的。
Linux容器正是業界一直關注的Google基礎設施Borg和Omega的基礎之一,基於之前Google開源的cgroup專案。
Borg
這是一個生產環境的經驗下的論文,自於Google
高層次的
•任何東西都執行在Borg之中,包含儲存系統如CFS和BigTable •中等型別的叢集大小有10k左右的節點,儘管有的要大的多
•節點可以是十分的異構 •使用了Linux的程序隔離(本質上來說是容器),因為Borg出現在現在的虛擬機器基礎設施之前。效率和啟動時間 當時十分重要。
•所有的作業都是靜態的連結的可執行檔案。
•有非常複雜,十分豐富的資源定義語言可用。 •可以滾動升級執行的作業,這意味著配置和執行檔案。這有時需要任務重啟,因而容錯是很重要的。
2013年10月3日 - Google釋出了自己所用Linux容器系統的開源版本lmctfy
Docker的負責人之一Solomon Hykes初步探索了程式碼後認為,lmctfy的一些程式碼功能非常底層,可以作為獨立的 庫,有可能與Docker等容器專案配合使用。由於程式碼很乾淨,佔用小,構建體驗優秀,他正在考慮將其作為 Docker的後端。
在這裡插入圖片描述
2015 Docker con大會上,當Polvi和Hykes在臺上握手並宣佈,啟動開放容器基金會,這被認為原有的分裂得到了 修復。Hykes介紹了OCP專案,旨在為容器提供一種通用runtime
Open Container Project,目標是實現容器映象格式與執行時的標準化。這很有可能實現,專案成員包括Docker、 CoreOS、Redhat、IBM、Google 、微軟、IBM、Google、英特爾、Amazon、HP、華為、思科、EMC 等。
我們開發容器APP的經驗將為我們合作OCP(開放容器專案)規範起到關鍵作用。我們期望大多數容器App能直 接整合到OCP規範中,稍微做點調整就可以和現存的Docker生態圈完美相容。最終目標是致力於形成一份統一的 容器標準格式規範,而且OCP的成功將意味著容器App的大體目標是令人滿意的。——Polvi

Kubernetes王者歸來

在這裡插入圖片描述
2014年6月:谷歌宣佈kubernetes 開源。
2014年7月:Mircrosoft、Red Hat、IBM、 Docker、 CoreOS、 Mesosphere 和Saltstack 加入kubernetes。 2014年8月: 2014年8月 :Mesosphere宣佈將kubernetes作為frame整合到mesosphere生態系統中,用於Docker容 器叢集的排程、部署和管理
2014年8月:VMware加入kubernetes社群,Google產品經理 Craig Mcluckie公開表示,VMware將會幫助 kubernetes實現利用虛擬化來保證物理主機安全的功能模式。
2014年11月 : HP加入kubernetes 社群。 2014年11月:Google容器引擎Alpha啟動,谷歌宣佈GCE中支援容器及服務,並以kubernetes為構架。 2015年1月:Google和Mirantis及夥伴將kubernetes引入OpenStack, 開發者可以在openstack上部署執行 kubernetes 應用。
2015年4月:Google和CoreOs聯合釋出Tectonic, 它將kubernetes和CoreOS軟體棧整合在了一起。
2015年5月: Intel加入kubernetes社群,宣佈將合作加速Tectonic軟體棧的發展進度。 2015年6月:Google容器引擎進入beta版。 2015年7月:Google正式加入OpenStack基金會,Kubernetes的產品經理Craig McLuckie宣佈Google將成為 OpenStack基金會的發起人之一,Google將把它容器計算的專家技術帶入OpenStack,成一體提高公有云和私有云的 互用性。
2015年7月:Kuberentes v1.0正式釋出。
2015年7月22日Google正式對外發布 Kubernetes v 1.0,與此同時,谷歌聯合linux基金會及其他合作伙伴共同成立 了CNCF基金會( Cloud Native Computing Foundation),並將kuberentes 作為首個編入CNCF管理體系的開源專案 ,助力容器技術生態的發展進步。
kubernete在github開源社群,經過400多位貢獻者一年的努力,多達14000次提交,最終達到了在之前會議中確 定的釋出版本v1的功能要求
Google內部積累發展10年的容器及叢集管理專家經驗,正 式應用於大眾雲端計算生產環節
在這裡插入圖片描述