煮餃子論云原生docker與kubernetes之間的關(guān)系
前言
云原生的概念最近非?;鸨髽I(yè)落地云原生的愿望也越發(fā)強(qiáng)烈??催^很多關(guān)于云原生的文章,要么云山霧罩,要么曲高和寡。 所以筆者就有了寫《大話云原生》系列文章的想法,期望用最通俗、簡單的語言說明白云原生生態(tài)系統(tǒng)內(nèi)的組成及應(yīng)用關(guān)系。那么,開始吧,這是第一篇!
這真的是一篇講架構(gòu)技術(shù)的文章,不是小說!建議您看下去!
一、周末煮餃子聊到容器問題
周末和老婆一起包了頓餃子,“老公,我去買瓶醋,你把餃子先煮一下吧”。我笨手笨腳準(zhǔn)備半天,還沒煮完,老婆就回來了。我看著這一鍋餃子問道:“老婆,你說這 飯店是怎么煮餃子的??? 每個(gè)人口味不一樣,飯量也都不一樣啊,想想都頭疼!”
小娜同學(xué)一邊用手比劃一邊說:“飯店當(dāng)然不能像家里這么煮餃子啊,他們有一種特制的鍋,就是那個(gè)、那個(gè)樣子的”。
我感覺自己娶了一個(gè)傻女人,“到底是哪個(gè)樣子的?用手能比劃出來???你是不是愛情公寓看多了?”。老婆聽到我的抱怨,拿起手機(jī)搜索了一下:“諾,就是這個(gè)樣子的,你個(gè)白癡!”
“飯店就是用這種鍋煮餃子的,水是一鍋水,爐是一個(gè)爐,分成多個(gè)容器,每個(gè)容器里面放入一個(gè)客人點(diǎn)的餃子就可以啦。”作為生活小能手的小娜同學(xué)知道的可真多。
“哎我去,這不就是一個(gè)服務(wù)器啟動(dòng)了多個(gè)docker容器么?”同樣作為程序員的小娜贊到:“老公,你說的還真對(duì)哈,我最近可是剛看了docker呢,但我還不太會(huì)用!”。
二、說說docker與煮餃子的容器
“你一個(gè)前端學(xué)什么docker”。小娜不服氣了,“哎,你別瞧不起人,我還知道k8s呢”。這可讓我有點(diǎn)意外,正當(dāng)我意外之時(shí),老婆一句話差點(diǎn)讓我噴出來:“那k8s到底是個(gè)什么東西啊?”,我們商量好飯后她刷碗,我給她說說docker與k8。
不一會(huì)就開始了飯后輔導(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ī)模變大,客人越來越多,就得買更多的大鍋(服務(wù)器)啊?"
那是當(dāng)然嘍,你看哈,當(dāng)服務(wù)器越來越多的時(shí)候就組成了集群。docker容器還有一個(gè)好處就是它的標(biāo)準(zhǔn)化,標(biāo)準(zhǔn)化在這里就代表了部署靈活性。假如一號(hào)鍋突然斷電了,煮餃子的師傅就可以把煮餃子的容器拔出來插入二號(hào)鍋,因?yàn)槿萜鞯臉?biāo)準(zhǔn)是一樣的。就像docker容器可以靈活快速的啟動(dòng),在不同的服務(wù)器上啟動(dòng)提供服務(wù)。
小娜同學(xué)再次的點(diǎn)了點(diǎn)頭,向我投來仰慕的眼光。趁熱打鐵,我總結(jié)道:”docker容器有效的實(shí)現(xiàn)了服務(wù)的環(huán)境封裝的標(biāo)準(zhǔn)化,以及同服務(wù)器容器之間的環(huán)境隔離,資源共享“。
三、聊聊集群煮餃子(k8s)
小娜同學(xué)對(duì)于接下來的內(nèi)容已經(jīng)迫不及待了,“docker我懂了,快說說k8s”。我故弄玄虛的說到,你看哈,現(xiàn)在這個(gè)飯店的集群容器煮餃子的模式還需要解決哪些問題?我們倆討論了一下,總結(jié)了下面這幾條:
- 飯店的客流量不總是滿的,大鍋的個(gè)數(shù)肯定是按照最大需求買的,但是肯定有部分的時(shí)間大鍋是閑置的。
- 客流量肯定是有一定的規(guī)律的吧?比如周末比工作日客流量大,下班后比上班時(shí)間客流量大。
- 假如突然來了一個(gè)旅游團(tuán)進(jìn)來用餐,誰來做應(yīng)急管理?快速的給大鍋插電?燒水?滿足用餐需求?
- 如果為了避免煮出來的餃子味道混淆,是不是素餡類不同容器的放到一個(gè)大鍋里面煮?肉餡的放在一起煮、海鮮餡的放在一起煮會(huì)好一些?
- 是不是得有人定期的對(duì)“大鍋”和大鍋里面的容器進(jìn)行衛(wèi)生檢查、運(yùn)行狀態(tài)(健康檢查)?
- 是不是得有一個(gè)人清楚的知道,素餡的一兩餃子是唐僧的,肉餡的四兩餃子是豬八戒的?
其實(shí)還有很多需要注意的問題,所有的這些都可以歸納為:任務(wù)分配或者是服務(wù)編排,或者是容器的編排問題。k8s的主要作用就是用來解決類似這樣的一些問題:
- 根據(jù)訪問量大小快速的對(duì)容器數(shù)量進(jìn)行擴(kuò)容、縮容。
- 遵循一定的預(yù)定計(jì)劃來執(zhí)行容器編排工作、應(yīng)急管理工作、健康檢查工作
- 合理的編排容器,有些容器放在CPU密集型的服務(wù)器上,有些容器放在內(nèi)存密集型容器上。畢竟有的容器運(yùn)行的是計(jì)算型微服務(wù),有的容器運(yùn)行的是耗內(nèi)存的微服務(wù)。合理的編排能夠達(dá)到資源的最大利用率。
以上等等這些進(jìn)行容器管理、編排的問題,都需要k8s來管理支撐,而且是自動(dòng)化支撐。 說到這里,小娜同學(xué)若有所思,“我聽是聽明白了,但是感覺這東西好龐大、好復(fù)雜啊。開發(fā)一個(gè)應(yīng)用放在一起部署不好么?為什么搞這么復(fù)雜?”
還別說,小娜同學(xué)還真問道點(diǎn)子上了。但這也不能一次全都講完啊,否則明天的碗誰來刷?
以上就是煮餃子論云原生docker與kubernetes之間的關(guān)系的詳細(xì)內(nèi)容,更多關(guān)于云原生docker與kubernetes的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Docker 教程之?dāng)?shù)據(jù)管理詳細(xì)介紹
這篇文章主要介紹了Docker 教程之?dāng)?shù)據(jù)管理詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2017-01-01Docker安裝MongoDB并使用Navicat連接的操作方法
MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫,MongoDB最大的特點(diǎn)是它支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,這篇文章主要介紹了Docker安裝MongoDB并使用Navicat連接,需要的朋友可以參考下2022-10-10docker配置pytorch環(huán)境來進(jìn)行訓(xùn)練的方法步驟
本文主要介紹了docker配置pytorch環(huán)境來進(jìn)行訓(xùn)練的方法步驟,從零開始配置,包括換源,安裝下載,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03Docker跨服務(wù)器通信Overlay解決方案(上)之 Consul單實(shí)例
這篇文章主要介紹了Docker跨服務(wù)器通信Overlay解決方案(上)之 Consul單實(shí)例,本文通過場景分析實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12如何使用?docker?搭建一個(gè)?mysql?服務(wù)
這篇文章主要介紹了如何使用?docker?搭建一個(gè)mysql服務(wù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09關(guān)于docker安全之Docker-TLS加密通訊問題
這篇文章主要介紹了docker安全之Docker-TLS加密通訊,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12