网站换皮肤了
mesos + docker + Chronos + Marathon安装及配置
时间:2018-05-14 12:45 浏览:1333

摘要

mesos服务详细部署方案

环境准备

准备机器及设置hostname:

mesos-master1 mesos-master2 mesos-master3

mesos-slave1 mesos-slave2 mesos-slave3 

关闭防火墙和selinux

systemctl stop firewalld.service
systemctl disable firewalld.service

配置环境

所有机器

sudo vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.122.11 mesos-master1
192.168.122.12 mesos-master2
192.168.122.13 mesos-master3
192.168.122.15 mesos-slave1
192.168.122.16 mesos-slave2
192.168.122.17 mesos-slave3
Mesos Master
mesos-master1
mesos-master2
mesos-master3
sudo rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
sudo yum install mesos marathon chronos mesosphere-zookeeper

mesos-master

mesos-master 两台以上设置为2否则为1

sudo echo 2 > /etc/mesos-master/quorum
vi /etc/default/mesos-master
MESOS_QUORUM=2

zookeeper

sudo vi /etc/zookeeper/conf/zoo.cfg
#将以下内容追加到最后面
server.1=mesos-master1:2888:3888
server.2=mesos-master2:2888:3888
server.3=mesos-master3:2888:3888
zookeeper myid设置(master1 myid设置为1、master2 myid设置为2......)
sudo echo 1 > /var/lib/zookeeper/myid
mesos-zookeeper连携设定
sudo echo "zk://mesos-master1:2181,mesos-master2:2181,mesos-master3:2181/mesos" > /etc/mesos/zk

停止slave

sudo systemctl stop mesos-slave
sudo systemctl disable mesos-slave

master 添加自动启动并重启服务

sudo systemctl enable mesos-master
sudo systemctl enable zookeeper
sudo systemctl enable marathon
sudo systemctl enable chronos
sudo systemctl restart mesos-master
sudo systemctl restart zookeeper
sudo systemctl restart marathon
sudo systemctl restart chronos

Mesos Slave

mesos-slave1 mesos-slave2 mesos-slave3

sudo rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
sudo yum install mesos docker

mesos-zookeeper设定

sudo echo "zk://mesos-master1:2181,mesos-master2:2181,mesos-master3:2181/mesos" > /etc/mesos/zk

docker设定

sudo echo 'docker,mesos' > /etc/mesos-slave/containerizers
sudo echo '5mins' > /etc/mesos-slave/executor_registration_timeout

停止master

sudo systemctl stop mesos-master
sudo systemctl disable mesos-master

slave自启动并重启服务

sudo systemctl enable mesos-slave
sudo systemctl enable docker
sudo systemctl restart mesos-slave
sudo systemctl restart docker

使用ip通讯

# 此处的ip地址可根据具体的节点ip稍作调整
echo 192.168.122.15 > /etc/mesos-slave/ip
echo false > /etc/mesos-slave/hostname_lookup 
systemctl restart mesos-slave

Chronos

http://mesos-master1:4400/

Mesos

http://mesos-master1:5050/

Marathon

http://mesos-master1:8080/

测试调度

chronos使用

vi chronos-api.json
{
"schedule": "R\/2015-03-05T22:00:00Z\/PT2M",
"name": "chronos-dockerjob",
"container": {
"type": "DOCKER",
"image": "libmesos/ubuntu"
},
"cpus": "0.5",
"mem": "256",
"uris": [],
"command": "while sleep 10; do date -u +%T; done"
}
curl -L -H "Content-Type: application/json" -X POST -d@chronos-api.json http://mesos-master1:4400/scheduler/iso8601

marathon使用

vi marathon-api.json
{
"container": {
"type": "DOCKER",
"docker": {
"image": "libmesos/ubuntu"
}
},
"id": "ubuntu-marathon",
"instances": 1,
"cpus": 0.5,
"mem": 256,
"uris": [],
"cmd": "while sleep 10; do date -u +%T; done"
}
curl -X POST -H "Content-Type: application/json" http://mesos-master1:8080/v2/apps -d@marathon-api.json

 常见问题

问题1

Slave bound to loopback interface! Cannot communicate with remote master(s). You might want to set '--ip' flag to a routable IP address.

解决方法

使用IP地址通信,分别在以下文件中写入当前机器的IP地址(文件不存在则创建)

/etc/mesos-slave/ip 

/etc/mesos-master/ip 

cat /etc/mesos-slave/ip   
172.21.0.11

问题2

有时候莫名的无法启动服务,你可以尝试下执行一下命令。这个一般看/var/log/messages日志能看到。

rm -f /tmp/mesos/meta/slaves/latest




如果这篇文章对你有所帮助,可以通过下边的“打赏”功能进行小额的打赏。

本网站部分内容来源于互联网,如有侵犯版权请来信告知,我们将立即处理。


来说两句吧