国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
漫步云端:CoreOS實踐指南(一)

【編者按】Docker和CoreOS都是硅谷創(chuàng)業(yè)孵化器的優(yōu)秀“畢業(yè)生”,據(jù)說兩家老板的私交很好,Docker做容器引擎,CoreOS做容器管理,合作得非常愉快,只是隨著Rocket的發(fā)布逐步“分道揚(yáng)鑣”。雖然Docker和CoreOS都在求“簡”,但是Docker的“簡”是力求用戶能達(dá)到最簡便地使用,CoreOS的“簡”是追求極致的輕量化,究竟哪個將是Container技術(shù)的未來,其實也很難說。今天開始,來自ThoughtWorks的軟件工程師林帆將帶來“漫步云端:CoreOS實踐指南”系列文章,帶大家了解CoreOS的精華和推薦的實踐方法。本文為基礎(chǔ)第一篇:CoreOS俯瞰。



作者簡介:

林帆,生在80后尾巴的IT攻城獅,ThoughtWorks成都辦公室CloudOps小組成員,平時喜歡在業(yè)余時間研究DevOps相關(guān)的應(yīng)用,目前在備考AWS認(rèn)證和推廣Docker相關(guān)技術(shù)。


引言

相信許多人開始了解CoreOS是從2014年7月底的一則新聞:內(nèi)置Docker容器的操作系統(tǒng)CoerOS發(fā)布首個正式穩(wěn)定版本。在那之后的半年里CoreOS一路高歌猛進(jìn)。8月中旬CoreOS收購私有Docker倉庫服務(wù)商Quay.io,9月初DigitalOcean與CoreOS達(dá)成戰(zhàn)略合作,9月底微軟Azure云服務(wù)開始支持CoreOS系統(tǒng)鏡像,10月中旬英國的知名云服務(wù)商BrightBox也加入支持CoreOS系統(tǒng)鏡像的陣營,加上此前已經(jīng)支持CoreOS鏡像的全球主流云服務(wù)提供商,包括亞馬遜的AWS、云計算巨頭Rackspace和Google Computer Engine,CoreOS的名字已經(jīng)無所不在。

作為一個發(fā)布僅僅一年有余的操作系統(tǒng)(首個發(fā)布版本在2013年3月),CoreOS在云計算相關(guān)的開源社區(qū)和大規(guī)模服務(wù)器集群的領(lǐng)域早已嶄露頭角,直接與主流Linux服務(wù)器操作系統(tǒng)同臺競爭。至于后來RedHat祭出內(nèi)建容器管理服務(wù)的系統(tǒng)Atomic,以及Canonical剛剛推出的Ubuntu Core,逐步掀起ContainerOps的大潮,一個全新的集群運維時代正在開啟。而走在風(fēng)頭浪尖的CoreOS正是這股潮流的先驅(qū)者,它的出現(xiàn)遠(yuǎn)遠(yuǎn)不只是“又一個Linux發(fā)行版”,而是一個時代理念的顛覆。

這篇系列教程將從最基本的概念開始,順著大規(guī)模集群管理和應(yīng)用容器化這兩條主線帶大家了解 CoreOS 系統(tǒng)的獨到之處,使得沒有接觸過這個系統(tǒng)的用戶也能夠快速的理解其中功能的精華和推薦的實踐方法。


CoreOS 是什么

簡單的說,它是一種基于 Chrome OS 再定制的輕量級 Linux 發(fā)行版本。

作為一個操作系統(tǒng),CoreOS 采用了高度精簡的系統(tǒng)內(nèi)核及外圍定制,將許多原本需要復(fù)雜人工操作或者第三方軟件支持的功能在操作系統(tǒng)級別進(jìn)行了實現(xiàn),同時剔除了其他對于服務(wù)器系統(tǒng)非核心的軟件,比如GUI和包管理器。

