為什麼Kubernetes贏得容器之戰_Kubernetes中文社群
【編者的話】Kubernetes是Google開源的容器叢集管理系統,其提供應用部署、維護、 擴充套件機制等功能,利用Kubernetes能方便地管理跨機器執行容器化的應用。今年的調查顯示,Kubernetes成為被最廣泛使用的編排工具。為什麼在編排方面Kubernetes如此受歡迎呢?讓我們看Matt Asay如何看待這個問題。
容器的使用在技術中日益廣泛使用,儘管不同的編排產品競爭激烈,但是行業中一般都以Kubernetes作為容器的預設編排引擎。
對比諸多編排工具,包含Docker官方的Swarm,我們有必要研究下Kubernetes為何如此受歡迎,尤其是彼此之間複雜度的區別。
像MongoDB和Linux這樣流行的開源軟體,流行的原因可以歸結為社群建設的功勞—例如谷歌研發15年的背後支援。最終,這一獨特的卓越工程願意讓別人接手,也是Kubernetes能夠成為令人印象深刻的開源專案的原因。
做有內容的社群
從社群的年齡來講,Kubernetes不佔優勢。畢竟Kubernetes才兩歲而已(從作為開源專案算起),而Apache的Mesos已經推出7年之久。Docker Swarm雖然是比Kubernetes更年輕的專案,但是它的背後是來自於Docker官方容器中心的全方位支援。
然而作為編排工具,對手在社群這一點比起來就顯得略微蒼白。現在Kubernetes社群在基礎雲平臺的管理下正在不斷變得豐富多彩。
- Kubernetes是活躍在Github中前幾名的專案之一:佔有在所有專案中排名0.01%的star,而且在所有團隊專案活躍度排名第一。
- 雖然Kubernetes的文件欠佳,但是Kubernetes有自己的Slack和Stack Overflow社群作為補充,幫助解決問題優於其競爭對手。
- 在LinkedIn上有更專業的Kubernetes專家,相比其他工具,Kubernetes通過LinkedIn為使用者提供了更廣闊的解決問題空間。
- 最明顯的是,OpenHub的資料卻顯示了Apache Mesos正在走向衰落,Docker Swarm增長也開始放緩。從原始社群的貢獻來講,Kubernetes正在迅速增長,從1000+貢獻者34000+的提交貢獻,遠遠超過了其他像Mesos競爭對手的四倍之多。
是什麼造成了這樣瘋狂的結果呢?總之一句話,是谷歌,或者是說谷歌的選擇開源。雖然其他的每一個編排專案背後都有一個供應商公司在影響著,但是Kubernetes受益於谷歌的不干涉開發,以及比較優秀的原始引擎。
與此同時,Docker擁有實際上的容器標準,Docker也一直在努力構建與Kubernetes一樣廣泛深入的容器社群。基於以上原因,谷歌的Kelsey Hightower指出,Docker本身在阻止競爭對手進入構建容器標準。
當然,容器不需要任何標準化的輸入,但是市場似乎更傾向於更少的權利集中在編排層的容器。由於市場需要一個可行的商業模式,我們期待Docker在ops,hence,編排容器方面的競爭。但是除非公司把Swarm轉變為真實的行業標準,這樣可能贏得了容器的戰爭,而會在編排工具的競爭中失敗,即使他聲稱可以提供更好的效能。
谷歌崇拜者
Kubernetes活躍社群的背後是特殊的技術力量驅動。作為谷歌的Borg技術,Kubernetes已經累積了15年的深耕細作的發展和生產實踐。這項技術特別好以至於時任谷歌技術基礎架構部門領導的Urs Holzle難以置信的反應,當時一些工程師建議建議一個Borg版本並且提議開源。
“所以,讓我直說了吧,你可以構建一個外部的Borg任務排程器,這也是我們一個最重要的競爭優勢,甚至不談其他的,重要的問題是要它開源嗎?”
工程師使用Borg作為叢集管理的工具,其中Gmail,YouTobe,Google Search和其他流行的谷歌服務都是用此工具作為基礎框架管理。後來它被內建在谷歌的計算引擎中。但是工程師發現,使用者關注點在CPU的那點利用率上。容器管理工具是必須的,他們可以作為一個守護程序執行在系統中,其中的訣竅把它公開、開源了。
據谷歌產品經理Martin Buhr說,谷歌更換Kubernetes的動機來自於一些官面的原因和一些自身的利益。谷歌希望開源的Kubernetes可以極大地擴充套件開發人員的生產力,從而使這個世界更加美好。更自私的講,“隨著時間的推移,我們將對谷歌雲平臺容器做全面的支援,將在市場上創造一個基於容器的應用程式,他們其中很大一部分會與我們同在的。”
換句話說,讓開發和運維團隊可以很舒服地使 用Kubernetes,所以他們可以選擇谷歌的雲平臺更方便的使用。這是基本沒有其他工作的,如果谷歌開始對Kubernetes有直接的貨幣利益,那對開源社群來說是個毒丸。
簡而言之,Kubernetes的成功源於谷歌在程式碼層次15年的深耕細作,也因為谷歌渴望社群繼續發展,並期待花費下一個15年去發展Kubernetes。