“一千個(gè)讀者眼里有一千個(gè)哈姆雷特”。同樣的話也適用于 Kubernetes,同樣的系統(tǒng)在不同的開發(fā)人員眼中也是不同的,甚至在不同階段對(duì)于它的理解也截然不同。
在尚未開始使用Kubernetes之前,我認(rèn)為它是一套非常復(fù)雜的系統(tǒng),各種抽象概念以及復(fù)雜的安裝過程。差點(diǎn)因?yàn)榘惭b不順,打算就此放棄。理由很簡(jiǎn)單:既然有了 Docker,為什么還要 Kubernetes?
之所以覺得Kubernetes系統(tǒng)復(fù)雜、難,關(guān)鍵是不知道它到底是干啥的?再加上老版本繁瑣的安裝過程,愿意啃它是需要一點(diǎn)毅力的。現(xiàn)在,就通過一張簡(jiǎn)單的對(duì)比圖告訴你,它到底干了啥!
單看圖示上部分,發(fā)生的變化僅僅是HOST換成了POD,底層網(wǎng)絡(luò)由真實(shí)網(wǎng)絡(luò)換成了覆蓋網(wǎng)絡(luò),即虛擬網(wǎng)絡(luò)。對(duì)于APP應(yīng)用開發(fā)者而言, 即使你完全不懂容器技術(shù)也沒關(guān)系.這是Kubernetes的厲害之處,它提供的抽象層對(duì)于APP應(yīng)用開發(fā)者而言是完全透明的。應(yīng)用在POD中和在HOST主機(jī)上并沒有本質(zhì)區(qū)別。
還是老問題:既然有了 Docker,為什么還要 Kubernetes?
回答這個(gè)問題,得從為什么需要引入Docker這個(gè)問題先開始。你會(huì)說,因?yàn)樾枰萜骰渴?。那為什么需要容器化部署呢?就這個(gè)問題還可以走得更遠(yuǎn)一點(diǎn)。這里我就偷懶了,先打住。看看容器化部署后出現(xiàn)的新問題,即容器實(shí)例越來越多。因?yàn)槿萜鲗?shí)例越來越多,就像雞蛋太多需要一個(gè)籃子來裝一樣,Kubernetes就是那個(gè)籃子。當(dāng)然這不是一個(gè)簡(jiǎn)單的籃子,此處也不擴(kuò)展了。
標(biāo)準(zhǔn)答案就是:因?yàn)橛辛?Docker,所以才要Kubernetes。是不是感覺進(jìn)入一個(gè)loop,我也這感覺。
從圖中也可以看出,Docker容器技術(shù)是Kubernetes平臺(tái)的基礎(chǔ)。容器技術(shù)主要作用是隔離,通過對(duì)系統(tǒng)的關(guān)鍵資源的隔離,實(shí)現(xiàn)了主機(jī)抽象。Kubernetes平臺(tái)則是在抽象主機(jī)的基礎(chǔ)上,實(shí)現(xiàn)了集群抽象。
用一句話做個(gè)總結(jié),就是:
容器,提供應(yīng)用級(jí)的系統(tǒng)抽象;Kubernetes,提供應(yīng)用級(jí)的集群抽象。
小結(jié)
一篇短文,希望可以幫到還徘徊在Kubernetes大門之外的初學(xué)者。當(dāng)然,新版本Kubernetes已經(jīng)非常容易安裝了。
-
APP
+關(guān)注
關(guān)注
33文章
1566瀏覽量
72334 -
Docker
+關(guān)注
關(guān)注
0文章
453瀏覽量
11792
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論