特別值得一提的是 CoreOS 對包管理器的態(tài)度和 Docker 的原生支持。這是許多習(xí)慣了傳統(tǒng) Linux 管理方式的用戶在剛接觸 CoreOS 時,最不習(xí)慣的地方,因為 CoreOS 沒有提供現(xiàn)成的包管理工具。一個典型的困惑是:在 CoreOS 安裝軟件太不方便了。事實上 CoreOS 并不鼓勵用戶將各種應(yīng)用軟件直接安裝在操作系統(tǒng)之上,而是提倡將所有服務(wù)運行在單獨的應(yīng)用容器中,由應(yīng)用容器提供應(yīng)用所需要的基礎(chǔ)功能環(huán)境。這種做法將操作系統(tǒng)和應(yīng)用程序的職責(zé)做了更徹底的分離,降低操作系統(tǒng)和應(yīng)用程序的耦合度,使運行這些服務(wù)器的公司可以更快速、更廉價地更新自己的線上業(yè)務(wù)。

CoreOS 行走在云端

毫不夸張的說,CoreOS 是為云而生的操作系統(tǒng)。

這個“為云而生”包含兩層含義:

  1. 首先,CoreOS 的設(shè)計立足點充分的考慮了云端生態(tài)系統(tǒng)的分布式部署、大規(guī)模伸縮擴(kuò)展(Scaling)需求,我們將會再后面的內(nèi)容中充分體會到這一點;

  2. 另一方面,CoreOS 對特定的云環(huán)境也有相當(dāng)?shù)囊蕾嚕鋯优渲梅?wù) cloud-init 是需要高度定制化的,CoreOS 官方提供了基于Vagrant、VMWare、AZure、AWS、RackSpace 等虛擬機(jī)或云服務(wù)提供商的定制版本,因此本地直接通過 ISO 安裝的 CoreOS 則無法獲得 cloud-init 相關(guān)的功能,比如集群的自發(fā)現(xiàn)和fleet的跨主機(jī)管理。

CoreOS 的用戶體驗

CoreOS 的核心思想來自于 Chrome 瀏覽器的用戶體驗:快速啟動,后臺更新,跨版本無縫更新,每個Tab頁采用獨立沙盒,單個Tab頁崩潰能快速修復(fù),整個瀏覽器也不會因為單個沙盒進(jìn)程的崩潰而崩潰。引申到服務(wù)器上,試想將一個應(yīng)用托管在應(yīng)用容器中的服務(wù)從一個服務(wù)器轉(zhuǎn)移到另一個服務(wù)器上,就像用鼠標(biāo)將 Tab 頁從一個瀏覽器拖拽到另一個瀏覽器界面上那樣簡單。而這些,正是 CoreOS 希望帶給每一個用戶的體驗。

  • 更快的啟動速度

因為輕,所以快。做為現(xiàn)代網(wǎng)絡(luò)的服務(wù)器的產(chǎn)物,CoreOS 團(tuán)隊對這個服務(wù)器操作系統(tǒng)做了最大的精簡,結(jié)果不僅使得系統(tǒng)與應(yīng)用高度分離,更獲得了極大的啟動速度提升。根據(jù)官方數(shù)據(jù),其系統(tǒng)運行時內(nèi)存使用量只有114M(作者注:這是官方數(shù)據(jù),實測在Vagrant環(huán)境下只有大約80M,比宣傳的還要低),只有常見 Linux 服務(wù)器系統(tǒng)的一半略多 (約60%)。

此外,CoreOS 使用經(jīng) Mac 系統(tǒng) launchd 的啟發(fā)而開發(fā)的 Systemd 作為默認(rèn)系統(tǒng)啟動和服務(wù)管理器 (CentOS 7 也使用 Systemd 取代了過去的 SysV 啟動服務(wù))。與 SysV 相比,Systemd 不但可以更好的追蹤系統(tǒng)進(jìn)程,而且也具備優(yōu)秀的并行化處理能力,加之按需啟動等特點,并結(jié)合 Docker 的快速啟動能力,在 CoreOS 集群中大規(guī)模部署 Docker Containers 與使用其他操作系統(tǒng)相比在性能上的優(yōu)勢將更加明顯。

  • 平滑版本升級

