|
目錄結(jié)構(gòu) Docker無(wú)疑是今年以來(lái)最火的開(kāi)源技術(shù),Docker現(xiàn)在已經(jīng)成為目前IT界創(chuàng)業(yè)者和創(chuàng)新者的寵兒。無(wú)論谷歌、微軟、亞馬遜、IBM等科技廠商都積極支持Docker技術(shù),Docker雖然入門(mén)和使用起來(lái)非常簡(jiǎn)單,但整個(gè)生態(tài)系統(tǒng)還是挺龐大的,而且其底層技術(shù)也都很復(fù)雜,目前基于Docker技術(shù)的項(xiàng)目如雨后春筍般出現(xiàn),今天,筆者總結(jié)了目前正在快速演進(jìn)的Docker相關(guān)技術(shù),分享給大家。 Kubernetes在今年夏天Dockercon 上Google基礎(chǔ)設(shè)施副總裁Eric Brewer宣布Kubernetes,建于Docker之上的Kubernetes可以構(gòu)建一個(gè)容器的調(diào)度服務(wù),其目的是讓用戶透過(guò)Kubernetes集群來(lái)進(jìn)行云端容器集群的管理,而無(wú)需用戶進(jìn)行復(fù)雜的設(shè)置工作。系統(tǒng)會(huì)自動(dòng)選取合適的工作節(jié)點(diǎn)來(lái)執(zhí)行具體的容器集群調(diào)度處理工作。其核心概念是Container Pod(容器倉(cāng))。 Docker Pods跟Kubernetes密切相關(guān),Eric Brewer也談到了容器并且引入了“ pods ”的概念。這是一個(gè)在Kubernetes里面非常關(guān)鍵的概念。他說(shuō):“在谷歌,我們很少部署一個(gè)容器,相反,他們是將容器組合在一起?!?/p> 他指出Docker容器需要一個(gè)內(nèi)部和外部端口的常量映射,這是一個(gè)需要管理、存儲(chǔ)和查詢的復(fù)雜附加層——甚至在作為單一機(jī)組部署的pod容器之間。因此,在Google,他們確保每個(gè)容器的pod都有自己的IP地址。這意味著使用的端口無(wú)論是內(nèi)部和外部都是一樣的。這樣做去掉了管理端口的復(fù)雜附加層?,F(xiàn)在,找到pods運(yùn)行一個(gè)特定的服務(wù),你只需要這些pods的IP地址列表。谷歌計(jì)算引擎是目前唯一的云基礎(chǔ)設(shè)施服務(wù),幫助分配一個(gè)IP子網(wǎng)給虛擬機(jī)——因此在這里面每個(gè)Docker pod只有一個(gè)IP。 WeaveWeave是由Zett.io公司開(kāi)發(fā)的,它能夠創(chuàng)建一個(gè)虛擬網(wǎng)絡(luò)來(lái)連接部署在多臺(tái)主機(jī)上的Docker容器。通過(guò)Weave所有的容器就像被接入了同一個(gè)網(wǎng)絡(luò)交換機(jī),那些使用網(wǎng)絡(luò)的應(yīng)用程序不必去配置端口映射和鏈接等信息。外部設(shè)備能夠訪問(wèn)Weave網(wǎng)絡(luò)上的應(yīng)用程序容器所提供的服務(wù),同時(shí)已有的內(nèi)部系統(tǒng)也能夠暴露到應(yīng)用程序容器上。Weave能夠穿透防火墻并運(yùn)行在部分連接的網(wǎng)絡(luò)上。另外,Weave的通信支持加密,所以用戶可以從一個(gè)不受信任的網(wǎng)絡(luò)連接到主機(jī)。 CoreOSCoreOS是一種新的、架構(gòu)體系重新設(shè)計(jì)的Linux發(fā)行版,可以運(yùn)行在既有的硬件或者云上。CoreOS使用systemd和fleet來(lái)對(duì)容器進(jìn)行管理,通過(guò) etcd進(jìn)行服務(wù)發(fā)現(xiàn)和配置信息共享。CoreOS目前風(fēng)頭正勁,目前已經(jīng)獲得融資并宣布收購(gòu)私有Docker倉(cāng)庫(kù)服務(wù)商Quay.io,進(jìn)軍企業(yè) 級(jí)的Registry。另外,CoreOS的etcd等組件也獲得了社區(qū)的認(rèn)可,并得到了大規(guī)模使用。CoreOS已經(jīng)發(fā)布首個(gè)穩(wěn)定版本,目前主流的云服 務(wù)商都提供了對(duì)CoreOS的支持。 Flannel它是由CoreOS團(tuán)隊(duì)針對(duì)Kubernetes設(shè)計(jì)的一個(gè)覆蓋網(wǎng)絡(luò)工具,其目的在于幫助每一個(gè)使用 Kuberentes 的 CoreOS 主機(jī)擁有一個(gè)完整的子網(wǎng)。Flannel之前的名字是 Rudder,Kubernetes 會(huì)為每一個(gè) POD 分配一個(gè)獨(dú)立的 IP 地址,這樣便于同一個(gè) POD 中的Containers 彼此連接,而之前的 CoreOS 并不具備這種能力。為了解決這一問(wèn)題,F(xiàn)lannel 通過(guò)在集群中創(chuàng)建一個(gè)覆蓋網(wǎng)絡(luò)為主機(jī)設(shè)定一個(gè)子網(wǎng)。 Docker For Windows最近,微軟加入了Docker的潮流,說(shuō)他們打算為Windows建立一個(gè)集裝箱化解決方案并在之上提供一個(gè)與Docker兼容的API。這的確意味著已經(jīng)有一些可用的工具構(gòu)建在Docker API層上。 AtomicProject Atomic 是最近才發(fā)布的一個(gè)項(xiàng)目,它也是一個(gè)瘦身版的 Linux,只包含 systemd/geard /rpm-OSTree 以及 Docker 組件,專門(mén)用來(lái)部署和管理 Docker 容器。它能在接近硬件裸機(jī)級(jí)別上高性能的運(yùn)行大量容器,而且它還是基于 SELinux 的,在安全上也有保障。 Cloud Foundry DiegoActiveState 的重點(diǎn)是開(kāi)源 PaaS 項(xiàng)目。我們認(rèn)為由Diego項(xiàng)目引起的 Docker 集成正促使生態(tài)系統(tǒng)往正確方向上前進(jìn)。像 Kubernetes 一樣,Diego 是一個(gè)調(diào)度程序,同時(shí),它主要與 Cloud Foundry 配合運(yùn)行。我們也看到 Windows .NET 從 Uhuru 那里集成 Diego,對(duì) Windows 來(lái)說(shuō) Docker 已成為現(xiàn)實(shí),我相信我們將看到這些技術(shù)融合。 FlynnFlynn是一個(gè)使用Go語(yǔ)言編寫(xiě)的開(kāi)源PaaS平臺(tái),F(xiàn)lynn使用模塊化的設(shè)計(jì),任何一個(gè)模塊都可以獨(dú)立的進(jìn)行修改、升級(jí)和替換。Flynn的目標(biāo)是簡(jiǎn)化分布式環(huán)境中應(yīng)用的部署和維護(hù),通過(guò)使用 git push命令,F(xiàn)lynn就可以將應(yīng)用部署到Docker,從而省去了復(fù)雜的配置和操作。Flynn目前仍在開(kāi)發(fā)中,尚未發(fā)布穩(wěn)定版,但已經(jīng)獲得了很多公司的資助,它被稱為是下一代的開(kāi)源PaaS平臺(tái)。 FigFig是一個(gè)基于Docker的用于快速搭建開(kāi)發(fā)環(huán)境的工具,目前Fig團(tuán)隊(duì)已經(jīng)加入Docker公司。Fig通過(guò)一個(gè)配置文件來(lái)管理多個(gè)Docker容 器,非常適合組合使用多個(gè)容器進(jìn)行開(kāi)發(fā)的場(chǎng)景。Fig可以和Docker一起來(lái)構(gòu)建基于Docker的復(fù)雜應(yīng)用,CoreOS的功能強(qiáng)大但是配置比較復(fù) 雜,而Fig相對(duì)而言比較簡(jiǎn)單,但是很難在多臺(tái)服務(wù)器上做擴(kuò)展,從Docker官方收購(gòu)Fig也可以看到該項(xiàng)目的重要性。 via CSDN |
|
|
來(lái)自: 看見(jiàn)就非常 > 《tip》