Coreos 的安裝與配置:面向云的輕量級(jí)操作系統(tǒng)

責(zé)任編輯:editor007

2015-01-19 18:15:40

摘自:云創(chuàng)存儲(chǔ)

Coreos是一款面向云的輕量級(jí)OS,以L(fǎng)inux系統(tǒng)為基礎(chǔ),為了建設(shè)數(shù)據(jù)中心的需要,從Linux底層進(jìn)行了內(nèi)核裁減。負(fù)責(zé)維護(hù)集群中的服務(wù)實(shí)例,當(dāng)服務(wù)實(shí)例異常時(shí),重新進(jìn)行任務(wù)調(diào)度來(lái)恢復(fù)服務(wù) 

Coreos是一款面向云的輕量級(jí)OS,以L(fǎng)inux系統(tǒng)為基礎(chǔ),為了建設(shè)數(shù)據(jù)中心的需要,從Linux底層進(jìn)行了內(nèi)核裁減。Coreos設(shè)計(jì)之初就旨在通過(guò)輕量的系統(tǒng)架構(gòu)和靈活的應(yīng)用程序部署能力簡(jiǎn)化數(shù)據(jù)中心的維護(hù)成本和復(fù)雜度。本篇博文基于筆者對(duì)CoreOS的研究和應(yīng)用的經(jīng)驗(yàn),詳細(xì)介紹了基于Vagrant下Coreos 的安裝與配置。

  目前國(guó)內(nèi)使用CoreOS的場(chǎng)景還不多,搜索CoreOS中文資料基本都大同小異。最近幾日再和其它攻城獅討論問(wèn)題時(shí),有人提出希望看到一篇介紹CoreOS和安裝方面的文章,正好本人最近也在研究CoreOS,也就共享一些經(jīng)驗(yàn)。權(quán)當(dāng)拋磚引玉。

  首先咱們明確一下CoreOS是用來(lái)做什么的。CoreOS也是一款OS,但它是一款面向云的輕量級(jí)OS。CoreOS是以L(fǎng)inux系統(tǒng)為基礎(chǔ),為了建設(shè)數(shù)據(jù)中心的需要,而從Linux底層進(jìn)行了內(nèi)核裁減。CoreOS提供了一系列的機(jī)制和工具來(lái)保證CoreOS組建的云環(huán)境是安全,可靠和最新的。CoreOS設(shè)計(jì)之初就定位于可以提供一種動(dòng)態(tài)縮放和管理集群的能力,可以方便管理類(lèi)似google 這種龐大數(shù)據(jù)中心的集群。

  目前支持CoreOS的云平臺(tái)有: EC2,DigitalOcean, GCE, Rackspace, Azure, Brightbox 。 支持CoreOS的虛擬化軟件有:vagrant, vmware,QEMU,openstack,Eucalyptus, ISO image.

  由此也可以看出國(guó)際云平臺(tái)各廠(chǎng)商一致看好CoreOS,大有席卷互聯(lián)網(wǎng)之勢(shì)。

  CoreOS有三個(gè)最重要的工具,etcd,fleet和docker。下面我們分別介紹這三款工具。

  ETCD

  etcd是一個(gè)開(kāi)源的分布式鍵值對(duì)存儲(chǔ)工具。在每個(gè)CoreOS節(jié)點(diǎn)上面運(yùn)行的etcd,共同組建了CoreOS集群的共享數(shù)據(jù)總線(xiàn)。etcd可以保證CoreOS集群的穩(wěn)定,可靠。當(dāng)集群網(wǎng)絡(luò)出現(xiàn)動(dòng)蕩,或者當(dāng)前master節(jié)點(diǎn)出現(xiàn)異常時(shí),etcd可以?xún)?yōu)雅的進(jìn)行master節(jié)點(diǎn)的選舉工作,同時(shí)恢復(fù)集群中損失的數(shù)據(jù)。

  分布在各個(gè)CoreOS節(jié)點(diǎn)中的app,都可以自由的訪(fǎng)問(wèn)到etcd中的數(shù)據(jù)。最常見(jiàn)的場(chǎng)景就是etcd存儲(chǔ)cluster的metadata,cache setting, cluster logging, feature flags等。



  etcd有如下的功能:

  簡(jiǎn)單可靠,API豐富(支持http,jason)

  支持客戶(hù)端通過(guò)SSL認(rèn)證,保證安全性

  每個(gè)實(shí)例可以支持每秒1000次寫(xiě)操作

  基于RAFT協(xié)議完成分布式操作

  通過(guò)http輪詢(xún),監(jiān)聽(tīng)網(wǎng)絡(luò)變化

  FLEET

  Fleet是管理CoreOS和部署app的工具。


  有了fleet,你就可以把整個(gè)CoreOS集群當(dāng)做一臺(tái)節(jié)點(diǎn)來(lái)處理。Fleet鼓勵(lì)用戶(hù)將應(yīng)用都封裝成輕量級(jí)的服務(wù),這些服務(wù)很容易在集群中進(jìn)行管理和部署。

  devops team通過(guò)fleet,就可以集中精力來(lái)關(guān)注app應(yīng)用,而不用關(guān)心基礎(chǔ)環(huán)境如何,哪個(gè)container應(yīng)該部署在哪臺(tái)節(jié)點(diǎn)上。如果你的app需要5個(gè)container同時(shí)運(yùn)行,fleet將保證這5個(gè)container在集群中同時(shí)運(yùn)行。如果某臺(tái)節(jié)點(diǎn)出現(xiàn)異常,或者需要重啟更新,fleet也會(huì)將此臺(tái)節(jié)點(diǎn)上面的container轉(zhuǎn)移到其他節(jié)點(diǎn)上。

  而這些都是automatic的! 運(yùn)行和管理container就是這樣so easy!


  Fleet的功能如下:

  在當(dāng)前CoreOS集群中隨機(jī)部署docker container

  在集群中跨主機(jī)進(jìn)行服務(wù)分發(fā)

  負(fù)責(zé)維護(hù)集群中的服務(wù)實(shí)例,當(dāng)服務(wù)實(shí)例異常時(shí),重新進(jìn)行任務(wù)調(diào)度來(lái)恢復(fù)服務(wù)

  發(fā)現(xiàn)集群中的各個(gè)節(jié)點(diǎn)

  自動(dòng)SSH到其它節(jié)點(diǎn)來(lái)執(zhí)行job

  Fleet再進(jìn)行任務(wù)調(diào)度時(shí),就會(huì)讀取etcd存儲(chǔ)的數(shù)據(jù)。下圖就是Fleet的任務(wù)調(diào)度流程圖:

  


  Docker是一個(gè)輕量級(jí)的虛擬化工具。使用Docker可以進(jìn)行應(yīng)用的快速部署。

  以上介紹了CoreOS的主要工具,下面我們介紹一下如何使用CoreOS。因?yàn)橹С諧oreOS的平臺(tái)很多,這里無(wú)法一一列出所有平臺(tái)的安裝方式,我們選取了應(yīng)用最多的vagrant+CoreOS方案進(jìn)行安裝介紹,如果需要了解其他平臺(tái)的安裝方式,請(qǐng)參考https://CoreOS.com/

  在進(jìn)行安裝和配置CoreOS之前,我們需要準(zhǔn)備一臺(tái)Linux實(shí)體機(jī),注意一定是實(shí)體機(jī),因?yàn)槭褂胿mware虛擬出的Linux操作系統(tǒng)會(huì)和vagrant不兼容,造成失敗。(這不難理解,畢竟真正的數(shù)據(jù)中心不可能在windows平臺(tái)上面跑虛擬機(jī)....)

  下面我們開(kāi)始進(jìn)行安裝:

  首先安裝vagrant。推薦使用ubuntu 64bit。訪(fǎng)問(wèn)http://www.vagrantup.com/downloads.html下載deb安裝文件。

  1、安裝vagrant后,git vagrantfile。

  2、修改config.rb和user-data。

  config.rb文件:

