messos部署

messos部署

安裝環(huán)境

1:查看內(nèi)核版本

[root@localhost ~]# uname? -a

Linux localhost.localdomain 3.10.0-693/21.1.el7.x86_64 #1 SMP Wed Mar 7 19:03:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

2:系統(tǒng)版本

[root@localhost ~]# cat? /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

3:修改yum源,所有機器都要做

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.default

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum makecache

4:docker版本

[root@localhost ~]# docker? --version

Docker version 1.13.1, build 94f4240/1.13.1

5:關(guān)閉selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'? ? /etc/sysconfig/selinux

sed -i 's/SELINUXTYPE=targeted/#SELINUXTYPE=targeted/g'? ? /etc/sysconfig/selinux

setenforce 0

getenforce

6:添加hosts解析

echo "10.10.10.110? messos-master"? >> /etc/hosts

echo "10.10.10.120? messos-slave"? >>/etc/hosts

7:關(guān)閉防火墻

systemctl stop firewalld

systemctl disable firewalld

8:添加messos源

rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-3.noarch.rpm

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-mesosphere

二:安裝zookeeper

2.1:安裝java

[root@localhost ~]# java -version

openjdk version "1.8.0_161"

OpenJDK Runtime Environment (build 1.8.0_161-b14)

OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)

2.2安裝zookeeper

安裝方法1

安裝

#wget http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

#tar zxvf zookeeper-3.4.9.tar.gz

#mv zookeeper-3.4.9 /usr/local/

#mv /usr/local/zookeeper-3.4.9 /usr/local/zookeeper

配置

#cd /usr/local/zookeeper

#cp zoo_sample.cfg zoo.cfg

#vi zoo.cfg

dataDir=/usr/local/zookeeper/data    #數(shù)據(jù)目錄,如果沒有需要新建此目錄

dataLogDir=/usr/local/zookeeper/logs  #日志目錄,如果沒有需要新建此目錄

如果是單機安裝配置zookeeper,以下配置可忽略

server.0=10.1.13.214:2888:3888? ? ? ?

server.1=10.1.13.215:2888:3888

server.2=10.1.13.216:2888:3888

集群模式需要添加以下

#vi /user/local/zookeeper/data/myid

#創(chuàng)建myid文件裙盾,并編輯它肾档,編輯的內(nèi)容就是配置文件中server.后面跟著的號數(shù)芙代。例如目前是在slave0機器上,則在myid文件中寫入0

0

修改zookeeper輸出日志文件位置

如果不做修改昧旨,默認zookeeper的日志輸出信息都打印到了zookeeper.out文件中拜轨,這樣輸出路徑和大小沒法控制抽减,因為日志文件沒有輪轉(zhuǎn)允青。所以需要修改日志輸出方式橄碾。具體操作如下:

1、修改$ZOOKEEPER_HOME/bin目錄下的zkEnv.sh文件颠锉,ZOO_LOG_DIR指定想要輸出到哪個目錄法牲,ZOO_LOG4J_PROP,指定INFO,ROLLINGFILE的日志APPENDER.

2琼掠、建立日志輸出文件夾

#mkdir -p /var/log/zookeeper

#chmod 755 /var/log/zookeeper

3,修改zkEnv.sh

#vi /usr/local/zookeeper/bin/zkEnv.sh

...

56? ? ZOO_LOG_DIR="/var/log/zookeeper"? ? #指定想要輸出到哪個目錄

...

61? ? ZOO_LOG4J_PROP="INFO,ROLLINGFILE"? ? #ROLLINGFILE的日志APPENDER.

...

4拒垃、修改$ZOOKEEPER_HOME/conf/log4j.properties文件的:zookeeper.root.logger的值與前一個文件的ZOO_LOG4J_PROP 保持一致,該日志配置是以日志文件大小輪轉(zhuǎn)的瓷蛙,如果想要按照天輪轉(zhuǎn)悼瓮,可以修改為DaliyRollingFileAppender.

5,修改log4j.properties

# vim /usr/local/zookeeper/conf/log4j.properties

...

2 zookeeper.root.logger=INFO, ROLLINGFILE? ? ? #值與前一個文件的ZOO_LOG4J_PROP

...

53 log4j.appender.TRACEFILE=org.apache.log4j.RollingFileAppender? ? ? #如果想要按照天輪轉(zhuǎn),可以修改為DaliyRollingFileAppender

