10分鐘看懂Docker和K8S

來自公眾號(hào):鮮棗課堂
作者小棗君

2010年揩抡,幾個(gè)搞IT的年輕人,在美國(guó)舊金山成立了一家名叫“dotCloud”的公司。

image

這家公司主要提供基于PaaS的云計(jì)算技術(shù)服務(wù)耿芹。具體來說,是和LXC有關(guān)的容器技術(shù)挪哄。

image

LXC吧秕,就是Linux容器虛擬技術(shù)(Linux container)

后來,dotCloud公司將自己的容器技術(shù)進(jìn)行了簡(jiǎn)化和標(biāo)準(zhǔn)化迹炼,并命名為——Docker砸彬。

image

Docker技術(shù)誕生之后,并沒有引起行業(yè)的關(guān)注斯入。而dotCloud公司砂碉,作為一家小型創(chuàng)業(yè)企業(yè),在激烈的競(jìng)爭(zhēng)之下刻两,也步履維艱增蹭。

正當(dāng)他們快要堅(jiān)持不下去的時(shí)候,腦子里蹦出了“開源”的想法磅摹。

什么是“開源”滋迈?開源,就是開放源代碼偏瓤。也就是將原來內(nèi)部保密的程序源代碼開放給所有人杀怠,然后讓大家一起參與進(jìn)來,貢獻(xiàn)代碼和意見厅克。

image

Open Source赔退,開源

有的軟件是一開始就開源的。也有的軟件证舟,是混不下去硕旗,創(chuàng)造者又不想放棄,所以選擇開源女责。自己養(yǎng)不活漆枚,就吃“百家飯”嘛。

2013年3月抵知,dotCloud公司的創(chuàng)始人之一墙基,Docker之父软族,28歲的Solomon?Hykes正式?jīng)Q定,將Docker項(xiàng)目開源残制。

image

Solomon?Hykes(今年剛從Docker離職)

不開則已立砸,一開驚人。

越來越多的IT工程師發(fā)現(xiàn)了Docker的優(yōu)點(diǎn)初茶,然后蜂擁而至颗祝,加入Docker開源社區(qū)。

Docker的人氣迅速攀升恼布,速度之快螺戳,令人瞠目結(jié)舌。

開源當(dāng)月折汞,Docker 0.1 版本發(fā)布倔幼。此后的每一個(gè)月,Docker都會(huì)發(fā)布一個(gè)版本爽待。到2014年6月9日凤藏,Docker 1.0 版本正式發(fā)布。

此時(shí)的Docker堕伪,已經(jīng)成為行業(yè)里人氣最火爆的開源技術(shù)揖庄,沒有之一。甚至像Google欠雌、微軟蹄梢、Amazon、VMware這樣的巨頭富俄,都對(duì)它青睞有加禁炒,表示將全力支持。

Docker火了之后霍比,dotCloud公司干脆把公司名字也改成了Docker Inc. 幕袱。

Docker和容器技術(shù)為什么會(huì)這么火爆?說白了悠瞬,就是因?yàn)樗拜p”们豌。

在容器技術(shù)之前,業(yè)界的網(wǎng)紅是虛擬機(jī)浅妆。虛擬機(jī)技術(shù)的代表望迎,是VMWareOpenStack

image

相信很多人都用過虛擬機(jī)凌外。虛擬機(jī)辩尊,就是在你的操作系統(tǒng)里面,裝一個(gè)軟件康辑,然后通過這個(gè)軟件摄欲,再模擬一臺(tái)甚至多臺(tái)“子電腦”出來轿亮。

image

虛擬機(jī),類似于“子電腦”

在“子電腦”里胸墙,你可以和正常電腦一樣運(yùn)行程序哀托,例如開QQ。如果你愿意劳秋,你可以變出好幾個(gè)“子電腦”,里面都開上QQ胖齐〔J纾“子電腦”和“子電腦”之間,是相互隔離的呀伙,互不影響补履。

