Docker與Kubernetes,是敵是友?

如果你是一名運維工程師,你就會知道Docker公司的估值已超過10億美元,而且Docker是最受關注的技術品牌之一。Docker容器被稱爲容器運行時的事實標準,但是Google公司的Kubernetes正在贏得編排框架市場的勝利。在使用容器技術時,我們經常會遇到這樣一個問題,“使用Kubernetes會傷害Docker嗎?”

許多人認爲容器技術的價值在編排層,這是Kubernetes對Docker容器的直接威脅。然而我不認同這個觀點,因爲Docker不是一家容器運行時公司,而是一家容器平臺公司。要理解這個概念,我們必須瞭解Docker公司的歷史。
PaaS vs CaaS
Docker公司曾是一家名爲dotCloud的公共雲PaaS(平臺即服務)公司。所有的PaaS解決方案都可以利用容器封裝來執行復雜的任務,例如實時遷移,以便可以快速部署軟件,而不需要用戶離線系統或停機。2013年,dotCloud公司開源了其基礎容器技術,稱爲Docker項目。與此同時,一個大型技術社區產生了,dotCloud從一家純粹的PaaS公司轉型成爲一家名爲Docker的容器平臺公司。

Docker+Kubernetes(k8s)微服務容器化實踐

在接下來的兩年中,Docker公司籌集了1.9億美元,並闡述了容器即服務(CaaS)的概念。首席技術官Solomon Hykes指出,PaaS的最大挑戰之一是開發人員往往過於規範。CaaS的理念是用戶可以將相關的組件容器化,並在Docker產品和服務的幫助下,搭建一個由容器化組件構成的非規範性平臺。這樣,開發人員就從基礎的IT管道中抽象出來,不再被PaaS供應商提供的技術所捆綁。轉向CaaS使得Docker成爲容器平臺公司,而容器只是一種工具。
編排框架
一旦擁抱了容器,用戶就需要一個編排框架來調度和管理容器。最常見的編排框架有Kubernetes、Mesos、Docker Swarm。Kubernetes是目前市場上最成熟的、最具擴展性的解決方案,佔有最大的市場份額。上述三個編排框架都開放源代碼,用戶只需爲技術支持服務付費。

Kubernetes與Docker容器之間,並不是蘋果與蘋果的比較,你不能將業務流程工具與平臺對比。Kubernetes是Google公司多年來用於大型集羣管理的基礎技術,它於2015年7月發佈。之後的DockerCon 2016上,Docker公司宣佈了具有業務流程功能的Docker Swarm。Docker Swarm的一個優點是與Docker平臺中的許多安全功能集成,如密鑰管理。在容器規模較小的場景下,許多用戶更喜歡使用Docker Swarm,因爲它平滑地內置於Docker平臺中。
容器技術的價值在平臺
到目前爲止,編排框架競賽的獲勝者是Kubernetes。這使得許多人認爲Kubernetes對Docker容器造成了很大的威脅。在DockerCon 2017上,Docker公司發佈了Moby項目,它是一個基於容器平臺(CaaS)的組裝框架。Moby項目使得用戶可以用喜歡的組件來創建定製化的平臺。從下圖可知,編排框架只是容器平臺(CaaS)的一層。
Docker與Kubernetes,是敵是友?

Docker容器不關心用戶使用哪種編排框架,它的工作是讓用戶輕鬆地選擇最喜歡的編排框架,無論Kubernetes、Mesos、Docker Swarm還是其他。這個選擇在價值上無關緊要,真正的價值在於平臺,那纔是錢。因此,將Kubernetes與Docker容器進行比較是沒有意義的,Docker的真正的競爭對手是VMWare、CloudFoundry等平臺。
在我看來
在Twitter上,我們看到Google公司的Kelsey Hightower與Docker公司的Solomon Hykes之間喋喋不休,但是我相信Kelsey對於Docker容器缺乏開放性的建設性批評,有助於推動其將Kubernetes作爲容器平臺編排層的可行性選擇之一。如果這樣,Google公司就不再是容器生態的敵人,更多的是合作伙伴。

Docker公司的資金收入來源於技術支持服務,生產中運行的Docker容器越多,技術支持服務的收入就越多。對Docker公司來說,重要的是Docker容器使用率的提升。顯然,Kubernetes是最受歡迎的編排框架,被用於驅動大規模的容器應用,而Kubernetes可以使更多的Docker容器投入生產。

在我看來,Kubernetes不是Docker容器的殺手,而是推動者。更進一步地說,編排框架是容器平臺的商品,它會驅動容器運行時的使用。編排框架是容器平臺的關鍵組成部分,它與容器運行時是朋友,而不是敵人。

Docker+Kubernetes(k8s)微服務容器化實踐

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章