1. 程式人生 > >Mesos+Marathon搭建部署

Mesos+Marathon搭建部署

實驗環境

主機名

IP地址

執行服務

安裝元件

mesos1

172.16.138.201

zookeeper
mesos-master
marathon

mesos
marathon
mesosphere-zookeeper

mesos2

172.16.138.202

zookeeper
mesos-master
marathon

mesos
marathon
mesosphere-zookeeper

mesos3

172.16.138.203

zookeeper
mesos-master
marathon

mesos
marathon
mesosphere-zookeeper

mesos4

172.16.138.204

mesos-slave

mesos

docker-engine

mesos5

172.16.138.205

mesos-slave

mesos

docker-engine

1        準備工作:

1.1   關閉Selinux

# setenforce 0

# sed -i '/^SELINUX=/c SELINUX=disabled'/etc/selinux/config

1.2   關閉防火牆

# systemctl stop firewalld

# systemctl disable firewalld

1.3   配置主機名解析

[[email protected]

~]# vi /etc/hosts

172.16.138.201        mesos1

172.16.138.202        mesos2

172.16.138.203        mesos3

172.16.138.204        mesos4

172.16.138.205        mesos5

 

1.4   下載軟體包

mesos-0.28.2-2.0.27.centos701406.x86_64.rpm

mesosphere-zookeeper-3.4.6-0.1.20141204175332.centos7.x86_64.rpm

marathon-1.1.1-1.0.472.el7.x86_64.rpm

docker-1.8.2-10.el7.centos.x86_64.rpm

docker-selinux-1.8.2-10.el7.centos.x86_64.rpm

2        mesos-master節點配置(以mesos1節點為例)

2.1   安裝元件

[[email protected] ~]# yum -y install mesosmarathon mesosphere-zookeeper

2.2   配置Zookeeper

[[email protected] ~]# echo 1 >/var/lib/zookeeper/myid

幾個ZooKeeper就按照順序編輯,第一個是1,第二個是2,第三個是3,以此類推

[[email protected] ~]# vi/etc/zookeeper/conf/zoo.cfg

server.1=172.16.138.201:2888:3888

server.2=172.16.138.202:2888:3888

server.3=172.16.138.203:2888:3888

 

[[email protected] ~]# mkdir –p /opt/mesosphere/zookeeper/etc/zookeeper

[[email protected]~]#ln -s /etc/zookeeper/conf/zoo.cfg/opt/mesosphere/zookeeper/etc/zookeeper/zoo.cfg

[[email protected] ~]# vi ~/.bash_profile

PATH=$PATH:$HOME/bin:/opt/mesosphere/zookeeper/bin

[[email protected] ~]# source ~/.bash_profile

[[email protected] ~]# systemctl start zookeeper

2.3   配置mesos-master

[[email protected] ~]# vi /etc/mesos/zk

zk://172.16.138.201:2181,172.16.138.202:2181,172.16.138.203:2181/mesos

 

[[email protected] ~]# vi /etc/mesos-master/ip

172.16.138.201

[[email protected] ~]# vi/etc/mesos-master/hostname

172.16.138.201

[[email protected] ~]# vi /etc/mesos-master/quorum

1

[[email protected] ~]# vi  /etc/mesos-master/work_dir

/var/lib/mesos

 

[[email protected] ~]# systemctl startmesos-master

2.4   配置marathon

[[email protected] ~]# mkdir -p/etc/marathon/conf

[[email protected] ~]# cd /etc/marathon/conf

[[email protected] conf]# vi hostname

172.16.138.201

[[email protected] conf]# vi master

zk://172.16.138.201:2181,172.16.138.202:2181,172.16.138.203:2181/mesos

[[email protected] conf]# vi zk

zk://172.16.138.201:2181,172.16.138.202:2181,172.16.138.203:2181/marathon

[[email protected] conf]# systemctl startmarathon

將上述操作在所有mesos-master節點上執行。

至此mesos-master節點已配置完畢,可以通過瀏覽器檢視WEB頁面檢視mesos及marathon。

mesos:http://172.16.138.201:5050

marathon:http://172.16.138.201:8080/ui/

3        mesos-slave節點配置(以mesos4節點為例)

3.1   安裝元件

[[email protected] ~]# yum -y install mesos docker

3.2   配置mesos-slave

[[email protected] ~]#  cd /etc/mesos-slave/

[[email protected] mesos-slave]# vi hostname

172.16.138.204

[[email protected] mesos-slave]#  vi ip

172.16.138.204

[[email protected] mesos-slave]#  vi containerizers

docker,mesos

[[email protected] mesos-slave]#  vi executor_registration_timeout

15mins

[[email protected] mesos-slave]#  vi attributes

rack_id:rack-1

 

[[email protected] mesos-slave]#  vi /etc/mesos/zk

zk://172.16.138.201:2181,172.16.138.202:2181,172.16.138.203:2181/mesos

[[email protected] mesos-slave]#  systemctl start mesos-slave

[[email protected] mesos-slave]#  systemctlstart docker

到mesos管理端,去檢視slave的註冊情況。

 

4        建立應用容器

建立容器有兩種方式: WEB GUI  /  API

下面通過WEB GUI方式建立一個簡單示例,演示建立應用容器的流程。

進入marathon管理控制檯http://172.16.138.201:8080/ui






進入mesos管理控制檯http://172.16.138.201:5050



5        服務發現元件

5.1   開啟Marathon訂閱事件通知特性

[[email protected] ~]#  echo ‘http_callback’>/etc/marathon/conf/event_subscriber

[[email protected] ~]#  systemctl restart  marathon