Rancher容器管理平臺(tái)搭建

1. Rancher容器管理平臺(tái)簡(jiǎn)介

Rancher是一個(gè)開源的企業(yè)級(jí)容器管理平臺(tái)浑槽。通過Rancher以躯,企業(yè)再也不必自己使用一系列的開源軟件去從頭搭建容器服務(wù)平臺(tái)月匣。Rancher提供了在生產(chǎn)環(huán)境中使用的管理Docker和Kubernetes的全椑荩化容器部署與管理平臺(tái)友鼻。

Rancher由以下四個(gè)部分組成:

  • 基礎(chǔ)設(shè)施編排

Rancher可以使用任何公有云或者私有云的Linux主機(jī)資源傻昙。Linux主機(jī)可以是虛擬機(jī),也可以是物理機(jī)彩扔。Rancher僅需要主機(jī)有CPU妆档,內(nèi)存,本地磁盤和網(wǎng)絡(luò)資源虫碉。從Rancher的角度來說贾惦,一臺(tái)云廠商提供的云主機(jī)和一臺(tái)自己的物理機(jī)是一樣的。

Rancher為運(yùn)行容器化的應(yīng)用實(shí)現(xiàn)了一層靈活的基礎(chǔ)設(shè)施服務(wù)。Rancher的基礎(chǔ)設(shè)施服務(wù)包括網(wǎng)絡(luò)须板, 存儲(chǔ)碰镜, 負(fù)載均衡DNS和安全模塊习瑰。Rancher的基礎(chǔ)設(shè)施服務(wù)也是通過容器部署的绪颖,所以同樣Rancher的基礎(chǔ)設(shè)施服務(wù)可以運(yùn)行在任何Linux主機(jī)上。

  • 容器編排與調(diào)度

很多用戶都會(huì)選擇使用容器編排調(diào)度框架來運(yùn)行容器化應(yīng)用甜奄。Rancher包含了當(dāng)前全部主流的編排調(diào)度引擎柠横,例如Docker SwarmKubernetesMesos课兄。同一個(gè)用戶可以創(chuàng)建Swarm或者Kubernetes集群滓鸠。并且可以使用原生的Swarm或者Kubernetes工具管理應(yīng)用。

除了Swarm第喳,Kubernetes和Mesos之外糜俗,Rancher還支持自己的Cattle容器編排調(diào)度引擎。Cattle被廣泛用于編排Rancher自己的基礎(chǔ)設(shè)施服務(wù)以及用于Swarm集群曲饱,Kubernetes集群和Mesos集群的配置悠抹,管理與升級(jí)。

  • 應(yīng)用商店

Rancher的用戶可以在應(yīng)用商店里一鍵部署由多個(gè)容器組成的應(yīng)用扩淀。用戶可以管理這個(gè)部署的應(yīng)用楔敌,并且可以在這個(gè)應(yīng)用有新的可用版本時(shí)進(jìn)行自動(dòng)化的升級(jí)。Rancher提供了一個(gè)由Rancher社區(qū)維護(hù)的應(yīng)用商店驻谆,其中包括了一系列的流行應(yīng)用卵凑。Rancher的用戶也可以創(chuàng)建自己的私有應(yīng)用商店

  • 企業(yè)級(jí)權(quán)限管理

Rancher支持靈活的插件式的用戶認(rèn)證胜臊。支持Active Directory勺卢,LDAP, Github等 認(rèn)證方式象对。 Rancher支持在環(huán)境級(jí)別的基于角色的訪問控制 (RBAC)黑忱,可以通過角色來配置某個(gè)用戶或者用戶組對(duì)開發(fā)環(huán)境或者生產(chǎn)環(huán)境的訪問權(quán)限。

下圖展示了Rancher的主要組件和功能:

Rancher組件和功能

2. Rancher容器管理平臺(tái)搭建

2.1 安裝環(huán)境要求

  • 操作系統(tǒng): CentOS 7.0+

  • 內(nèi)存: 1GB+

  • 硬盤: 100GB+

  • 數(shù)據(jù)庫(kù): MySQL5.0+

    • MySQL服務(wù)器需要 max_connections 的設(shè)置 > 150

    • MYSQL配置需求

      • 選項(xiàng)1: 用默認(rèn)COMPACT選項(xiàng)運(yùn)行Antelope
      • 選項(xiàng)2: 運(yùn)行MySQL 5.7勒魔,使用Barracuda甫煞。默認(rèn)選項(xiàng)ROW_FORMAT需設(shè)置成Dynamic
    • 推薦設(shè)定

      • max_packet_size >= 32M
      • innodb_log_file_size >= 256M (如果你已有現(xiàn)存數(shù)據(jù)庫(kù),請(qǐng)根據(jù)實(shí)際情況更改此設(shè)定)
      • innodb_file_per_table=1
      • innodb_buffer_pool_size >= 1GB (對(duì)于更高需求的配置冠绢,請(qǐng)?jiān)趯費(fèi)ySQL服務(wù)器機(jī)器上使用4-8G的值)
  • 服務(wù)依賴:Docker服務(wù)

  • Rancher版本: Rancher 1.5+

