誰是最棒的容器作業系統?

譯者: gx老苗發表於2015-07-07

對於任何在過去兩年一直追隨者容器(container)社群逐漸繁榮的人來說( Solomon Hykes 在  PyCon 大會上做了有名的五分鐘報告之後),你會發現越來越多的公司或專案不斷湧現,提供許多創新方式來管理你的應用。

有許多專案圍繞者管理(management),網路(network), 儲存(storage), 日誌(logging),監控(monitoring), 及更多 (參考這篇精妙的 ecosystem 之腦圖 )。 然而,我認為,最流行的專案應是為你的或將有的應用環境構建基礎架構:容器作業系統(container OSes)。

參加容器會議時,與人交流,總是聽到一個問題是,“哪個作業系統最適於執行容器?” 接著就是問, “是 CoreOS? RedHat 怎麼樣? 我也聽到過有個叫 RancherOS 的?”

我喜歡這些爭論;這就類似於“哪個 Hypervisor 最好?” 當然,答案總是“這得看情況。” 我仍然打算試著就當前(截稿時間為止)最流行的容器作業系統,解釋關鍵利益點和差別。

CoreOS

這是容器作業系統的代表。 CoreOS 側重於大規模部署,主要面向企業,良好的社群支援(數百貢獻者,500+ IRC 使用者, 在#coreos on FreeNode)。它整合了許多由 CoreOS專案組開發的令人感興趣工具,如etcd, fleet,和flannel。這些工具能助你快速搭建起CoreOS叢集。同時,他們也能幫助你更深入的理解服務發現,資源規劃和容器網路的背後概念。

2014年12月, the CoreOS專案組釋出了另外一個容器執行時引擎型別, rkt。它是回應專案組中提到的Docker將從原始平臺移出的宣告,他們想觀察社群的反應是否相同。CoreOS仍將同時支援Docker和rkt兩種容器,所以,不用擔心未來一段時間會出現功能問題。

CoreOS專案組也已經聯手Google (Google風險基金是CoreOS投資者之一) ,也建立了Tectonic(構建平臺), 很有趣的以簡單有效地執行CoreOS+ Kubernetes平臺的方式。 Tectonic 是商業Kubernetes平臺,如果你運維大規模,需要高於社群的技術支援,它就很重要。

RancherOS

Rancher 將容器作業系統的目標更進一步,在RancherOS中,所有都是一個 Docker容器。它們執行一個系統級別的Docker,PID=1,然後啟動一個使用者級別的Docker,可以執行所有的使用者容器。

聽起來很瘋狂,但作業系統本來就不該做其他事,只做有必要的事。Rancher剝離所有不必要的服務,使得作業系統很輕量級。ISO安裝包只有22MB。

更令人感興趣的是可以使用Rancher系統,在作業系統的上層新增所有服務。在你考慮在你的容器生產環境增加必要的服務時,你通常需要如下功能,如安全,易聯網,服務發現,負載均衡,監控和排程。 Rancher在RancherOS上層新增所有這些,甚至更多。 這是一個綜合系統,我強烈推薦你去看看closer look.

Snappy Ubuntu Core

這個有趣的專案是Mark Shuttleworth去年釋出的 。他認為當時可用的容器作業系統比較臃腫。

 Snappy Ubuntu Core OS 提供了一種新型別的應用管理器 (“snappy”) ,專注於執行apps和容器。某些人或許會堅持認為這不是容器作業系統改做的事情,但是,這或許也是一個好的過度性作業系統。它為那些沒有時間學習複雜的 etcd, Consul, fleet, Kubernetes,及所有其他工具的人,提供了研究明白(容器作業系統)各種事情的一個好的學習機會。

系統基礎是 “Ubuntu Core.” 在它上層,你的apps活動在只讀映象中 (類似容器), apps支援事務性更新。這是個大進步— 你不再需要整改應用去部署新版本,你僅需要下載你修改的部分就可以了。

Snappy Ubuntu Core OS不算一個純粹的容器作業系統,不過,它具備一些吸引人的方面。生產環境中執行Ubuntu的人,或者對apps和容器都感興趣的人,一定會關注它。

RedHat Project Atomic

此釋出版基於CentOS, Fedora, and RHEL伺服器作業系統的upstream RPMs(Redhat安裝包), 支援RedHat稱為原子的更新和回滾。這取決於你,親愛的讀者朋友,選擇哪個釋出版本作為你管理你的伺服器的基礎。

作業系統內建了許多功能,Docker, flannel (CoreOS專案組出品), Kubernetes, 事務作業系統更新工具rpm-ostree,它總是儲存上一個版本(類似CoreOS)和course systemd可用(供回滾)。

Project Atomic 採用SELinux嘗試加固容器,管理對容器的讀寫訪問。我認為,使用已有的可信的技術來構建,主意很不錯。我猜,很快就會看到RedHat 在該專案上更多動作,不過,目前為止,好訊息還很少 。

Mesosphere DCOS

Mesosphere DCOS專案常常會被誤認為是Apache Mesos (命名問題?)。不在意這個的話,它提供了一個非常健壯和創造性的方式來考慮如何管理容器。

它利用開源專案如Apache Mesos, Marathon, Zookeeper,和許多其他服務,以清晰的方式將它們整合一道一起,另外還在其上新增了企業特性。DCOS product還是GA版本,提供兩個版本:社群版 (免費) ,面向 AWS工作量(級別);企業版,適用其他所有場合。

Mesosphere DCOS最讓人感興趣的是它不只侷限與容器管理。它畢竟基於Mesos構建, 應該可以做更多的事。部署Hadoop叢集怎麼樣?或者大規模Cassandra叢集? Mesosphere統統內建(支援),我相信這是它與其他容器作業系統的關鍵性差別之一,這將使得Mesosphere DCOS很成功。

VMware Photon

4月釋出的VMware Photon 是一款新的容器操作性系統,是VMware開源努力的第一步。VMware目標明確定位在應用大規模部署 ,正如你在它們的其他專案 Lightwave中看到的,提供身份鑑權服務,包括大規模分散式基礎構架、應用和容器的認證和授權。不久會更多,我相信。

總結

明顯,上述專案還有很多工作要做,它們每一個都會將自己的東西增加到這個領域(容器作業系統)。我希望本次對比有助於你選一個你感興趣的專案,探索研究不同的容器操作和管理系統的可能性。祝你好運!

相關文章