5 個(gè)發(fā)展中的 Docker 技術(shù)
自從大約18個(gè)月前Docker發(fā)布后,此領(lǐng)域的新技術(shù)已呈井噴之態(tài)。盡管下面的列表很長,我在此還是要簡述下5項(xiàng)Docker相關(guān)、并且不斷發(fā)展的技術(shù),這些技術(shù)正在推進(jìn)云技術(shù)的發(fā)展方向。
1) Kubernetes
今夏在 Dockercon 上,Google的基礎(chǔ)設(shè)施VP Eric Brewer,在谷歌發(fā)布了 Kubernetes。Kubernets提供了一種方式來組織機(jī)器集群上的Docker容器集。 本質(zhì)上,它是個(gè)調(diào)度器,在即使有機(jī)器崩潰,也能保證容器的持續(xù)運(yùn)行。 我們看到了Kubernets正被迅速采用,并吸引了很多人的興趣,這些都超越了Kubernets僅僅是Google的Docker相關(guān)云技術(shù)這個(gè)傳聞。我們需要對(duì)運(yùn)營層次(Operations level)上做組織,而Kubernets恰好處理得很好。Kubernets可以創(chuàng)建描述Docker鏡像集的配置清單(manifest),并把配置清單放到集群中。這樣配置清單可以自動(dòng)部署、水平伸縮這些容器。Kubernets同時(shí)提供了一種定義”service“的方式,service可以被運(yùn)行在集群上的其他應(yīng)用使用。
2) Docker Pods
除了Kubernetes,Eric Brewer還談了容器并引入了"pods"這一概念。pods是Kubernetes的一個(gè)核心概念。他說,”在Google我們很少只部署單個(gè)容器“。相反,他們把容器組合在一起。例如,一個(gè)應(yīng)用進(jìn)程通常還包含多個(gè)輔助進(jìn)程,比如logging,還有應(yīng)用本身不關(guān)心的其他任務(wù)。
他同時(shí)指出Docker容器還需要解決內(nèi)部及外部端口的映射,即Docker容器內(nèi)部進(jìn)程可見的與外部可見的映射。這就多出了一層需要被管理、存儲(chǔ)和查詢的復(fù)雜度(complexity),即使被部署為一個(gè)單元的pod內(nèi)部的容器間也存在。因此,Google給每個(gè)pod內(nèi)的一族容器共享一個(gè)IP地址。這意味著容器的內(nèi)外端口都是相同的。端口可以在設(shè)計(jì)或者構(gòu)建時(shí)引入。這就免了管理端口這層復(fù)雜度?,F(xiàn)在要查找運(yùn)行某些特定服務(wù)(service)的pod,只需要這些pod的IP地址列表就好了。
Google計(jì)算引擎(Google Compute Engine)是目前***一個(gè)把一個(gè)IP子網(wǎng)分配給一個(gè)虛擬機(jī)的云基礎(chǔ)設(shè)計(jì)服務(wù)提供者,因此它的每個(gè)Docker pod都有自己的IP。
3) Flannel
CoreOS,除了積極參與了Kubernetes,還給出了Flannel (之前叫做Rudder)來嘗試解決這個(gè)端口映射問題。 Flannel在真實(shí)的網(wǎng)絡(luò)之上層疊了一層網(wǎng)絡(luò),這層網(wǎng)絡(luò)會(huì)把一個(gè)IP子網(wǎng)分配給一臺(tái)機(jī)器。這樣做會(huì)有很大的性能開銷,但是他們希望隨著Flannel的發(fā)展,這些開銷能被改善掉。
4) Docker For Windows
最近,Microsoft也加入了Docker行列,宣稱他們打算為Windows創(chuàng)建一個(gè)容器化的解決方案,并提供一組兼容Docker的API。 盡管Linux和Windows容器的Docker鏡像不太可能可移植,但意味著在Docker API層之上構(gòu)建的工具可以在這些操作系統(tǒng)間重用。
大企業(yè)在Windows上進(jìn)行了大筆投資,所以這個(gè)聲明對(duì)想采用Docker的企業(yè)IT部門是個(gè)重大勝利。
5) Cloud Foundry Diego
Cloud Foundry開源PaaS項(xiàng)目是ActiveState的主要焦點(diǎn)。VMware發(fā)布Cloud Foundry后,我們是***個(gè)采用者。 當(dāng)我們的解決方案Stackato在底層采用了Docker后,我們認(rèn)為源于Diego項(xiàng)目的Docker集成正把此生態(tài)系統(tǒng)下的其余部分帶上正軌。
Diego 像Kubernetes一樣,也是個(gè)調(diào)度器;但是與Kubernetes不同的是,它的運(yùn)行環(huán)境是不確定的,而且它主要與Cloud Foundry一起工作。Docker只是Diego的一個(gè)集成,但卻是IBM從事Diego的開發(fā)者的***關(guān)注點(diǎn)。我們也看到了Diego的Windows .NET集成,如來自Uhuru的版本,當(dāng)Windows的Docker成為現(xiàn)實(shí)后,我確信這些技術(shù)將會(huì)融合。 Docker 的PaaS集成對(duì)Docker的未來相當(dāng)重要。我們看到開發(fā)者成為Docker出現(xiàn)的主要推動(dòng)力。開發(fā)者描述應(yīng)用的運(yùn)行環(huán)境的能力愈加強(qiáng)大。另外,每個(gè)人都可以選擇一個(gè)Docker化的應(yīng)用,并馬上運(yùn)行起來,認(rèn)識(shí)到這個(gè)事實(shí),已經(jīng)填補(bǔ)了解決方案不存在的空白。 PaaS這個(gè)擴(kuò)展更關(guān)注開發(fā)者,盡管其他技術(shù)正把Docker從開發(fā)者轉(zhuǎn)給運(yùn)營團(tuán)隊(duì)(Operations team)。
結(jié)論
這篇文章只觸及Docker生態(tài)下大量技術(shù)的冰山一角?,F(xiàn)在Github上有18265個(gè)項(xiàng)目引用了"Docker"這個(gè)詞。幾乎每周都有新方案發(fā)布,而現(xiàn)存的技術(shù)方案每次迭代都是在或者屈服或者適應(yīng)新形勢(shì)。Docker生態(tài)本身也是在快速發(fā)展。
原文出自:http://www.oschina.net/translate/5-evolving-docker-technologies