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+Marathon搭建部署

Mesos+Marathon搭建部署

Mesos+Marathon搭建部署

Mesos+Marathon搭建部署

Mesos+Marathon搭建部署

进入mesos管理控制台http://172.16.138.201:5050

Mesos+Marathon搭建部署

Mesos+Marathon搭建部署

5        服务发现组件

5.1   开启Marathon订阅事件通知特性

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

[[email protected] ~]#  systemctl restart  marathon