Mesos叢集yum安裝部署
轉載來自:http://3258715.blog.51cto.com/3248715/1757850
1 Apache Mesos簡介
2 Master節點安裝
規劃
-
192.168.1.110 master1
-
192.168.1.111 master2
-
192.168.1.112 master3
關閉防火牆
-
master1,master2,master3
systemctl stop firewalld && systemctl disable firewalld
新增 mesos的yum源
-
master1,master2,master3
sudo rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
安裝mesos及相關軟體(zk可以自己安裝,不用yum)
-
master1,master2,master3
yum -y install mesos marathon yum -y install mesosphere-zookeeper(這個可以不用安裝)
配置zookeeper(這是yum安裝zk後的配置,若自己手動安裝,無須看)
-
master1
touch /var/lib/zookeeper/myid echo 1 > /var/lib/zookeeper/myid
-
master2
touch /var/lib/zookeeper/myid echo 2 > /var/lib/zookeeper/myid
-
master3
touch /var/lib/zookeeper/myid echo 3 > /var/lib/zookeeper/myid
-
master1,master2,master3
server.1=192.168.1.110:2888:3888 server.2=192.168.1.111:2888:3888 server.3=192.168.1.112:2888:3888
-
下面的必做:
-
master1,master2,master3
vi /etc/mesos/zk
-
增加內容:
zk://192.168.1.110:2181,192.168.1.111:2181,192.168.1.112:2181/mesos(刪除原有內容)
-
master1,master2,master3
vi /etc/mesos-master/quorum
- 設定
--quorum=2
的意思是:至少要有 2 臺 master 節點線上,否則叢集無法起來,所以至少要兩臺 master 一起啟動。
配置mesos和marathon
-
master1(下面三步其實一樣,就是 vim /etc/mesos-master/hostname 輸入ip,然後mkdir -p /etc/marathon/conf/,再vim /etc/marathon/conf/hostname 輸入ip)
echo 192.168.1.110 | sudo tee /etc/mesos-master/hostname mkdir -p /etc/marathon/conf/ && touch hostname echo 192.168.1.110 | sudo tee /etc/marathon/conf/hostname
-
master2
echo 192.168.1.111 | sudo tee /etc/mesos-master/hostname mkdir -p /etc/marathon/conf/ && touch hostname echo 192.168.1.111 | sudo tee /etc/marathon/conf/hostname
-
master3
echo 192.168.1.112 | sudo tee /etc/mesos-master/hostname mkdir -p /etc/marathon/conf/ && touch hostname echo 192.168.1.112 | sudo tee /etc/marathon/conf/hostname
啟動zookeeper mesos-master marathon
-
master1,master2,master3
systemctl start zookeeper && systemctl start mesos-master && systemctl start marathon && systemctl disable mesos-slave
3 Slave節點安裝
規劃
-
192.168.1.113 client1(我由於機器不夠,slave安裝在了master上了,啟動服務時注意就行,別把master停了)
關閉防火牆
systemctl stop firewalld && systemctl disable firewalld
新增 mesos的yum源
sudo rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
安裝mesos
yum -y install mesos
配置master資訊
vi /etc/mesos/zk
zk://192.168.1.110:2181,192.168.1.111:2181,192.168.1.112:2181/mesos
cd /etc/mesos-slave/ touch hostname echo 192.168.1.113 | sudo tee /etc/mesos-slave/hostname
啟動mesos-slave
systemctl start mesos-slave && systemctl enable mesos-slave systemctl disable mesos-master
4 測試
-
訪問 http://192.168.1.110:5050 mesos地址
-
訪問 http://192.168.1.110:8080 marathon地址,可利用其釋出docker映象並可調整應用數量
# systemctl status mesos-slave.service
● mesos-slave.service - Mesos Slave
Loaded: loaded (/usr/lib/systemd/system/mesos-slave.service; disabled; vendor preset: disabled)
Active: activating (auto-restart) (Result: exit-code) since 日 2016-02-21 23:55:50 CST; 9s ago
Process: 6009 ExecStart=/usr/bin/mesos-init-wrapper slave (code=exited, status=1/FAILURE)
Main PID: 6009 (code=exited, status=1/FAILURE)
Memory: 24.0K
CGroup: /system.slice/mesos-slave.service
2月 21 23:55:50 mesos mesos-slave[6016]: ranges {
2月 21 23:55:50 mesos mesos-slave[6016]: range {
2月 21 23:55:50 mesos mesos-slave[6016]: begin: 31000
2月 21 23:55:50 mesos mesos-slave[6016]: end: 32000
2月 21 23:55:50 mesos mesos-slave[6016]: }
2月 21 23:55:50 mesos mesos-slave[6016]: }
2月 21 23:55:50 mesos mesos-slave[6016]: role: "*"
2月 21 23:55:50 mesos systemd[1]: mesos-slave.service: main process exited, code=exited, status=1/FAILURE
2月 21 23:55:50 mesos systemd[1]: Unit mesos-slave.service entered failed state.
2月 21 23:55:50 mesos systemd[1]: mesos-slave.service failed.
如果出現這種錯誤,那可能是因為,slave的預設埠5051關閉了,telnet試一下,如果是,就開啟此埠。
我是防火牆關了都telnet 不通5051,選擇了reboot,解決了。
注:
master的配置
為了使master正常工作,有三個必須配置的變數:ZooKeeper URL(zk),quorum,和work_dir。
ZooKeeper URL以如下方式指定:
zk://mesos-master-1.example.com:2181,mesos-master-2.example.com:2181,mesos-master-3.example.com:2181/mesos
- quorum(法定人數):需要大於master數目的1/2。
- work_dir(工作目錄):此目錄用於Mesos master的工作目錄,沒有預設設定,/var/lib/mesos是一個較好的選擇。
如果把上面的配置都作為環境變數,可以使用類似於如下的命令:
$ export MESOS_zk=zk://mesos-master-1.example.com:2181,mesos-master-2.example.com:2181,mesos-master-3.example.com:2181/mesos
$ export MESOS_quorum=2
$ export MESOS_work_dir=/var/lib/mesos
$ export MESOS_log_dir=/var/log/mesos
slave的配置
為了使slave正常工作,有兩個必須配置的變數:master和work_dir。
- master:它的值配置為ZooKeeper URL(zk),用於Mesos slave探測哪個是leading master並且連線到那。配置的方式同上。
- work_dir(工作目錄):此目錄作為Mesos frameworks的工作目錄和sandboxes(沙箱),沒有預設值,使用/var/lib/mesos是一個不錯的選擇。
如果把上面的配置都作為環境變數,可以使用類似於如下的命令:
$ export MESOS_master=zk://mesos-master-1.example.com:2181,mesos-master-2.example.com:2181,mesos-master-3.example.com:2181/mesos
$ export MESOS_work_dir=/var/lib/mesos
$ export MESOS_log_dir=/var/log/mesos
以上的配置基本上是可以使Mesos叢集工作的最小配置。