2.2 Rancher Server版本說明

Rancher Server當(dāng)前版本中有2個(gè)不同的標(biāo)簽抚吠。對(duì)于每一個(gè)主要的release標(biāo)簽,我們都會(huì)提供對(duì)應(yīng)版本的文檔弟胀。

  • rancher/server:latest 此標(biāo)簽是我們的最新一次開發(fā)的構(gòu)建版本楷力。這些構(gòu)建已經(jīng)被我們的CI框架自動(dòng)驗(yàn)證測(cè)試喊式。但這些release并不代表可以在生產(chǎn)環(huán)境部署。
  • rancher/server:stable 此標(biāo)簽是我們最新一個(gè)穩(wěn)定的release構(gòu)建弥雹。這個(gè)標(biāo)簽代表我們推薦在生產(chǎn)環(huán)境中使用的版本垃帅。

注: 請(qǐng)不要使用任何帶有 rancher/server:rc{n} 前綴的release。這些都是Rancher構(gòu)建的測(cè)試版本剪勿。

2.3 Rancher部署

2.3.1 單容器部署(使用容器內(nèi)部自帶的MySQL數(shù)據(jù)庫(kù))

在安裝和部署了Docker容器環(huán)境的Linux服務(wù)器上贸诚,使用一個(gè)簡(jiǎn)單的命令就可以啟動(dòng)一個(gè)單實(shí)例的Rancher。

$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server

2.3.2 單容器部署(使用外部MySQL數(shù)據(jù)庫(kù))

除了使用內(nèi)部的數(shù)據(jù)庫(kù)厕吉,你可以啟動(dòng)一個(gè)Rancher Server并使用一個(gè)外部的數(shù)據(jù)庫(kù)酱固。啟動(dòng)命令與之前一樣,但添加了一些額外的參數(shù)去說明如何連接你的外部數(shù)據(jù)庫(kù)头朱。

使用外部數(shù)據(jù)庫(kù)运悲,需要提前創(chuàng)建數(shù)據(jù)庫(kù)名和數(shù)據(jù)庫(kù)用戶,Rancher服務(wù)啟動(dòng)后會(huì)自動(dòng)創(chuàng)建Rancher管理平臺(tái)需要的數(shù)據(jù)庫(kù)表项钮。以下為相關(guān)的建庫(kù)腳本班眯, 可供參考:

> CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';
> GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle';
> GRANT ALL ON cattle.* TO 'cattle'@'localhost' IDENTIFIED BY 'cattle';

啟動(dòng)一個(gè)Rancher連接一個(gè)外部數(shù)據(jù)庫(kù),你需要在啟動(dòng)容器的命令中添加額外參數(shù)烁巫。

$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server \
    --db-host 192.168.202.44 --db-port 3306 --db-user username --db-pass password --db-name cattle

大部分的輸入?yún)?shù)都有默認(rèn)值并且是可選的署隘,只有MySQL數(shù)據(jù)庫(kù)主機(jī)地址配置項(xiàng)是必須配置的。

--db-host               數(shù)據(jù)庫(kù)主機(jī)名或IP地址
--db-port               數(shù)據(jù)庫(kù)服務(wù)端口(默認(rèn)為:3306)
--db-user               數(shù)據(jù)庫(kù)用戶名(默認(rèn)為:cattle)
--db-pass               數(shù)據(jù)庫(kù)用戶密碼(默認(rèn)為:cattle)
--db-name               數(shù)據(jù)庫(kù)名(默認(rèn)為:cattle)

2.3.3 高可用集群部署

在高可用(HA)的模式下運(yùn)行Rancher Server與單容器部署方式一樣簡(jiǎn)單亚隙,但需要暴露一個(gè)額外的服務(wù)端口用于實(shí)現(xiàn)集群節(jié)點(diǎn)之間的通訊磁餐,需要添加額外的參數(shù)到啟動(dòng)命令中,并且運(yùn)行一個(gè)外部的負(fù)載均衡就可以了阿弃。

1. HA部署需求

  • HA 節(jié)點(diǎn):
    • 9345, 8080 端口需要在各個(gè)節(jié)點(diǎn)之間能夠互相訪問
    • 至少1GB內(nèi)存
  • MySQL數(shù)據(jù)庫(kù)
    • 至少 1 GB內(nèi)存
    • 每個(gè)Rancher Server節(jié)點(diǎn)需要50個(gè)連接 (例如:3個(gè)節(jié)點(diǎn)的Rancher則需要至少150個(gè)連接)
    • MYSQL配置要求
      • 選項(xiàng)1: 用默認(rèn)COMPACT選項(xiàng)運(yùn)行Antelope
      • 選項(xiàng)2: 運(yùn)行MySQL 5.7诊霹,使用Barracuda。默認(rèn)選項(xiàng)ROW_FORMAT需設(shè)置成Dynamic
  • 外部負(fù)載均衡服務(wù)器
    • 負(fù)載均衡服務(wù)器需要能訪問Rancher Server節(jié)點(diǎn)的 8080 端口