...

環(huán)境變量配置

#vi /etc/profile

export ZOOKEEPER_HOME=/usr/local/zookeeper

export PATH=$PATH:$ZOOKEEPER_HOME/bin

#source /etc/profile

啟動 zookeeper 服務(wù)

#cd /user/local/zookeeper/bin

#zkServer.sh start

安裝方法2 (本文檔使用該方法)

#yum install mesosphere-zookeeper

zookeeper啟動文件在/opt/mesosphere/zookeeper/bin下艰猬,配置文件在/etc/zookeeper/zoo.cfg

配置同上

三:安裝messos

3.1:安裝messos-master

#yum install mesos

3.2:配置messos-zookeeper

root@localhost ~]# cat /etc/mesos/zk

zk://10.1.13.214:2181/mesos

備注:有多個zookeeper后面加“横堡,”添加

3.3:配置messos-hostname

echo 本地IP地址 | tee /etc/mesos-master/ip

echo 本地IP地址 | tee /etc/mesos-master/hostname

echo 本地IP地址 | tee /etc/mesos-slave/ip

echo 本地IP地址 | tee /etc/mesos-slave/hostname

echo 2 > /etc/mesos-master/quorum? #這個數(shù)字要大于安裝的master節(jié)點的總數(shù)的0.5倍,即一半

啟動master服務(wù)

#systemctl stop? mesos-slave

#systemctl restart mesos-master

#systemctl status mesos-master

#systemctl enable mesos-master

服務(wù)啟動后冠桃,可以通過瀏覽器訪問查看系統(tǒng)信息: http://10.10.10.110:5050

3.4:安裝messos-slave

#yum install mesos

配置實例

#touch /etc/mesos-slave/hostname

#echo 10.10.10.120 /etc/mesos-slave/hostname

ZooKeeper設(shè)定

# vi /etc/mesos/zk

zk://10.10.10.110:2181/mesos

客戶端端口設(shè)置

#echo 5051 > /etc/mesos-slave/port

配置mesos-slave

注意:參數(shù)來containerizers的順序很重要命贴。它指定選擇containerizer啟動任務(wù)時使用的優(yōu)先級。

#echo 'docker,mesos' > /etc/mesos-slave/containerizers

slave 執(zhí)行超時時間

#echo '5mins' > /etc/mesos-slave/executor_registration_timeout

啟動服務(wù),添加開機啟動

#systemctl stop? mesos-master

#systemctl start docker

#systemctl start? mesos-slave?

#systemctl status mesos-slave

#systemctl enable mesos-slave

報錯日志查看命令

#journalctl -f -u? mesos-slave

四:mesos-marathon安裝配置

Marathon 的其它重要特性還包括:

支持零停機時間部署胸蛛,包括滾動部署污茵、藍綠部署與金絲雀部署模式。

基于 HTTP葬项、TCP 以及命令之應(yīng)用程序運行狀態(tài)檢查泞当。

指標發(fā)送與收集集成(包括 Graphite、DataDog 以及StatsD)民珍。

具備一套強大的事件總線零蓉,使得 DevOps 人員以編程化方式通過定制化模式實現(xiàn)應(yīng)用程序變更響應(yīng)。

具備用于應(yīng)對網(wǎng)絡(luò)與節(jié)點故障的彈性穷缤,且同時適用于 Marathon 本身及其管理的應(yīng)用程序敌蜂。

包括用戶認證以及基于角色訪問控制在內(nèi)的多種安全功能。

采用一套靈活的插件架構(gòu)津肛,使得插件能夠被定制化集成至現(xiàn)有企業(yè)IT環(huán)境當(dāng)中章喉。

只在10.10.10.110上配置

安裝mesos-marathon

#yum install marathon

配置mesos-marathon

創(chuàng)建下他的配置文件的路徑(yum裝的沒給我們創(chuàng)建)

#mkdir -p /etc/marathon/conf/ && touch hostname?

#echo 10.10.10.110 |tee? etc/marathon/conf/hostname

啟動服務(wù),添加開機啟動

#systemctl start marathon

#systemctl status marathon

#systemctl enable marathon

訪問驗證

http://10.10.10.110:8080

五:mesos-dns安裝配置

mesos-dns介紹

