“一千個讀者眼里有一千個哈姆雷特”。同樣的話也適用于 Kubernetes,同樣的系統在不同的開發人員眼中也是不同的,甚至在不同階段對于它的理解也截然不同。
在尚未開始使用Kubernetes之前,我認為它是一套非常復雜的系統,各種抽象概念以及復雜的安裝過程。差點因為安裝不順,打算就此放棄。理由很簡單:既然有了 Docker,為什么還要 Kubernetes?
之所以覺得Kubernetes系統復雜、難,關鍵是不知道它到底是干啥的?再加上老版本繁瑣的安裝過程,愿意啃它是需要一點毅力的。現在,就通過一張簡單的對比圖告訴你,它到底干了啥!
單看圖示上部分,發生的變化僅僅是HOST換成了POD,底層網絡由真實網絡換成了覆蓋網絡,即虛擬網絡。對于APP應用開發者而言, 即使你完全不懂容器技術也沒關系.這是Kubernetes的厲害之處,它提供的抽象層對于APP應用開發者而言是完全透明的。應用在POD中和在HOST主機上并沒有本質區別。
還是老問題:既然有了 Docker,為什么還要 Kubernetes?
回答這個問題,得從為什么需要引入Docker這個問題先開始。你會說,因為需要容器化部署。那為什么需要容器化部署呢?就這個問題還可以走得更遠一點。這里我就偷懶了,先打住。看看容器化部署后出現的新問題,即容器實例越來越多。因為容器實例越來越多,就像雞蛋太多需要一個籃子來裝一樣,Kubernetes就是那個籃子。當然這不是一個簡單的籃子,此處也不擴展了。
標準答案就是:因為有了 Docker,所以才要Kubernetes。是不是感覺進入一個loop,我也這感覺。
從圖中也可以看出,Docker容器技術是Kubernetes平臺的基礎。容器技術主要作用是隔離,通過對系統的關鍵資源的隔離,實現了主機抽象。Kubernetes平臺則是在抽象主機的基礎上,實現了集群抽象。
用一句話做個總結,就是:
容器,提供應用級的系統抽象;Kubernetes,提供應用級的集群抽象。
小結
一篇短文,希望可以幫到還徘徊在Kubernetes大門之外的初學者。當然,新版本Kubernetes已經非常容易安裝了。
-
APP
+關注
關注
33文章
1577瀏覽量
72791 -
Docker
+關注
關注
0文章
492瀏覽量
11968
發布評論請先 登錄
相關推薦
云服務器 Flexus X 實例,Docker 集成搭建 NGINX
![云服務器 Flexus X 實例,<b class='flag-5'>Docker</b> 集成搭建 NGINX](https://file1.elecfans.com//web3/M00/05/BA/wKgZPGeEg9-AFidXAALbDg2BGg8471.png)
Kubernetes的CNI網絡插件之flannel
k8s和docker區別對比,哪個更強?
docker和k8s部署在云平臺性能要求盤點
Docker運行環境安裝
ARM平臺實現Docker容器技術
ARM平臺實現Docker容器技術
如何使用Kubeadm命令在PetaExpress Ubuntu系統上安裝Kubernetes集群
![如何使用Kubeadm命令在PetaExpress Ubuntu系統上安裝<b class='flag-5'>Kubernetes</b>集群](https://file1.elecfans.com/web2/M00/FD/6F/wKgaomaUsqyADbxmAAETUApXpYI091.png)
Jtti:Docker會替代調虛機嗎
![Jtti:<b class='flag-5'>Docker</b>會替代調虛機嗎](https://file1.elecfans.com/web2/M00/FB/5A/wKgZomaQzyWAG5r5AAQoi__pg4c076.png)
關于Docker 的清理命令集錦
ARM平臺實現Docker容器技術
![ARM平臺實現<b class='flag-5'>Docker</b>容器技術](https://file1.elecfans.com/web2/M00/C3/DE/wKgaomXpMM2ANlt5AARGmREsrH4588.png)
評論