CoreOS,一款最新的 Linux 發行版本,支援自動升級核心軟體,提供各叢集間配置的完全控制。
關於使用哪個版本的 Linux 伺服器系統的爭論,常常是以這樣的話題開始的:
你是喜歡基於 Red Hat Enterprise Linux (RHEL) 的 CentOS 或者 Fedora,還是基於 Debian 的 Ubuntu,抑或 SUSE 呢?
但是現在,一款名叫 CoreOS 容器 Linux 的 Linux 發行版加入了這場“聖戰”。這個最近在 Linode 伺服器上提供的 CoreOS,和它的老前輩比起來,它使用了完全不同的實現方法。
你可能會感到不解,這裡有這麼多成熟的 Linux 發行版本,為什麼要選擇用 CoreOS ?借用 Linux 主幹分支的維護者,也是 CoreOS 顧問的 Greg Kroah-Hartman 先生的一句話:
CoreOS 可以控制發行版的升級(基於 ChromeOS 程式碼),並結合了 Docker 和潛在的核對/修復功能,這意味著不用停止或者重啟你的相關程式,就可以線上升級。測試版本已經支援此功能,這是史無前例的。
當 Greg Kroah-Hartman 做出這段評價時,CoreOS 還處於 α 測試階段,當時也許就是在矽谷的一個車庫當中,開發團隊正在緊鑼密鼓地開發此產品,但 CoreOS 不像最開始的蘋果或者惠普,其在過去的四年當中一直穩步發展。
當我參加在舊金山舉辦的 2017 CoreOS 大會時,CoreOS 已經支援谷歌雲、IBM、AWS 和微軟的相關服務。現在有超過 1000 位開發人員參與到這個專案中,併為能夠成為這個偉大產品的一員而感到高興。
究其原因,CoreOS 從開始就是為容器而設計的輕量級 Linux 發行版,其起初是作為一個 Docker 平臺,隨著時間的推移, CoreOS 在容器方面走出了自己的道路,除了 Docker 之外,它也支援它自己的容器 rkt (讀作 rocket )。
不像大多數其他的 Linux 發行版,CoreOS 沒有包管理器,取而代之的是通過 Google ChromeOS 的頁面自動進行軟體升級,這樣能提高在叢集上執行的機器/容器的安全性和可靠性。不用通過系統管理員的干涉,作業系統升級元件和安全補丁可以定期推送到 CoreOS 容器。
你可以通過 CoreUpdate 和它的 Web 介面上來修改推送週期,這樣你就可以控制你的機器何時更新,以及更新以多快的速度滾動分發到你的叢集上。
CoreOS 通過一種叫做 etcd 的分散式配置服務來進行升級,etcd 是一種基於 YAML 的開源的分散式雜湊儲存系統,它可以為 Linux 叢集容器提供配置共享和服務發現等功能。
此服務執行在叢集上的每一臺伺服器上,當其中一臺伺服器需要下線升級時,它會發起領袖選舉,以便伺服器更新時整個Linux 系統和容器化的應用可以繼續執行。
對於叢集管理,CoreOS 之前採用的是 fleet 方法,這將 etcd 和 systemd 結合到分散式初始化系統中。雖然 fleet 仍然在使用,但 CoreOS 已經將 etcd 加入到 Kubernetes 容器編排系統構成了一個更加強有力的管理工具。
CoreOS 也可以讓你定製其它的作業系統相關規範,比如用 cloud-config 的方式管理網路配置、使用者賬號和 systemd 單元等。
綜上所述,CoreOS 可以不斷地自行升級到最新版本,能讓你獲得從單獨系統到叢集等各種場景的完全控制。如 CoreOS 宣稱的,你再也不用為了改變一個單獨的配置而在每一臺機器上執行 Chef 了。
假如說你想進一步的擴充套件你的 DevOps 控制,CoreOS 能夠輕鬆地幫助你部署 Kubernetes。
CoreOS 從一開始就是構建來易於部署、管理和執行容器的。當然,其它的 Linux 發行版,比如 RedHat 家族的原子專案也可以達到類似的效果,但是對於那些發行版而言是以附加元件的方式出現的,而 CoreOS 從它誕生的第一天就是為容器而設計的。
當前容器和 Docker 已經逐漸成為商業系統的主流,如果在可預見的未來中你要在工作中使用容器,你應該考慮下 CoreOS,不管你的系統是在裸機硬體上、虛擬機器還是雲上。
如果有任何關於 CoreOS 的觀點或者問題,還請在評論欄中留言。如果你覺得這篇部落格還算有用的話,還請分享一下~
關於博主:Steven J. Vaughan-Nichols 是一位經驗豐富的 IT 記者,許多網站中都刊登有他的文章,包括 ZDNet.com、PC Magazine、InfoWorld、ComputerWorld、Linux Today 和 eWEEK 等。他擁有豐富的 IT 知識 – 而且他曾參加過智力競賽節目 Jeopardy !他的相關觀點都是自身思考的結果,並不代表 Linode 公司,我們對他做出的貢獻致以最真誠的感謝。如果想知道他更多的資訊,可以關注他的 Twitter @sjvn。