user-data文件:

  首先我們需要獲取一個(gè)新的token:執(zhí)行 curl http://discovery.etcd.io/new,會(huì)得到一個(gè)類(lèi)似https://discovery.etcd.io/5480377e1e51f25e11dd78f525ba1122的地址。把這個(gè)地址替換

  替換后的user-data文件應(yīng)該是類(lèi)似于:

現(xiàn)在執(zhí)行:vagrant up --provision。

  這時(shí),vagrant就開(kāi)始啟動(dòng)并且開(kāi)始自動(dòng)下載CoreOS最新版本。目前CoreOS版本迭代非??欤疽恢軙?huì)有一個(gè)新版本。

  注意:

  在下載完成后,vagrant會(huì)自動(dòng)進(jìn)行鏡像哈希值校驗(yàn)。有的ubuntu沒(méi)有安裝哈希計(jì)算工具,這個(gè)時(shí)候vagrant會(huì)報(bào)錯(cuò),提示計(jì)算工具找不到,此時(shí)單獨(dú)安裝然后再次執(zhí)行vagrant up --provision即可。

  等看到啟動(dòng)完成后,CoreOS集群就已經(jīng)啟動(dòng)完畢了。輸入vagrant ssh core-01 -- -A 就可以登錄到CoreOS集群了,執(zhí)行:fleetctl list-machines 就會(huì)看到所有三臺(tái)節(jié)點(diǎn)。

  至此CoreOS集群的安裝就完成了。下篇文章,我將會(huì)介紹如何通過(guò)service文件來(lái)部署docker image.
 

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)