Mesos-DNS用來支持Mesos集群上的服務(wù)發(fā)現(xiàn)身坐,使運行在Mesos上的應(yīng)用和服務(wù)可以通過域名服務(wù)器來發(fā)現(xiàn)彼此秸脱。你只要知道一個Mesos數(shù)據(jù)中心上運行的應(yīng)用的名字,就可以通過Mesos-DNS查詢到該應(yīng)用的IP和端口號部蛇。

Mesos-DNS定期去查詢Mesos master摊唇,監(jiān)測所有framework上運行的所有任務(wù),并生成這些任務(wù)的DNS記錄(包括A記錄和SRV記錄)涯鲁。當(dāng)Mesos集群上的任務(wù)發(fā)生啟動巷查、結(jié)束、重啟等狀態(tài)變化時抹腿,Mesos-DNS都會更新DNS記錄岛请,以保持最新的狀態(tài)。

Mesos-DNS不需要與framework交互警绩,只需要在啟動的時候指向Mesos master即可崇败。運行在Master Slave上的應(yīng)用和服務(wù),可以通過查詢Mesos-DNS來發(fā)現(xiàn)它們依賴的應(yīng)用和服務(wù)的IP和端口號肩祥。

對于那些非Mesos任務(wù)的DNS解析請求后室,Mesos-DNS自己解析不了,通常使用一個擴展DNS服務(wù)器混狠,將這些請求轉(zhuǎn)發(fā)到擴展DNS服務(wù)來解析即可岸霹。

slave上操作

mesos-dns安裝

Mesos-DNS不需要編譯安裝,從https://github.com/mesosphere/mesos-dns/releases直接獲取二進制文件即可

#mkdir /usr/local/mesos-dns

#cd /usr/local/mesos-dns

#curl -o mesos-dns https://github.com/mesosphere/mesos-dns/releases/download/v0.6.0/mesos-dns-v0.6.0-linux-amd64

#chmod +x mesos-dns

mesos-dns配置

編寫json配置文件檀蹋,mesos-dns啟動時需要指定一個json的配置文件松申,這個配置文件里指定了Mesos master云芦、域名等所需要的參數(shù)

#vim /usr/local/mesos-dns/config.json

{

? "zk": "zk://10.1.13.214:2181/mesos", #單機

? "zk": "zk://10.1.13.214:2181,10.1.13.215:2181贸桶,10.1.13.216:2181/mesos", #單機

? "masters": ["10.1.13.214:5050"], #單機

? "masters": ["10.1.13.214:5050"舅逸,"10.1.13.215:5050","10.1.13.216:5050"], #多機

? "refreshSeconds": 60,

? "ttl": 60,

? "domain": "mesos",

? "port": 53,

? "resolvers": ["8.8.8.8"],

? "timeout": 5,

? "httpon": true,

? "dnson": true,

? "httpport": 8123,

? "externalon": true,

? "listener": "10.1.13.211",? #slave本機ip

? "SOAMname": "felix.mesos",

? "SOARname": "admin.felix.mesos",

? "SOARefresh": 60,

? "SOARetry":? 600,

? "SOAExpire":? 86400,

? "SOAMinttl": 60,

? "IPSources": ["netinfo", "mesos", "host"]

}

運行mesos-dns

使用命令行直接運行mesos-dns

#/usr/local/mesos-dns/mesos-dns -config=/usr/local/mesos-dns/config.json &

使用marathon來運行mesos-dns

使用marathon來運行mesos-dns的好處是皇筛,即使在mesos-dns掛了之后也會立刻被重新運行琉历。因為DNS服務(wù)器需要一個穩(wěn)定的IP地址,所以通常將其指定在一個Mesos slave節(jié)點上運行水醋。這里通過constraints字段來指定運行的slave的IP為10.1.13.213旗笔。在marathon上運行mesos-dns的json配置如下:

{

? "id": "/mesos-dns",

? "cmd": "/usr/local/mesos-dns/mesos-dns -config=/usr/local/mesos-dns/config.json",

? "cpus": 0.2,

? "mem": 128,

? "disk": 0,

? "instances": 1,

? "constraints": [

? ? [

? ? ? "hostname",

? ? ? "CLUSTER",

? ? ? "10.1.13.213"

? ? ]

? ]

}

使用mesos-dns