注意:目前Rancher中并不支持Docker for Mac

2. 大規(guī)模部署建議

  • 每一個(gè)Rancher Server節(jié)點(diǎn)需要有4 GB 或者8 GB的堆空間渣淳,意味著需要8 GB或者16 GB內(nèi)存
  • MySQL數(shù)據(jù)庫(kù)需要有高性能磁盤
  • 對(duì)于一個(gè)完整的HA脾还,建議使用一個(gè)有備份的MySQL數(shù)據(jù)庫(kù)。另一種選擇則是使用MySQL集群(Galera)水由。

3. 部署步驟

  1. 在每個(gè)需要加入Rancher Server HA集群的節(jié)點(diǎn)上荠呐,運(yùn)行以下命令:

    $ docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 \
        rancher/server --db-host 1952.168.202.44 --db-port 3306 \
        --db-user Cattle --db-pass cattle --db-name cattle \
        --advertise-address <IP_of_the_Node>
    

    在每個(gè)節(jié)點(diǎn)上,<IP_of_the_Node> 需要在每個(gè)節(jié)點(diǎn)上唯一砂客,因?yàn)檫@個(gè)IP會(huì)被添加到HA的設(shè)置中。

    如果你修改了 -p 8080:8080 并在host上暴露了一個(gè)不一樣的端口呵恢,你需要添加 --advertise-http-port <host_port> 參數(shù)到命令中鞠值, 如下所示:

    $ docker run -d --restart=unless-stopped -p 8000:8080 -p 9345:9345 \
        rancher/server --db-host 1952.168.202.44 --db-port 3306 \
        --db-user Cattle --db-pass cattle --db-name cattle \
        --advertise-address 192.168.202.15 --advertise-http-port 8000
    

    ADVERTISE-ADDRESS參數(shù)配置說明:

    • 使用IP地址 --advertise-address 192.168.202.14
    • 使用網(wǎng)絡(luò)接口 --advertise-address eth0
  2. 在負(fù)載均衡應(yīng)用(如Nginx、HAProxy等)中添加負(fù)載均衡配置渗钉,這個(gè)負(fù)責(zé)均衡負(fù)責(zé)將例如80443端口的流量彤恶,轉(zhuǎn)發(fā)到運(yùn)行Rancher Server的節(jié)點(diǎn)的8080端口中钞钙。負(fù)載均衡器必須支持websockets 以及 forwarded-for 的Http請(qǐng)求頭以支持Rancher的功能。

4. 注意事項(xiàng)

如果修改了Rancher集群節(jié)點(diǎn)上的IP地址声离,Rancher集群上該節(jié)點(diǎn)將不會(huì)再提供服務(wù)芒炼,此時(shí)需要?jiǎng)h除修改IP地址的容器節(jié)點(diǎn)服務(wù), 并重新運(yùn)行新的容器并配置修改后的IP地址术徊。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末本刽,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子赠涮,更是在濱河造成了極大的恐慌子寓,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笋除,死亡現(xiàn)場(chǎng)離奇詭異斜友,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)垃它,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門鲜屏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人国拇,你說我怎么就攤上這事洛史。” “怎么了贝奇?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵虹菲,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我掉瞳,道長(zhǎng)毕源,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任陕习,我火速辦了婚禮霎褐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘该镣。我一直安慰自己冻璃,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布损合。 她就那樣靜靜地躺著省艳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嫁审。 梳的紋絲不亂的頭發(fā)上跋炕,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音律适,去河邊找鬼辐烂。 笑死遏插,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的纠修。 我是一名探鬼主播胳嘲,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼扣草!你這毒婦竟也來了了牛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤德召,失蹤者是張志新(化名)和其女友劉穎白魂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體上岗,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡福荸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肴掷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敬锐。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖呆瞻,靈堂內(nèi)的尸體忽然破棺而出台夺,到底是詐尸還是另有隱情,我是刑警寧澤痴脾,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布颤介,位于F島的核電站,受9級(jí)特大地震影響赞赖,放射性物質(zhì)發(fā)生泄漏滚朵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一前域、第九天 我趴在偏房一處隱蔽的房頂上張望辕近。 院中可真熱鬧,春花似錦匿垄、人聲如沸移宅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漏峰。三九已至,卻和暖如春届榄,著一層夾襖步出監(jiān)牢的瞬間芽狗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工痒蓬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留童擎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓攻晒,卻偏偏與公主長(zhǎng)得像顾复,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鲁捏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容