虛擬機(jī)屬于虛擬化技術(shù)。而Docker這樣的容器技術(shù)剿另,也是虛擬化技術(shù)箫锤,屬于輕量級(jí)的虛擬化

虛擬機(jī)雖然可以隔離出很多“子電腦”雨女,但占用空間更大谚攒,啟動(dòng)更慢,虛擬機(jī)軟件可能還要花錢(例如VMWare)氛堕。

而容器技術(shù)恰好沒有這些缺點(diǎn)馏臭。它不需要虛擬出整個(gè)操作系統(tǒng),只需要虛擬一個(gè)小規(guī)模的環(huán)境(類似“沙箱”)讼稚。

image

沙箱

它啟動(dòng)時(shí)間很快括儒,幾秒鐘就能完成。而且锐想,它對(duì)資源的利用率很高(一臺(tái)主機(jī)可以同時(shí)運(yùn)行幾千個(gè)Docker容器)帮寻。此外,它占的空間很小赠摇,虛擬機(jī)一般要幾GB到幾十GB的空間固逗,而容器只需要MB級(jí)甚至KB級(jí)。

image

容器和虛擬機(jī)的對(duì)比

正因?yàn)槿绱伺褐模萜骷夹g(shù)受到了熱烈的歡迎和追捧抒蚜,發(fā)展迅速。

我們具體來看看Docker耘戚。

大家需要注意嗡髓,Docker本身并不是容器,它是創(chuàng)建容器的工具收津,是應(yīng)用容器引擎饿这。

想要搞懂Docker浊伙,其實(shí)看它的兩句口號(hào)就行。

第一句长捧,是“Build, Ship and Run”嚣鄙。

image

也就是,“搭建串结、發(fā)送哑子、運(yùn)行”,三板斧肌割。

舉個(gè)例子:

我來到一片空地卧蜓,想建個(gè)房子,于是我搬石頭把敞、砍木頭弥奸、畫圖紙,一頓操作奋早,終于把這個(gè)房子蓋好了盛霎。

image

結(jié)果,我住了一段時(shí)間耽装,想搬到另一片空地去愤炸。這時(shí)候,按以往的辦法掉奄,我只能再次搬石頭摇幻、砍木頭、畫圖紙挥萌、蓋房子绰姻。

但是,跑來一個(gè)老巫婆引瀑,教會(huì)我一種魔法狂芋。

這種魔法,可以把我蓋好的房子復(fù)制一份憨栽,做成“鏡像”帜矾,放在我的背包里。

image

等我到了另一片空地屑柔,就用這個(gè)“鏡像”屡萤,復(fù)制一套房子,擺在那邊掸宛,拎包入住死陆。

image

怎么樣?是不是很神奇?

所以措译,Docker的第二句口號(hào)就是:“Build?once别凤,Run?anywhere(搭建一次,到處能用)”领虹。

Docker技術(shù)的三大核心概念规哪,分別是:

  • 鏡像(Image)

  • 容器(Container)

  • 倉(cāng)庫(kù)(Repository)

我剛才例子里面,那個(gè)放在包里的“鏡像”塌衰,就是Docker鏡像诉稍。而我的背包,就是Docker倉(cāng)庫(kù)最疆。我在空地上杯巨,用魔法造好的房子,就是一個(gè)Docker容器肚菠。

說白了,這個(gè)Docker鏡像罩缴,是一個(gè)特殊的文件系統(tǒng)蚊逢。它除了提供容器運(yùn)行時(shí)所需的程序、庫(kù)箫章、資源烙荷、配置等文件外,還包含了一些為運(yùn)行時(shí)準(zhǔn)備的一些配置參數(shù)(例如環(huán)境變量)檬寂。鏡像不包含任何動(dòng)態(tài)數(shù)據(jù)终抽,其內(nèi)容在構(gòu)建之后也不會(huì)被改變。

也就是說桶至,每次變出房子昼伴,房子是一樣的,但生活用品之類的镣屹,都是不管的圃郊。誰(shuí)住誰(shuí)負(fù)責(zé)添置。

每一個(gè)鏡像可以變出一種房子女蜈。那么持舆,我可以有多個(gè)鏡像呀!

也就是說伪窖,我蓋了一個(gè)歐式別墅逸寓,生成了鏡像。另一個(gè)哥們可能蓋了一個(gè)中國(guó)四合院覆山,也生成了鏡像竹伸。還有哥們,蓋了一個(gè)非洲茅草屋簇宽,也生成了鏡像佩伤。聊倔。。

這么一來生巡,我們可以交換鏡像耙蔑,你用我的,我用你的孤荣,豈不是很爽甸陌?

image

于是乎,就變成了一個(gè)大的公共倉(cāng)庫(kù)盐股。

負(fù)責(zé)對(duì)Docker鏡像進(jìn)行管理的钱豁,是Docker Registry服務(wù)(類似倉(cāng)庫(kù)管理員)。

不是任何人建的任何鏡像都是合法的疯汁。萬(wàn)一有人蓋了一個(gè)有問題的房子呢牲尺?

所以,Docker Registry服務(wù)對(duì)鏡像的管理是非常嚴(yán)格的幌蚊。

最常使用的Registry公開服務(wù)谤碳,是官方的Docker Hub,這也是默認(rèn)的 Registry溢豆,并擁有大量的高質(zhì)量的官方鏡像蜒简。

好了,說完了Docker漩仙,我們?cè)侔涯抗廪D(zhuǎn)向K8S搓茬。

就在Docker容器技術(shù)被炒得熱火朝天之時(shí),大家發(fā)現(xiàn)队他,如果想要將Docker應(yīng)用于具體的業(yè)務(wù)實(shí)現(xiàn)卷仑,是存在困難的——編排、管理和調(diào)度等各個(gè)方面麸折,都不容易系枪。于是,人們迫切需要一套管理系統(tǒng)磕谅,對(duì)Docker及容器進(jìn)行更高級(jí)更靈活的管理私爷。

就在這個(gè)時(shí)候,K8S出現(xiàn)了膊夹。

K8S衬浑,就是基于容器的集群管理平臺(tái),它的全稱放刨,是kubernetes工秩。

image

Kubernetes 這個(gè)單詞來自于希臘語(yǔ),含義是舵手領(lǐng)航員。K8S是它的縮寫助币,用“8”字替代了“ubernete”這8個(gè)字符浪听。

和Docker不同,K8S的創(chuàng)造者眉菱,是眾人皆知的行業(yè)巨頭——Google迹栓。

然而,K8S并不是一件全新的發(fā)明俭缓。它的前身克伊,是Google自己搗鼓了十多年的Borg系統(tǒng)

K8S是2014年6月由Google公司正式公布出來并宣布開源的华坦。

同年7月愿吹,微軟、Red Hat惜姐、IBM犁跪、Docker、CoreOS歹袁、 Mesosphere和Saltstack 等公司坷衍,相繼加入K8S。

之后的一年內(nèi)宇攻,VMware惫叛、HP倡勇、Intel等公司逞刷,也陸續(xù)加入。

2015年7月妻熊,Google正式加入OpenStack基金會(huì)夸浅。與此同時(shí),Kuberentes v1.0正式發(fā)布扔役。

目前帆喇,kubernetes的版本已經(jīng)發(fā)展到V1.13。

K8S的架構(gòu)亿胸,略微有一點(diǎn)復(fù)雜坯钦,我們簡(jiǎn)單來看一下。

一個(gè)K8S系統(tǒng)侈玄,通常稱為一個(gè)K8S集群(Cluster)婉刀。

這個(gè)集群主要包括兩個(gè)部分:

  • 一個(gè)Master節(jié)點(diǎn)(主節(jié)點(diǎn))

  • 一群Node節(jié)點(diǎn)(計(jì)算節(jié)點(diǎn))

image