傳統(tǒng)的服務(wù)器操作系統(tǒng),包括大多數(shù)Linux發(fā)行版,每隔幾年都會更換。在這期間,開發(fā)者會不斷用安全補(bǔ)丁和更新完善這個系統(tǒng),但是不會進(jìn)行特別大的改動,最終這個操作系統(tǒng)以及其上的軟件會慢慢僵化。但是 CoreOS 的思想是成為一個隨時可被更新的操作系統(tǒng),其本身沒有跨發(fā)布版本升級的概念,而是使用了類似 Arch Linux 的升級通道(Update Channel)和滾動更新的方式,在任何時候系統(tǒng)都能夠直接升級成最新的發(fā)布版本。甚至在整個更新的過程中,應(yīng)用程序的運行不會被打斷。有了 CoreOS,基礎(chǔ)架構(gòu)會自動升級,就像無需用戶操心的 Chrome 瀏覽器升級一樣。

CoreOS 有兩個系統(tǒng)分區(qū) (dual root partition 有些地方翻譯為雙啟動分區(qū),這里實際上應(yīng)該是系統(tǒng)分區(qū),包括 /bin /sbin /lib 等目錄,這些目錄都是只讀的)。兩個分區(qū)分別被設(shè)置成主動模式和被動模式并在系統(tǒng)運行期間各司其職。主動分區(qū)負(fù)責(zé)系統(tǒng)運行,被動分區(qū)負(fù)責(zé)系統(tǒng)升級。一旦新版本的操作系統(tǒng)被發(fā)布,一個完整的系統(tǒng)文件將被下載至被動分區(qū),并在系統(tǒng)下一次重啟時從新版本分區(qū)啟動,原來的被動分區(qū)將切換為主動分區(qū),而之前的主動分區(qū)則被切換為被動分區(qū)。這個個過程中,被更新的機(jī)器不需要從負(fù)載集群中移除。同時,為了保證其它應(yīng)用程序不被打斷,CoreOS 會通過 Linux cgroups 限制更新過程中的硬盤和網(wǎng)絡(luò)I/O。

這里值得一提的是,與傳統(tǒng) Linux 服務(wù)器不同,CoreOS 的系統(tǒng)分區(qū)被設(shè)計成在系統(tǒng)運行期間保持只讀狀態(tài),這樣確保了 CoreOS 的安全性,也進(jìn)一步體現(xiàn)了 CoreOS 不希望用戶將應(yīng)用軟件直接安裝在操作系統(tǒng)上的態(tài)度。同時,集群內(nèi)高度一致的系統(tǒng)內(nèi)核和外圍應(yīng)用版本,簡化了由于版本問題帶來的操作復(fù)雜性,使得操作系統(tǒng)自身的維護(hù)更加容易。

  • 應(yīng)用容器化

在 CoreOS 中,所有應(yīng)用程序都被裝在一個個 Docker 容器中,這些容器就像一個個軟件代碼的集裝箱,通過最簡單的接口運行在操作系統(tǒng)之上。這意味著它們可以被很輕松的在操作系統(tǒng)和計算機(jī)之間轉(zhuǎn)移,就像是在輪船和火車上搬運箱子一樣,同時也意味著可以在不中斷應(yīng)用程序的情況下更新操作系統(tǒng)。

Docker 在開發(fā)者將應(yīng)用部署到云基礎(chǔ)架構(gòu)上時變得日益流行。通過容器化 (containerized) 的運算環(huán)境向應(yīng)用程序提供運算資源,應(yīng)用程序之間共享系統(tǒng)內(nèi)核和資源,卻互不干涉運行。單個容器的故障能夠快速的重啟修復(fù),并且容器內(nèi)的應(yīng)用故障不會引起整個系統(tǒng)的崩潰。這個思想和瀏覽器的沙盒是如出一轍的。

CoreOS 的分布式系統(tǒng)服務(wù)

云的問題,最主要是由集中式到分布式思考方式的轉(zhuǎn)變,分布式服務(wù)、分布式部署、分布式管理、分布式數(shù)據(jù)存儲… 而這些都是 CoreOS 帶給服務(wù)器革命的一部分。

