简单的分布式私有paas部署:Mesos+ZooKeeper+Marathon+Docker
三个节点:
系统:centos
master:
192.168.140.78
192.168.140.142
slave:
192.168.140.187
(1)关闭防火墙
master1 master2
1 #systemctl stop firewalld && systemctl disable firewalld
(2)添加mesos的yum源
master1 master2
1 #sudo rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
(3)安装mesos,marathon,zookeeper
master1 master2 master3 master4 master5
#yum -y install mesos marathon mesosphere-zookeeper
(4)配置zookeeper
#设置文件[/var/lib/zookeeper/myid]为当前mesos master节点的id,id必须为1-255之中的整数,例如:1
master1
1 #echo 1 > /var/lib/zookeeper/myidmaster2
1 #echo 2 > /var/lib/zookeeper/myid
#master_node_id为master节点id同该节点[/var/lib/zookeeper/myid]文件的配置,master_node_ip为master节点的ip地址:server.$master_node_id=$master_node_ip:2888:3888
其中第一个端口2888用来集群成员的信息交换,第二个端口3888是在leader挂掉时专门用来进行选举leader所用。
master1 master2
#vim /etc/zookeeper/conf/zoo.cfg 结尾添加内容 server.1=192.168.140.78:2888:3888 server.2=92.168.140.142:2888:3888 #vim /etc/mesos/zk 完全替换原来内容: zk: //92.168.140.78 :2181,92.168.140.142:2181 /mesos
注意:以下可以不配置
#设置文件[/etc/mesos-master/quorum]内容为一个大于(master节点数除以2)的整数。
#echo 3 >/etc/mesos-master/quorum 完全替换原来内容: 1
(5)配置mesos和marathon
#主机名和ip要在hosts中写入,不能全部使用localhost,否则会出现slave不能识别,以及marathon任务下发不正常等现象。
master1
# mkdir -p /etc/marathon/conf # echo 192.168.140.78 > /etc/mesos-master/hostname # echo 192.168.140.78 > /etc/marathon/conf/hostname #hostnamectl --static set-hostname master-1.com #echo "192.168.140.78 master-1 master-1.com" >/etc/hostsmaster2
# mkdir -p /etc/marathon/conf # echo 192.168.140.142> /etc/mesos-master/hostname # echo 192.168.140.142 > /etc/marathon/conf/hostname #hostnamectl --static set-hostname master-2.com #echo "192.168.140.142 master-2 master-2.com" >/etc/hosts
master1 master2
# cp /etc/mesos/zk /etc/marathon/conf/master # cp /etc/mesos/zk /etc/marathon/conf/zk # sed -i 's|mesos|marathon|g' /etc/marathon/conf/zk(6)启动mesos,marathon,zookeeper
master1 master2
# systemctl start zookeeper && systemctl start mesos-master && systemctl start marathon # systemctl disable mesos-slave(7)检查配置
#配置过程中出错,为了方便检查对比各master配置,直接执行如下命令。
cat /var/lib/zookeeper/myid && \ tail -6 /etc/zookeeper/conf/zoo .cfg && \ cat /etc/mesos/zk && cat /etc/mesos-master/quorum && \ cat /etc/mesos-master/hostname && cat /etc/marathon/conf/hostname && \ cat /etc/marathon/conf/master && cat /etc/marathon/conf/zk还可以创建 /etc/mesos-master/cluster 文件,写入集群的别名。
(1)关闭防火墙
slave1
#systemctl stop firewalld && systemctl disable firewalld
(2)添加mesos的yum源
slave1
#sudo rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
(3)安装mesos,marathon,zookeeper
slave1
#yum -y install mesos
(4)配置master信息
slave1
#echo 192.168.140.187 > /etc/mesos-slave/hostname #hostnamectl --static set-hostname slave-1.com #echo "192.168.140.187 slave-1 slave-1.com" >/etc/hosts
slave1
#vi /etc/mesos/zk 增加: zk: // 1 92.168.140.78 :2181,192.168.140.142:2181 /mesos
(5)启动slave
#systemctl start mesos-slave && systemctl enable mesos-slave #systemctl disable mesos-master访问mesos的管理页面。master_ip:5050
访问marathon的管理页面。master_ip:8080