一看就明白:Master節(jié)點(diǎn)主要還是負(fù)責(zé)管理和控制。Node節(jié)點(diǎn)是工作負(fù)載節(jié)點(diǎn)序仙,里面是具體的容器突颊。

深入來看這兩種節(jié)點(diǎn)。

首先是Master節(jié)點(diǎn)

image

Master節(jié)點(diǎn)包括API Server律秃、Scheduler爬橡、Controller manager、etcd棒动。

API Server是整個(gè)系統(tǒng)的對(duì)外接口糙申,供客戶端和其它組件調(diào)用,相當(dāng)于“營(yíng)業(yè)廳”迁客。

Scheduler負(fù)責(zé)對(duì)集群內(nèi)部的資源進(jìn)行調(diào)度鲸睛,相當(dāng)于“調(diào)度室”。

Controller manager負(fù)責(zé)管理控制器廷支,相當(dāng)于“大總管”马昙。

然后是Node節(jié)點(diǎn)

image

Node節(jié)點(diǎn)包括Docker卜范、kubelet衔统、kube-proxy、Fluentd海雪、kube-dns(可選)锦爵,還有就是Pod

Pod是Kubernetes最基本的操作單元奥裸。一個(gè)Pod代表著集群中運(yùn)行的一個(gè)進(jìn)程险掀,它內(nèi)部封裝了一個(gè)或多個(gè)緊密相關(guān)的容器。除了Pod之外湾宙,K8S還有一個(gè)Service的概念樟氢,一個(gè)Service可以看作一組提供相同服務(wù)的Pod的對(duì)外訪問接口。這段不太好理解侠鳄,跳過吧埠啃。

Docker,不用說了伟恶,創(chuàng)建容器的碴开。

Kubelet,主要負(fù)責(zé)監(jiān)視指派到它所在Node上的Pod博秫,包括創(chuàng)建潦牛、修改、監(jiān)控挡育、刪除等巴碗。

Kube-proxy,主要負(fù)責(zé)為Pod對(duì)象提供代理静盅。

Fluentd良价,主要負(fù)責(zé)日志收集寝殴、存儲(chǔ)與查詢。

是不是有點(diǎn)懵明垢?唉蚣常,三言兩語(yǔ)真的很難講清楚,繼續(xù)跳過吧痊银。

Docker和K8S都介紹完了抵蚊,然而文章并沒有結(jié)束。

接下來的部分溯革,是寫給核心網(wǎng)工程師甚至所有通信工程師看的贞绳。

從幾十年前的1G,到現(xiàn)在的4G致稀,再到將來的5G冈闭,移動(dòng)通信發(fā)生了翻天覆地的變化,核心網(wǎng)亦是如此抖单。

但是萎攒,如果你仔細(xì)洞察這些變化,會(huì)發(fā)現(xiàn)矛绘,所謂的核心網(wǎng)耍休,其實(shí)本質(zhì)上并沒有發(fā)生改變,無非就是很多的服務(wù)器而已货矮。不同的核心網(wǎng)網(wǎng)元羊精,就是不同的服務(wù)器,不同的計(jì)算節(jié)點(diǎn)囚玫。

變化的喧锦,是這些“服務(wù)器”的形態(tài)和接口:形態(tài),從機(jī)柜單板劫灶,變成機(jī)柜刀片裸违,從機(jī)柜刀片掖桦,變成X86通用刀片服務(wù)器本昏;接口,從中繼線纜枪汪,變成網(wǎng)線涌穆,從網(wǎng)線,變成光纖雀久。

就算變來變?nèi)ニ尴。€是服務(wù)器,是計(jì)算節(jié)點(diǎn)赖捌,是CPU祝沸。

既然是服務(wù)器矮烹,那么就勢(shì)必會(huì)和IT云計(jì)算一樣,走上虛擬化的道路罩锐。畢竟奉狈,虛擬化有太多的優(yōu)勢(shì),例如前文所說的低成本涩惑、高利用率仁期、充分靈活、動(dòng)態(tài)調(diào)度竭恬,等等跛蛋。

