01.16 既然有了 Docker,為什麼還要 Kubernetes?

“一千個讀者眼裡有一千個哈姆雷特”。同樣的話也適用於 Kubernetes,同樣的系統在不同的開發人員眼中也是不同的,甚至在不同階段對於它的理解也截然不同。


在尚未開始使用Kubernetes之前,我認為它是一套非常複雜的系統,各種抽象概念以及複雜的安裝過程。差點因為安裝不順,打算就此放棄。理由很簡單:既然有了 Docker,為什麼還要 Kubernetes


之所以覺得Kubernetes系統複雜、難,關鍵是不知道它到底是幹啥的?再加上老版本繁瑣的安裝過程,願意啃它是需要一點毅力的。現在,就通過一張簡單的對比圖告訴你,它到底幹了啥!


既然有了 Docker,為什麼還要 Kubernetes?

單看圖示上部分,發生的變化僅僅是HOST換成了POD,底層網絡由真實網絡換成了覆蓋網絡,即虛擬網絡。對於APP應用開發者而言, 即使你完全不懂容器技術也沒關係.這是Kubernetes的厲害之處,它提供的抽象層對於APP應用開發者而言是完全透明的。應用在POD中和在HOST主機上並沒有本質區別。

還是老問題:既然有了 Docker,為什麼還要 Kubernetes


回答這個問題,得從為什麼需要引入Docker這個問題先開始。你會說,因為需要容器化部署。那為什麼需要容器化部署呢?就這個問題還可以走得更遠一點。這裡我就偷懶了,先打住。看看容器化部署後出現的新問題,即容器實例越來越多。因為容器實例越來越多,就像雞蛋太多需要一個籃子來裝一樣,Kubernetes就是那個籃子。當然這不是一個簡單的籃子,此處也不擴展了。


標準答案就是:因為有了 Docker,所以才要Kubernetes。是不是感覺進入一個loop,我也這感覺。


從圖中也可以看出,Docker容器技術是Kubernetes平臺的基礎。容器技術主要作用是隔離,通過對系統的關鍵資源的隔離,實現了主機抽象。Kubernetes平臺則是在抽象主機的基礎上,實現了集群抽象


用一句話做個總結,就是:

容器,提供應用級的系統抽象;Kubernetes,提供應用級的集群抽象。


小結


一篇短文,希望可以幫到還徘徊在Kubernetes大門之外的初學者。當然,新版本Kubernetes已經非常容易安裝了。


分享到:


相關文章: