Swarm和Mesos集成部署

安裝步驟

1.準(zhǔn)備環(huán)境

準(zhǔn)備三臺(tái)Ubuntu 14.40的環(huán)境(物理機(jī)和虛擬機(jī)都可以)跛璧,配置DNS或者/etc/hosts文件來(lái)保證相互通過(guò)機(jī)器名可以訪問捏检,并且關(guān)閉防火墻。

2.在兩臺(tái)計(jì)算節(jié)點(diǎn)上安裝Docker

登陸computer1.wyq.com和computer2.wyq.com執(zhí)行以下命令安裝Docker:

# apt-get update # apt-get install wget# wget -qO- https://get.docker.com/ | sh

默認(rèn)情況下,Docker只允許通過(guò)unix socket來(lái)訪問Docker Engine迎变,所以根據(jù)以上理論的分析,如果Swarm Manager節(jié)點(diǎn)master.wyq.com想要訪問計(jì)算節(jié)點(diǎn)上的Docker Engine飘言,我們必須修改Swarm默認(rèn)配置來(lái)開啟一個(gè)TCP的端口供外部訪問:

編輯/etc/default/docker文件衣形,修改DOCKER_OPTS參數(shù)如下:

# vim /etc/default/docker DOCKER_OPTS="-H 0.0.0.0:2375 -H unix:///var/run/docker.sock"# service docker restart

3.在master節(jié)點(diǎn)安裝Golang和godep

由于master.wyq.com上需要安裝Swarm Manager服務(wù),Swarm 是由GO語(yǔ)言編寫姿鸿,所以需要在master.wyq.com上安裝Golang來(lái)支持Swarm Manager的運(yùn)行谆吴。

注: 這里使用Swarm的最新的版本:

/# wgethttps://storage.googleapis.com/golang/go1.5.3.linux-amd64.tar.gz

/# tar -C /usr/local -xzf go1.5.3.linux-amd64.tar.gz

Swarm像大多數(shù)GO語(yǔ)言的項(xiàng)目一樣,使用godep來(lái)管理包的依賴苛预,由于Swarm官方?jīng)]有提供Swarm的安裝包句狼,所以需要我們自己編譯,所以在編譯之前我們需要安裝godep來(lái)幫助下載Swarm的依賴热某。

首先由于godep的一些依賴使用了mercurial腻菇, 先安裝mercurial

# apt-get install -y mercurial

安裝godep:

\# mkdir $HOME/go-tools && export GOPATH=$HOME/go-tools

\# go get github.com/tools/godep

\# ll /root/go-tools/bin/

-rwxr-xr-x 1 root root 10327064 Jan 22 16:47 godep*

在安裝完Golang和godep之后,編輯/etc/profile,添加環(huán)境變量:

export PATH=$PATH:/usr/local/go/bin:$HOME/go-tools/bin

安裝驗(yàn)證:

\# go versiongo version go1.5.3 linux/amd64

\# godep versiongodep v51 (linux/amd64/go1.5.3)

4.在master節(jié)點(diǎn)上build Mesos

Mesos官方目前沒有提供Mesos的安裝包昔馋,需要自己下載源碼包進(jìn)行build筹吐。這里是以Mesos最新的版本為例進(jìn)行安裝。

登陸master節(jié)點(diǎn)master.wyq.com執(zhí)行以下步驟進(jìn)行build:

首先需要安裝build Mesos 必須的第三方軟件包:

# apt-get update# apt-get install -y openjdk-7-jdk# apt-get install -y autoconf libtool# apt-get -y install build-essential python-dev python-boto libcurl4-nss-dev libsasl2-dev maven libapr1-dev libsvn-dev

下載源碼包進(jìn)行編譯安裝:

# wget http://mirror.bit.edu.cn/apache/mesos/0.26.0/mesos-0.26.0.tar.gz# tar -xzvf mesos-0.26.0.tar.gz# cd mesos-0.26.0# ./bootstrap# mkdir build && cd build# ../configure# make# make install DESTDIR=/opt/apache/mesos# ll /opt/apache/mesos/usr/local/sbin/total 2632drwxr-xr-x 2 root root 4096 Jan 28 16:41 ./

drwxr-xr-x 9 root root 4096 Jan 15 20:02 ../

-rwxr-xr-x 1 root root 406 Jan 28 16:41 mesos-daemon.sh*

-rwxr-xr-x 1 root root 1698505 Jan 28 16:41 mesos-master*

-rwxr-xr-x 1 root root 954864 Jan 28 16:41 mesos-slave*

-rwxr-xr-x 1 root root 888 Jan 28 16:41 mesos-start-cluster.sh*

-rwxr-xr-x 1 root root 1366 Jan 28 16:41 mesos-start-masters.sh*

-rwxr-xr-x 1 root root 1349 Jan 28 16:41 mesos-start-slaves.sh*

-rwxr-xr-x 1 root root 635 Jan 28 16:41 mesos-stop-cluster.sh*

-rwxr-xr-x 1 root root 1200 Jan 28 16:41 mesos-stop-masters.sh*

-rwxr-xr-x 1 root root 1185 Jan 28 16:41 mesos-stop-slaves.sh*

配置:

編輯/opt/apache/mesos/usr/local/sbin/mesos-daemon.sh文件:

?修改prefix變量的值為:/opt/apache/mesos/usr/local

?在prefix的下一行添加行:

export LD_LIBRARY_PATH=${prefix}/lib

export MESOS_LAUNCHER_DIR=${prefix}/libexec/mesos

export MESOS_EXECUTOR_ENVIRONMENT_VARIABLES="{\"PATH\": \"${PATH}\",\"LD_LIBRARY_PATH\": \"${LD_LIBRARY_PATH}\"}"

5.在master節(jié)點(diǎn)上編譯Swarm

下載源碼包:

# mkdir /opt/docker/swarm && cd /opt/docker/swarm# wget https://github.com/docker/swarm/archive/v1.0.1.tar.gz

構(gòu)建build目錄結(jié)構(gòu):

# mkdir -p $PWD/src/github.com/docker# tar -C src/github.com/docker -xzf v1.0.1.tar.gz# mv src/github.com/docker/swarm-1.0.1 src/github.com/docker/swarm# export GOPATH=$PWD# cd src/github.com/docker/swarm/

編譯Swarm binary:

# godep go install .# $PWD/bintotal 22680-rwxr-xr-x 1 root root 23215632 Feb 1 19:25 swarm*

6.在master節(jié)點(diǎn)上安裝NFS

為了節(jié)省安裝時(shí)間秘遏,我們不需要在三臺(tái)機(jī)器上分別build Mesos骏令,可以直接將build的安裝目錄拷貝到其他兩臺(tái)機(jī)器上即可。但是我們需要定期的和社區(qū)最新的代碼進(jìn)行同步和重新build垄提,所以為了避免每次重復(fù)的拷貝榔袋,我們采用共享文件的方式。

登陸master.wyq.com執(zhí)行如下命令安裝配置NFS:

# apt-get install -y nfs-common nfs-kernel-server# vim /etc/exports/opt/apache/mesos *(rw,sync,no_root_squash,no_subtree_check)# /etc/init.d/nfs-kernel-server start# showmount -e localhostExport list for localhost:

/opt/apache/mesos *

7.配置兩臺(tái)計(jì)算節(jié)點(diǎn)

登陸computer1.wyq.com和computer2.wyq.com铡俐,執(zhí)行如下命令:

在兩臺(tái)計(jì)算節(jié)點(diǎn)上安裝運(yùn)行Mesos需要的安裝包:

# apt-get update# apt-get install -y openjdk-7-jdk# apt-get install -y autoconf libtool# apt-get -y install build-essential python-dev python-boto libcurl4-nss-dev libsasl2-dev maven libapr1-dev libsvn-dev

Mount Mesos安裝目錄:

# mkdir /opt/apache/mesos

# mount -t nfs -o nolock maser.wyq.com:/opt/apache/mesos /opt/apache/mesos

# ll /opt/apache/mesos/usr/local/sbin/

total 2632

drwxr-xr-x 2 root root 4096 Jan 28 16:41 ./

drwxr-xr-x 9 root root 4096 Jan 15 20:02 ../

-rwxr-xr-x 1 root root 406 Jan 28 16:41 mesos-daemon.sh*-rwxr-xr-x 1 root root 1698505 Jan 28 16:41 mesos-master*-rwxr-xr-x 1 root root 954864 Jan 28 16:41 mesos-slave*-rwxr-xr-x 1 root root 888 Jan 28 16:41 mesos-start-cluster.sh*-rwxr-xr-x 1 root root 1366 Jan 28 16:41 mesos-start-masters.sh*-rwxr-xr-x 1 root root 1349 Jan 28 16:41 mesos-start-slaves.sh*-rwxr-xr-x 1 root root 635 Jan 28 16:41 mesos-stop-cluster.sh*-rwxr-xr-x 1 root root 1200 Jan 28 16:41 mesos-stop-masters.sh*-rwxr-xr-x 1 root root 1185 Jan 28 16:41 mesos-stop-slaves.sh*

8.啟動(dòng)服務(wù)

登陸master.wyq.com啟動(dòng)Mesos master和Swarm manager:

# cd /opt/apache/mesos/usr/local/sbin/# mkdir /opt/mesoslog# ./mesos-daemon.sh mesos-master --work_dir=/var/lib/mesos --log_dir=/opt/mesoslog# cd /opt/docker/swarm/bin# ./swarm manage -c mesos-experimental --cluster-opt mesos.address=9.111.255.10 --cluster-opt mesos.port=3375 gradyhost1.eng.platformlab.ibm.com:5050

登陸computer1.wyq.com和computer2.wyq.com啟動(dòng)Mesos agent:

# cd /opt/apache/mesos/usr/local/sbin/# mkdir /opt/mesoslog# ./mesos-daemon.sh mesos-slave --master=gradyhost1.eng.platformlab.ibm.com:5050 --log_dir=/opt/mesoslog --containerizers=mesos,docker

9.驗(yàn)證:

打開Mesos portal:http://master.wyq.com:5050查看Slaves,Frameworks和offers的信息凰兑。

在任意一個(gè)計(jì)算節(jié)點(diǎn)上查看docker info:

# docker -H manager.wyq.com:2375 infoContainers: 0Images: 1Role: primaryStrategy: spreadFilters: health, port, dependency, affinity, constraintOffers: 2

Offer: 98085d1e-4516-4c4c-b6a3-4f8cde32c980-O19

└ cpus: 2

└ mem: 2.851 GiB

└ disk: 29.79 GiB

└ ports: 31000-32000

Offer: 98085d1e-4516-4c4c-b6a3-4f8cde32c980-O20

└ cpus: 2

└ mem: 2.851 GiB

└ disk: 29.79 GiB

└ ports: 31000-32000CPUs: 4Total Memory: 5.701 GiBName: manager.wyq.com

執(zhí)行docker run, 創(chuàng)建hello-world container:

# docker -H manager.wyq.com:2375 run --cpu-shares 1 hello-worldHello from Docker.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末审丘,一起剝皮案震驚了整個(gè)濱河市吏够,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌滩报,老刑警劉巖锅知,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異脓钾,居然都是意外死亡售睹,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門可训,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)昌妹,“玉大人捶枢,你說(shuō)我怎么就攤上這事》裳拢” “怎么了烂叔?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)固歪。 經(jīng)常有香客問我蒜鸡,道長(zhǎng),這世上最難降的妖魔是什么牢裳? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任逢防,我火速辦了婚禮,結(jié)果婚禮上贰健,老公的妹妹穿的比我還像新娘。我一直安慰自己恬汁,他們只是感情好伶椿,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著氓侧,像睡著了一般脊另。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上约巷,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天偎痛,我揣著相機(jī)與錄音,去河邊找鬼独郎。 笑死踩麦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的氓癌。 我是一名探鬼主播谓谦,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼贪婉!你這毒婦竟也來(lái)了反粥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤疲迂,失蹤者是張志新(化名)和其女友劉穎才顿,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尤蒿,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡郑气,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腰池。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竣贪。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡军洼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出演怎,到底是詐尸還是另有隱情匕争,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布爷耀,位于F島的核電站甘桑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏歹叮。R本人自食惡果不足惜跑杭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望咆耿。 院中可真熱鬧德谅,春花似錦、人聲如沸萨螺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)慰技。三九已至椭盏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吻商,已是汗流浹背掏颊。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留艾帐,地道東北人乌叶。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像柒爸,于是被迫代替她去往敵國(guó)和親枉昏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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