十大正在快速演進的Docker專案

edithfang發表於2014-11-19
Docker無疑是今年以來最火的開源技術,Docker現在已經成為目前IT界創業者和創新者的寵兒。無論谷歌、微軟、亞馬遜、IBM等科技廠商都積極支援Docker技術,Docker雖然入門和使用起來非常簡單,但整個生態系統還是挺龐大的,而且其底層技術也都很複雜,目前基於Docker技術的專案如雨後春筍般出現,今天,筆者總結了目前正在快速演進的Docker相關技術,分享給大家。

Kubernetes

在今年夏天Dockercon 上Google基礎設施副總裁Eric Brewer宣佈Kubernetes,建於Docker之上的Kubernetes可以構建一個容器的排程服務,其目的是讓使用者透過Kubernetes叢集來進行雲端容器叢集的管理,而無需使用者進行復雜的設定工作。系統會自動選取合適的工作節點來執行具體的容器叢集排程處理工作。其核心概念是Container Pod(容器倉)。

Docker Pods

跟Kubernetes密切相關,Eric Brewer也談到了容器並且引入了“ pods ”的概念。這是一個在Kubernetes裡面非常關鍵的概念。他說:“在谷歌,我們很少部署一個容器,相反,他們是將容器組合在一起。”

他指出Docker容器需要一個內部和外部埠的常量對映,這是一個需要管理、儲存和查詢的複雜附加層——甚至在作為單一機組部署的pod容器之間。因此,在Google,他們確保每個容器的pod都有自己的IP地址。這意味著使用的埠無論是內部和外部都是一樣的。這樣做去掉了管理埠的複雜附加層。現在,找到pods執行一個特定的服務,你只需要這些pods的IP地址列表。谷歌計算引擎是目前唯一的雲基礎設施服務,幫助分配一個IP子網給虛擬機器——因此在這裡面每個Docker pod只有一個IP。

Weave

Weave是由Zett.io公司開發的,它能夠建立一個虛擬網路來連線部署在多臺主機上的Docker容器。通過Weave所有的容器就像被接入了同一個網路交換機,那些使用網路的應用程式不必去配置埠對映和連結等資訊。外部裝置能夠訪問Weave網路上的應用程式容器所提供的服務,同時已有的內部系統也能夠暴露到應用程式容器上。Weave能夠穿透防火牆並執行在部分連線的網路上。另外,Weave的通訊支援加密,所以使用者可以從一個不受信任的網路連線到主機。

CoreOS

CoreOS是一種新的、架構體系重新設計的Linux發行版,可以執行在既有的硬體或者雲上。CoreOS使用systemd和fleet來對容器進行管理,通過 etcd進行服務發現和配置資訊共享。CoreOS目前風頭正勁,目前已經獲得融資並宣佈收購私有Docker倉庫服務商Quay.io,進軍企業 級的Registry。另外,CoreOS的etcd等元件也獲得了社群的認可,並得到了大規模使用。CoreOS已經發布首個穩定版本,目前主流的雲服 務商都提供了對CoreOS的支援。

Flannel

它是由CoreOS團隊針對Kubernetes設計的一個覆蓋網路工具,其目的在於幫助每一個使用 Kuberentes 的 CoreOS 主機擁有一個完整的子網。Flannel之前的名字是 Rudder,Kubernetes 會為每一個 POD 分配一個獨立的 IP 地址,這樣便於同一個 POD 中的Containers 彼此連線,而之前的 CoreOS 並不具備這種能力。為了解決這一問題,Flannel 通過在叢集中建立一個覆蓋網路為主機設定一個子網。

Docker For Windows

最近,微軟加入了Docker的潮流,說他們打算為Windows建立一個集裝箱化解決方案並在之上提供一個與Docker相容的API。這的確意味著已經有一些可用的工具構建在Docker API層上。

Atomic

Project Atomic是最近才釋出的一個專案,它也是一個瘦身版的Linux,只包含systemd/geard /rpm-OSTree以及Docker元件,專門用來部署和管理Docker容器。它能在接近硬體裸機級別上高效能的執行大量容器,而且它還是基於SELinux的,在安全上也有保障。

Cloud Foundry Diego

ActiveState的重點是開源PaaS專案。我們認為由Diego專案引起的Docker整合正促使生態系統往正確方向上前進。像Kubernetes一樣,Diego是一個排程程式,同時,它主要與Cloud Foundry配合執行。我們也看到Windows .NET從Uhuru那裡整合Diego,對Windows來說Docker已成為現實,我相信我們將看到這些技術融合。

Flynn

Flynn是一個使用Go語言編寫的開源PaaS平臺,Flynn使用模組化的設計,任何一個模組都可以獨立的進行修改、升級和替換。Flynn的目標是簡化分散式環境中應用的部署和維護,通過使用 git push命令,Flynn就可以將應用部署到Docker,從而省去了複雜的配置和操作。Flynn目前仍在開發中,尚未釋出穩定版,但已經獲得了很多公司的資助,它被稱為是下一代的開源PaaS平臺。

Fig

Fig是一個基於Docker的用於快速搭建開發環境的工具,目前Fig團隊已經加入Docker公司。Fig通過一個配置檔案來管理多個Docker容 器,非常適合組合使用多個容器進行開發的場景。Fig可以和Docker一起來構建基於Docker的複雜應用,CoreOS的功能強大但是配置比較復 雜,而Fig相對而言比較簡單,但是很難在多臺伺服器上做擴充套件,從Docker官方收購Fig也可以看到該專案的重要性。

參考譯文:5 Evolving Docker Technologies 
相關閱讀
評論(1)

相關文章