煮餃子論云原生docker與kubernetes之間的關(guān)系
前言
云原生的概念最近非?;鸨?,企業(yè)落地云原生的愿望也越發(fā)強(qiáng)烈??催^(guò)很多關(guān)于云原生的文章,要么云山霧罩,要么曲高和寡。 所以筆者就有了寫(xiě)《大話云原生》系列文章的想法,期望用最通俗、簡(jiǎn)單的語(yǔ)言說(shuō)明白云原生生態(tài)系統(tǒng)內(nèi)的組成及應(yīng)用關(guān)系。那么,開(kāi)始吧,這是第一篇!

這真的是一篇講架構(gòu)技術(shù)的文章,不是小說(shuō)!建議您看下去!
一、周末煮餃子聊到容器問(wèn)題
周末和老婆一起包了頓餃子,“老公,我去買(mǎi)瓶醋,你把餃子先煮一下吧”。我笨手笨腳準(zhǔn)備半天,還沒(méi)煮完,老婆就回來(lái)了。我看著這一鍋餃子問(wèn)道:“老婆,你說(shuō)這 飯店是怎么煮餃子的啊? 每個(gè)人口味不一樣,飯量也都不一樣啊,想想都頭疼!”

小娜同學(xué)一邊用手比劃一邊說(shuō):“飯店當(dāng)然不能像家里這么煮餃子啊,他們有一種特制的鍋,就是那個(gè)、那個(gè)樣子的”。
我感覺(jué)自己娶了一個(gè)傻女人,“到底是哪個(gè)樣子的?用手能比劃出來(lái)?。磕闶遣皇菒?ài)情公寓看多了?”。老婆聽(tīng)到我的抱怨,拿起手機(jī)搜索了一下:“諾,就是這個(gè)樣子的,你個(gè)白癡!”

“飯店就是用這種鍋煮餃子的,水是一鍋水,爐是一個(gè)爐,分成多個(gè)容器,每個(gè)容器里面放入一個(gè)客人點(diǎn)的餃子就可以啦。”作為生活小能手的小娜同學(xué)知道的可真多。
“哎我去,這不就是一個(gè)服務(wù)器啟動(dòng)了多個(gè)docker容器么?”同樣作為程序員的小娜贊到:“老公,你說(shuō)的還真對(duì)哈,我最近可是剛看了docker呢,但我還不太會(huì)用!”。
二、說(shuō)說(shuō)docker與煮餃子的容器
“你一個(gè)前端學(xué)什么docker”。小娜不服氣了,“哎,你別瞧不起人,我還知道k8s呢”。這可讓我有點(diǎn)意外,正當(dāng)我意外之時(shí),老婆一句話差點(diǎn)讓我噴出來(lái):“那k8s到底是個(gè)什么東西???”,我們商量好飯后她刷碗,我給她說(shuō)說(shuō)docker與k8。
不一會(huì)就開(kāi)始了飯后輔導(dǎo): 飯店煮餃子本身就是一種服務(wù)(應(yīng)用服務(wù)),煮餃子的鍋就像一個(gè)服務(wù)器,鍋里的每一個(gè)網(wǎng)狀籠就像一個(gè)docker容器,通常情況下一個(gè)網(wǎng)狀籠只煮一種餃子,就像一個(gè)docker容器通常只提供一個(gè)服務(wù)(微服務(wù))。同一個(gè)服務(wù)器上的docker容器之間能夠進(jìn)行必要的隔離,避免資源沖突(不同餡的餃子煮混)。又能充分的共享服務(wù)器資源(那一鍋水和供電),達(dá)到資源的合理利用,避免浪費(fèi)。
小娜微笑點(diǎn)點(diǎn)頭表示明白了,”那飯店規(guī)模變大,客人越來(lái)越多,就得買(mǎi)更多的大鍋(服務(wù)器)啊?"

