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