為了從系統(tǒng)層面上解決這些分布式思維所面臨的問題,CoreOS 團(tuán)隊提供了一些重要的工具幫助用戶管理 CoreOS 集群以及部署 Docker 容器。

  • Cloud-init

在系統(tǒng)啟動時,CoreOS 會讀取一個平臺定制的用戶配置文件 (稱為 cloud-config) 完成系統(tǒng)的初始化配置。通過配置中的信息,新啟動 CoreOS 服務(wù)器將初始化必要的服務(wù)進(jìn)程,并自動發(fā)現(xiàn)并指定集群的其他服務(wù)器交互信息,然后加入這個集群中。這種基于集群的“自發(fā)現(xiàn)”組織方式使得集群管理變得簡單且高效。

通常來說,cloud-config 配置文件至少應(yīng)當(dāng)包括服務(wù)器所屬的集群通信地址,以及啟動 etcd 和 fleet 所需服務(wù)的參數(shù)。用戶可以根據(jù)需要,在配置中添加更多定制化的服務(wù),使得節(jié)點啟動后立即成為功能完備的集群成員投入運行。

  • Etcd

在CoreOS 集群中處于骨架地位的是 etcd。 etcd 是一個分布式 key/value 存儲服務(wù),CoreOS 集群中的程序和服務(wù)可以通過 etcd 共享信息或做服務(wù)發(fā)現(xiàn) 。etcd 基于非常著名的 raft 一致性算法:通過選舉形式在服務(wù)器之中選舉 Lead 來同步數(shù)據(jù),并以此確保集群之內(nèi)信息始終一致和可用。etcd 以默認(rèn)的形式安裝于每個 CoreOS 系統(tǒng)之中。

在默認(rèn)的配置下,etcd 使用系統(tǒng)中的兩個端口:4001和7001,其中4001提供給外部應(yīng)用程序以HTTP+Json的形式讀寫數(shù)據(jù),而7001則用作在每個 etcd 之間進(jìn)行數(shù)據(jù)同步。用戶更可以通過配置 CA Cert讓 etcd 以 HTTPS 的方式讀寫及同步數(shù)據(jù),進(jìn)一步確保數(shù)據(jù)信息的安全性。

  • Fleet

fleet 是一個通過 Systemd對CoreOS 集群中進(jìn)行控制和管理的工具。fleet 與 Systemd 之間通過 D-Bus API 進(jìn)行交互,每個 fleet agent 之間通過 etcd 服務(wù)來注冊和同步數(shù)據(jù)。fleet 提供的功能非常豐富,包括查看集群中服務(wù)器的狀態(tài)、啟動或終止 Docker 容器、讀取日志內(nèi)容等。更為重要的是 fleet 可以確保集群中的服務(wù)一直處于可用狀態(tài)。當(dāng)出現(xiàn)某個通過 fleet 創(chuàng)建的服務(wù)在集群中不可用時,如由于某臺主機(jī)因為硬件或網(wǎng)絡(luò)故障從集群中脫離時,原本運行在這臺服務(wù)器中的一系列服務(wù)將通過fleet 被重新分配到其他可用服務(wù)器中。雖然當(dāng)前 fleet 還處于非常早期的狀態(tài),但是其管理 CoreOS 集群的能力是非常有效的,并且仍然有很大的擴(kuò)展空間,目前已提供簡單的 API 接口供用戶集成。

尾聲

從下一篇開始我們將從構(gòu)建一個 CoreOS 集群說起,一步一步來熟悉這個系統(tǒng)的方方面面。(作者/林帆 審校/周小璐)

參考文章:

服務(wù)器操作系統(tǒng) CoreOS

CoreOS:最小化定制版linux系統(tǒng)

CoreOS 實戰(zhàn):CoreOS 及管理工具介紹

An Introduction to CoreOS System Components

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用Docker、CoreOS、Mesos部署可擴(kuò)展的Web應(yīng)用
CoreOS:面向云計算和數(shù)據(jù)中心的Linux
10大Go語言開源項目推薦
Kubernetes API 與 Operator:不為人知的開發(fā)者戰(zhàn)爭(一)
四大集群管理工具大比拼
Docker——容器與容器云(第2版)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服