那是當(dāng)然嘍,你看哈,當(dāng)服務(wù)器越來(lái)越多的時(shí)候就組成了集群。docker容器還有一個(gè)好處就是它的標(biāo)準(zhǔn)化,標(biāo)準(zhǔn)化在這里就代表了部署靈活性。假如一號(hào)鍋突然斷電了,煮餃子的師傅就可以把煮餃子的容器拔出來(lái)插入二號(hào)鍋,因?yàn)槿萜鞯臉?biāo)準(zhǔn)是一樣的。就像docker容器可以靈活快速的啟動(dòng),在不同的服務(wù)器上啟動(dòng)提供服務(wù)。
小娜同學(xué)再次的點(diǎn)了點(diǎn)頭,向我投來(lái)仰慕的眼光。趁熱打鐵,我總結(jié)道:”docker容器有效的實(shí)現(xiàn)了服務(wù)的環(huán)境封裝的標(biāo)準(zhǔn)化,以及同服務(wù)器容器之間的環(huán)境隔離,資源共享“。
三、聊聊集群煮餃子(k8s)
小娜同學(xué)對(duì)于接下來(lái)的內(nèi)容已經(jīng)迫不及待了,“docker我懂了,快說(shuō)說(shuō)k8s”。我故弄玄虛的說(shuō)到,你看哈,現(xiàn)在這個(gè)飯店的集群容器煮餃子的模式還需要解決哪些問(wèn)題?我們倆討論了一下,總結(jié)了下面這幾條:
- 飯店的客流量不總是滿的,大鍋的個(gè)數(shù)肯定是按照最大需求買(mǎi)的,但是肯定有部分的時(shí)間大鍋是閑置的。
- 客流量肯定是有一定的規(guī)律的吧?比如周末比工作日客流量大,下班后比上班時(shí)間客流量大。
- 假如突然來(lái)了一個(gè)旅游團(tuán)進(jìn)來(lái)用餐,誰(shuí)來(lái)做應(yīng)急管理?快速的給大鍋插電?燒水?滿足用餐需求?
- 如果為了避免煮出來(lái)的餃子味道混淆,是不是素餡類不同容器的放到一個(gè)大鍋里面煮?肉餡的放在一起煮、海鮮餡的放在一起煮會(huì)好一些?
- 是不是得有人定期的對(duì)“大鍋”和大鍋里面的容器進(jìn)行衛(wèi)生檢查、運(yùn)行狀態(tài)(健康檢查)?
- 是不是得有一個(gè)人清楚的知道,素餡的一兩餃子是唐僧的,肉餡的四兩餃子是豬八戒的?
其實(shí)還有很多需要注意的問(wèn)題,所有的這些都可以歸納為:任務(wù)分配或者是服務(wù)編排,或者是容器的編排問(wèn)題。k8s的主要作用就是用來(lái)解決類似這樣的一些問(wèn)題:
- 根據(jù)訪問(wèn)量大小快速的對(duì)容器數(shù)量進(jìn)行擴(kuò)容、縮容。
- 遵循一定的預(yù)定計(jì)劃來(lái)執(zhí)行容器編排工作、應(yīng)急管理工作、健康檢查工作
- 合理的編排容器,有些容器放在CPU密集型的服務(wù)器上,有些容器放在內(nèi)存密集型容器上。畢竟有的容器運(yùn)行的是計(jì)算型微服務(wù),有的容器運(yùn)行的是耗內(nèi)存的微服務(wù)。合理的編排能夠達(dá)到資源的最大利用率。
以上等等這些進(jìn)行容器管理、編排的問(wèn)題,都需要k8s來(lái)管理支撐,而且是自動(dòng)化支撐。 說(shuō)到這里,小娜同學(xué)若有所思,“我聽(tīng)是聽(tīng)明白了,但是感覺(jué)這東西好龐大、好復(fù)雜啊。開(kāi)發(fā)一個(gè)應(yīng)用放在一起部署不好么?為什么搞這么復(fù)雜?”
還別說(shuō),小娜同學(xué)還真問(wèn)道點(diǎn)子上了。但這也不能一次全都講完啊,否則明天的碗誰(shuí)來(lái)刷?
以上就是煮餃子論云原生docker與kubernetes之間的關(guān)系的詳細(xì)內(nèi)容,更多關(guān)于云原生docker與kubernetes的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用Docker compose編排Laravel應(yīng)用的方法
本篇文章主要介紹了使用Docker compose編排Laravel應(yīng)用的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
解析docker妙用SpringBoot構(gòu)建微服務(wù)實(shí)戰(zhàn)記錄
Spring Boot 是 Spring 開(kāi)源組織的子項(xiàng)目,是 Spring 組件一站式解決方案,本文通過(guò)詳細(xì)案例給大家解析docker妙用SpringBoot構(gòu)建微服務(wù)實(shí)戰(zhàn)記錄,感興趣的朋友跟隨小編一起看看吧2021-11-11
Docker運(yùn)行Web服務(wù)實(shí)戰(zhàn)之Tomcat的詳細(xì)過(guò)程
Tomcat是由Apache軟件基金會(huì)下屬的Jakarta項(xiàng)目開(kāi)發(fā)的一個(gè)Servlet容器,按照Sun Microsystems提供的技術(shù)規(guī)范,實(shí)現(xiàn)了對(duì)Servlet和Java Server Page(JSP)的支持,這篇文章主要介紹了Docker運(yùn)行Web服務(wù)實(shí)戰(zhàn)之Tomcat的詳細(xì)過(guò)程,需要的朋友可以參考下2022-08-08
深入理解Docker Load和Docker Import的區(qū)別詳解
Docker是一個(gè)流行的容器化平臺(tái),提供了豐富的命令和功能,其中docker load和docker import是兩個(gè)常用的命令,用于加載Docker鏡像,這篇文章主要給大家介紹了關(guān)于Docker Load和Docker Import區(qū)別的相關(guān)資料,需要的朋友可以參考下2024-03-03
docker容器運(yùn)行成功但無(wú)法訪問(wèn)的原因分析及解決方案(以Tomcat為例親測(cè)有效)
這篇文章主要介紹了docker容器運(yùn)行成功但無(wú)法訪問(wèn)的原因分析及對(duì)應(yīng)解決方案(以Tomcat為例親測(cè)有效),文中通過(guò)圖文結(jié)合的方式介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-03-03
docker內(nèi)的容器如何與宿主機(jī)共享IP的方法
本文主要介紹了docker內(nèi)的容器如何與宿主機(jī)共享IP的方法,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
docker國(guó)內(nèi)鏡像源配置及走代理設(shè)置小結(jié)
本文主要介紹了配置Docker國(guó)內(nèi)鏡像源及代理設(shè)置,以加快鏡像拉取速度,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01