前幾年,大家以為虛擬機(jī)是核心網(wǎng)的終極形態(tài)痊硕。目前看來赊级,更有可能是容器化。這幾年經(jīng)常說的NFV(網(wǎng)元功能虛擬化)岔绸,也有可能改口為NFC(網(wǎng)元功能容器化)此衅。

以VoLTE為例,如果按以前2G/3G的方式亭螟,那需要大量的專用設(shè)備挡鞍,分別充當(dāng)EPC和IMS的不同網(wǎng)元。

image

VoLTE相關(guān)的網(wǎng)元

而采用容器之后预烙,很可能只需要一臺(tái)服務(wù)器墨微,創(chuàng)建十幾個(gè)容器,用不同的容器扁掸,來分別運(yùn)行不同網(wǎng)元的服務(wù)程序翘县。

image

這些容器,隨時(shí)可以創(chuàng)建谴分,也可以隨時(shí)銷毀锈麸。還能夠在不停機(jī)的情況下,隨意變大牺蹄,隨意變小忘伞,隨意變強(qiáng),隨意變?nèi)跎忱迹谛阅芎凸闹g動(dòng)態(tài)平衡氓奈。

簡(jiǎn)直完美!

5G時(shí)代鼎天,核心網(wǎng)采用微服務(wù)架構(gòu)舀奶,也是和容器完美搭配——單體式架構(gòu)(Monolithic)變成微服務(wù)架構(gòu)(Microservices),相當(dāng)于一個(gè)全能型變成N個(gè)專能型斋射。每個(gè)專能型育勺,分配給一個(gè)隔離的容器但荤,賦予了最大程度的靈活。

image

精細(xì)化分工

按照這樣的發(fā)展趨勢(shì)涧至,在移動(dòng)通信系統(tǒng)中纱兑,除了天線,剩下的部分都有可能虛擬化化借。核心網(wǎng)是第一個(gè)潜慎,但不是最后一個(gè)。虛擬化之后的核心網(wǎng)蓖康,與其說屬于通信铐炫,實(shí)際上更應(yīng)該歸為IT。核心網(wǎng)的功能蒜焊,只是容器中普通一個(gè)軟件功能而已倒信。

至于說在座的各位核心網(wǎng)工程師,恭喜你們泳梆,馬上就要成功轉(zhuǎn)型啦鳖悠!

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市优妙,隨后出現(xiàn)的幾起案子乘综,更是在濱河造成了極大的恐慌,老刑警劉巖套硼,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卡辰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡邪意,警方通過查閱死者的電腦和手機(jī)九妈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雾鬼,“玉大人萌朱,你說我怎么就攤上這事〔卟耍” “怎么了晶疼?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)做入。 經(jīng)常有香客問我冒晰,道長(zhǎng)同衣,這世上最難降的妖魔是什么竟块? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮耐齐,結(jié)果婚禮上浪秘,老公的妹妹穿的比我還像新娘蒋情。我一直安慰自己,他們只是感情好耸携,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布棵癣。 她就那樣靜靜地躺著,像睡著了一般夺衍。 火紅的嫁衣襯著肌膚如雪狈谊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天沟沙,我揣著相機(jī)與錄音河劝,去河邊找鬼。 笑死矛紫,一個(gè)胖子當(dāng)著我的面吹牛赎瞎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播颊咬,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼务甥,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了喳篇?” 一聲冷哼從身側(cè)響起敞临,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎麸澜,沒想到半個(gè)月后哟绊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡痰憎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年票髓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铣耘。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡洽沟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蜗细,到底是詐尸還是另有隱情裆操,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布炉媒,位于F島的核電站踪区,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏吊骤。R本人自食惡果不足惜缎岗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望白粉。 院中可真熱鬧传泊,春花似錦鼠渺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至溪椎,卻和暖如春普舆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背校读。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工奔害, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人地熄。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓华临,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親端考。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雅潭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354