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