Mesos+Marathon部署

系统环境

ubuntu14.04 LTS

角色分配

IP地址 主机名 角色
192.168.9.100 mesos-master01 mesos-master,marathon,consul,es
192.168.9.101 mesos-master02 mesos-master,marathon,consul,es
192.168.9.102 mesos-master03 mesos-master,marathon,consul,es
192.168.9.104 mesos-slave01 mesos-slave,consul-client,registrator
192.168.9.105 mesos-slave02 mesos-slave,consul-client,registrator
192.168.9.106 mesos-slave03 mesos-slave,consul-client,registrator
192.168.9.107 mesos-slave04 mesos-slave,consul-client,registrator

环境准备:

以下操作在所有主机:

设置时区

设置为亚洲上海

dpkg-reconfigure tzdata

设置时间同步,写入计划任务

*/20 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1

设置主机名,添加hosts

192.168.9.100  mesos-master01  
192.168.9.101  mesos-master02  
192.168.9.102  mesos-master03  
192.168.9.104  mesos-slave01   
192.168.9.105  mesos-slave02   
192.168.9.106  mesos-slave03   
192.168.9.107  mesos-slave04

安装docker

curl -sSL https://get.daocloud.io/docker | sh

添加mesos源

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E56151BF
DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
CODENAME=$(lsb_release -cs)
echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | sudo tee /etc/apt/sources.list.d/mesosphere.list

更新apt源

sudo apt-get update

安装mesos

sudo apt-get install mesos

配置文件一般为: - 全局配置文件目录:/etc/mesos - master配置文件目录:/etc/mesos-master - slave配置文件目录:/etc/mesos-slave

为了使master正常工作,有三个必须配置的变量: - ZooKeeper URL(zk) - quorum - work_dir

如需添加其他配置可以相应目录下创建相应文件夹 比如:cluster 内容写集群名字, leader如果不跳转 需要在此目录配置 hostname

配置mesos-master

以下只需要在9.100-102三台设置即可,ip地址修改为相应的ip地址

这里使用线上的zk集群

echo "zk://192.168.9.21:2181,192.168.9.22:2181,192.168.9.25:2181/mesos" > /etc/mesos/zk 
echo "192.168.9.101" > /etc/mesos-master/hostname
echo "prod" > /etc/mesos-master/cluster

启动mesos-master

service mesos-master start

配置mesos-slave

echo "zk://192.168.9.21:2181,192.168.9.22:2181,192.168.9.25:2181/mesos" > /etc/mesos/zk

配置memsos-slave支持docker

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

增加执行器超时时间,为了拉取镜像的时间

echo '10mins' > /etc/mesos-slave/executor_registration_timeout

安装marathon

marathon新版本需要java1.8支持,先安装java

添加ppa安装java

add-apt-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java8-installer

设置java1.8位默认java环境

apt-get install oracle-java8-set-default

安装marathon

apt-get install marathon

启动marathon

service marathon start

安装consul

下载consul二进制文件

wget https://releases.hashicorp.com/consul/0.7.2/consul_0.7.2_linux_amd64.zip

解压文件,然后分发到每台机器上。

9.100-9.102 三台服务器启动server角色

consul agent -server -bootstrap-expect 3 -data-dir /data/consul  -dc=prod -bind=0.0.0.0 -client=0.0.0.0 -advertise=192.168.9.100 -ui

192.104-9.107 4台服务器上启动client角色

consul agent -data-dir /data/consul -bind=0.0.0.0 -client=0.0.0.0 -dc=51idc-prod -advertise=192.168.9.104 -join 192.168.9.100

启动registrator 容器

docker run -d  -it --name registrator --restart always --volume /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -resync 60 -ip 192.168.9.105 consul://192.168.9.105:8500