指定mesos-dns為域名服務(wù)器 為了讓Mesos上運行的任務(wù)都使用mesos-dns作為主DNS服務(wù)器來解析,需要在Mesos slave節(jié)點的/etc/resolv.conf配置文件的第一行指定mesos-dns服務(wù)器為域名服務(wù)器拄踪。

[root@localhost ~]#sed -i '1s/^/nameserver 10.1.13.213\n/' /etc/resolv.conf

mesos-dns能解析的域名的格式

mesos-dns解析的域名格式為:應(yīng)用名.框架名.mesos域

|構(gòu)成項? ? |說明

|---------|------------------------------------------------------

|應(yīng)用名? ? |? marathon上運行的應(yīng)用或任務(wù)的名字蝇恶,如果該應(yīng)用在分組里面,需要在應(yīng)用|名后面接上”-組名”惶桐;另外撮弧,應(yīng)用名字里面有點號的,需要替換成減號”-“

|框架名? ? |? 我們采用的是marathon姚糊,這里的名字就為marathon

|mesos域? |? ? 這個是在mesos-dns的json配置文件里贿衍,domain字段定義的;默認為mesos

例如救恨,Mesos用的框架為marathon贸辈,在test分組里運行著名為test04的應(yīng)用,則該應(yīng)用將對應(yīng)名為test04-test.marathon.mesos的域名

測試

格式:dig 應(yīng)用名.框架名.mesos域 +short @mesos-dns所在節(jié)點IP

[root@localhost ~]# yum install bind-utils? #安裝dig命令

[root@localhost ~]# dig test03.marathon.mesos +short @10.1.13.213

10.1.13.211?

#test03沒有在分組中肠槽,@10.1.13.213是dig的參數(shù)擎淤,@mesos-dns所在節(jié)點IP

[root@localhost ~]# dig test04-test.marathon.mesos +short? ?

10.1.13.211

注意,test03為marathon任務(wù)的name署浩,test03這個任務(wù)要在marathon上運行揉燃,這里才能查到

mesos-dns HTTP API

Mesos-DNS提供了幾個簡單的REST API以供通過http方式來發(fā)現(xiàn)服務(wù)。 以上面mesos-dns在10.1.13.213為例筋栋,則有:

|URL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |說明

|----------------------------------------------------------------

|http://10.1.13.213:8123/v1/version? ? ? ? ? ? |mesos-dns版本信息

|http://10.1.13.213:8123/v1/config? ? ? ? ? ? ? |mesos-dns配置信息

|http://10.1.13.213:8123/v1/hosts/{host}? ? ? ? ? ? |該host的IP地址信息

|http://10.1.13.213:8123/v1/services/{service}? |該service的host、IP正驻、端口信息

注意: host為mesos-dns能解析的域名弊攘,如:test04-test.marathon.mesos service為DNS SRV記錄名,如:test04-test.tcp.marathon.mesos

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末姑曙,一起剝皮案震驚了整個濱河市襟交,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伤靠,老刑警劉巖捣域,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡焕梅,警方通過查閱死者的電腦和手機迹鹅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贞言,“玉大人斜棚,你說我怎么就攤上這事「么埃” “怎么了弟蚀?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長酗失。 經(jīng)常有香客問我义钉,道長,這世上最難降的妖魔是什么规肴? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任断医,我火速辦了婚禮,結(jié)果婚禮上奏纪,老公的妹妹穿的比我還像新娘鉴嗤。我一直安慰自己,他們只是感情好序调,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布醉锅。 她就那樣靜靜地躺著,像睡著了一般发绢。 火紅的嫁衣襯著肌膚如雪硬耍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天边酒,我揣著相機與錄音经柴,去河邊找鬼。 笑死墩朦,一個胖子當(dāng)著我的面吹牛坯认,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播氓涣,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼牛哺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了劳吠?” 一聲冷哼從身側(cè)響起引润,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎痒玩,沒想到半個月后淳附,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體议慰,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年奴曙,在試婚紗的時候發(fā)現(xiàn)自己被綠了别凹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡缆毁,死狀恐怖番川,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情脊框,我是刑警寧澤颁督,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站浇雹,受9級特大地震影響沉御,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜昭灵,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一吠裆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧烂完,春花似錦试疙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嘶窄,卻和暖如春怀跛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背柄冲。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工吻谋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人现横。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓漓拾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親长赞。 傳聞我的和親對象是個殘疾皇子晦攒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361

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