1. 程式人生 > >Mesos叢集yum安裝部署

Mesos叢集yum安裝部署

轉載來自:http://3258715.blog.51cto.com/3248715/1757850

1 Apache Mesos簡介

Apache Mesos據說是雲端計算的未來,利用Mesos可輕易實現一個PaaS雲平臺。

請參考 http://mesos.apache.org/http://mesosphere.com/檢視詳細

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

vi /etc/zookeeper/conf/zoo.cfg

新增

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

增加內容:2(把原有的內容1刪除,改為2)

  • 設定 --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地址 mesos安裝mesos安裝

  • 訪問 http://192.168.1.110:8080 marathon地址,可利用其釋出docker映象並可調整應用數量 mesos安裝

注意:如果mesos-slave出現這種錯誤:
# 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

221 23:55:50 mesos mesos-slave[6016]:   ranges {
221 23:55:50 mesos mesos-slave[6016]:     range {
221 23:55:50 mesos mesos-slave[6016]:       begin: 31000
221 23:55:50 mesos mesos-slave[6016]:       end: 32000
221 23:55:50 mesos mesos-slave[6016]:     }
221 23:55:50 mesos mesos-slave[6016]:   }
221 23:55:50 mesos mesos-slave[6016]:   role: "*"
221 23:55:50 mesos systemd[1]: mesos-slave.service: main process exited, code=exited, status=1/FAILURE
221 23:55:50 mesos systemd[1]: Unit mesos-slave.service entered failed state.
221 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叢集工作的最小配置。