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