说明
- 在基础的mesos虚拟机上, 克隆5台新的机器: 151(主), 152(主), 153(主), 154(从), 155(从), master配置为2核2G, agent配置为1核2G
- 在所有机器上全部安装zookeeper
1. 下载Zookeeper3.7.1
1.1 下载, 解压, 重命名, 配置
解压完重命名为 zookeeper-3.7.1
cd /usr/local/src/zookeeper-3.7.1/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
第 12 行 修改数据存储位置
dataDir=/usr/local/src/zookeeper-3.7.1/data
在文件末尾追加内容(2888是通信端口, 3888是选举接口)
# server.Y=IP:port1:port2
server.1=192.168.109.151:2888:3888
server.2=192.168.109.152:2888:3888
server.3=192.168.109.153:2888:3888
server.4=192.168.109.154:2888:3888
server.5=192.168.109.155:2888:3888
1.2 开启2181, 2888, 3888端口, 以2181为例
firewall-cmd --query-port=2181/tcp
firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --reload
1.3 设置myid文件, 五台机器myid分别是 1, 2, 3, 4, 5
cd ..
mkdir data
cd data
echo 1 > myid
cat myid
1.4 启动
cd /usr/local/src/zookeeper-3.7.1/bin
./zkServer.sh start
启动成功后即可查看每台服务的状态
./zkServer.sh status
2. 启动mesos集群
2.1 修改hosts
vi /etc/hosts
追加内容, 大家都一样
192.168.109.151 mesos-master151
192.168.109.152 mesos-master152
192.168.109.153 mesos-master153
192.168.109.154 mesos-agent154
192.168.109.155 mesos-agent155
2.2 修改hostname, 分别是151, 152, 153, 154, 155
hostnamectl set-hostname 192.168.109.151
hostnamectl status
2.3 开启5050和5051端口, 以5050为例
firewall-cmd --query-port=5050/tcp
firewall-cmd --zone=public --add-port=5050/tcp --permanent
firewall-cmd --reload
2.4 主节点服务器执行, 只有–ip不一样
–quorum=数字, 仲裁票数, 目前3个主节点, 取值可以是1或2, 按理来说是2, 我这里设置为1
如果是1, 只要有一个主节点正常, mesos就可以正常运行, 允许宕机2台机器
如果是2, 必须有2个主节点以上正常, mesos才可以正常运行, 否则投不出2票
mkdir /var/lib/mesos-master
cd /usr/local/src/mesos-1.11.0/build
./bin/mesos-master.sh --ip=192.168.109.151 --work_dir=/var/lib/mesos-master --zk=zk://192.168.109.151:2181,192.168.109.152:2181,192.168.109.153:2181,192.168.109.154:2181,192.168.109.155:2181/mesos --quorum=1
无论访问哪台服务, 看到的信息是一样的 访问151 访问152 访问153
2.5 宕机151机器(命令行窗口Ctrl + c), leader变成了153
2.6 从节点服务器执行
mkdir /var/lib/mesos-agent
cd /usr/local/src/mesos-1.11.0/build
./bin/mesos-agent.sh --master=zk://192.168.109.151:2181,192.168.109.152:2181,192.168.109.153:2181,192.168.109.154:2181,192.168.109.155:2181/mesos --work_dir=/var/lib/mesos-agent
3. 启动Marathon集群
3.1 开启6060端口
firewall-cmd --query-port=6060/tcp
firewall-cmd --zone=public --add-port=6060/tcp --permanent
firewall-cmd --reload
3.2 启动marathon, 在151, 152, 153机器上同时执行
cd /usr/local/src/marathon-1.8.222
./bin/marathon --master zk://192.168.109.151:2181,192.168.109.152:2181,192.168.109.153:2181,192.168.109.154:2181,192.168.109.155:2181/mesos --zk zk://192.168.109.151:2181,192.168.109.152:2181,192.168.109.153:2181,192.168.109.154:2181,192.168.109.155:2181/marathon --http_port 6060
在mesos可以看到主节点是153, 访问151 访问152 访问153
3.3 在154机器上, 都创建22篇的sh文件, 然后执行
从mesos任务可以看到, 它会在154和155上反复执行该任务, 2个FAILED(155机器上都没sh文件), 2个FINISHED