注意,以下安装过程均是在CentOS 7 中 root 下完成,如果是普通用户,用 sudo 提权的方式安装。
一、环境
1、配置三台服务器,三个mesos-master 节点,三个 slave 节点,我用测试 IP
主机名 | IP 地址 | 所安装的服务 |
mesos-node1 | eth0:192.168.10.227 | mesos-master,mesos-slave,marathon,zookeeper,haproxy |
mesos-node2 | eth0:192.168.10.228 | mesos-master,mesos-slave,marathon,zookeeper,haproxy |
mesos-node3 | eth0:192.168.10.229 | mesos-master,mesos-slave,marathon,zookeeper,haproxy |
2、查看内核版本
[root@mesos-node1 ~]# cat /etc/RedHat-release
CentOS Linux release 7.2.1511 (Core)
[root@mesos-node1 ~]# uname -r
3.10.0-327.el7.x86_64
[root@mesos-node1 ~]# uname -a
Linux mesos-node1 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@mesos-node1 ~]#
注意以下部分在三台服务器上都要执行
3、关闭 SELinux
【临时】
[root@mesos-node1 ~]]# setenforce 0
[root@mesos-node1 ~]]# getenforce
Permissive
【永久】
更改配置文件/etc/selinux/config 将 SELINUX=enforcing 修改为 SELINUX=disabled 重启生效,如果不想重启就将上面临时修改的也执行一次。
4、关闭防火墙
systemctl stop firewalld
5、配置 host 解析
[root@mesos-node1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.227 mesos-node1
192.168.10.228 mesos-node2
192.168.10.229 mesos-node3
[root@mesos-node1 ~]#
二、部署 docker
1、利用 yum 安装 docker
yum install docker
2、启动 docker
systemctl start docker.service
3、加入开机自启动服务
systemctl enable docker.service
4、创建 docker 用户组,避免使用 sudo
usermod -aG docker lcm
三 、部署 zookeeper
1、安装 Java
yum install -y java
2、查看 Java 版本
[root@mesos-node1 ~]# java -version
openjdk version “1.8.0_121” #<=====OpenJDK1.8
OpenJDK Runtime Environment (build 1.8.0_121-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)
[root@mesos-node1 ~]#
3、进入源码安装目录下载 zookeeper 稳定版 3.4.9 并安装
cd /usr/local/src/
wget http://mirrors.cnnic.cn/apache/zookeeper/stable/zookeeper-3.4.9.tar.gz
tar xf zookeeper-3.4.9.tar.gz
mv zookeeper-3.4.9 /usr/local/
4、创建软连接,方便以后升级时用
ln -s /usr/local/zookeeper-3.4.9/ /usr/local/zookeeper
5、修改 zookeeper 配置文件,只修改一个,然后分发到其他两台上
cd /usr/local/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
[root@mesos-node1 ~]# grep “^[a-z]” zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181
server.1=mesos-node1:2888:3888
server.2=mesos-node2:2888:3888
server.3=mesos-node3:2888:3888
[root@mesos-node1 ~]#
6、创建 dataDir 和 dataLogDir 目录
mkdir -p /usr/local/zookeeper/data /usr/local/zookeeper/logs
7、在三台服务器上创建 myid 文件,里面的数据要和配置文件里面的 server.后面的数字一样,表示这是第几台服务器
echo “1” >/usr/local/zookeeper/data/myid
echo “1” >/usr/local/zookeeper/data/myid
echo “1” >/usr/local/zookeeper/data/myid
8、启动 zookeeper
cd /usr/local/zookeeper
./bin/zkServer.s start
9、查看角色状态
./bin/zkServer.sh status
可以看到两个 follower,一个 leader
10、尝试连接 zookeeper
./bin/zkCli.sh #<=====连接当前 zookeeper
./bin/zkCli.sh -server 192.168.10.228:2181 #<======连接远程 zookeeper
[zk: 192.168.10.228:2181(CONNECTED) 0] ls / #<======可以用 ls /查看
[zookeeper]
[zk: 192.168.10.228:2181(CONNECTED) 1]
OK,zookeeper 安装成功,接下来安装 mesos
三、mesos+marathon 集群部署
1、安装 mesosphere 仓库
rpm -ivh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
2、安装 mesos 和 marathon
yum -y install mesos marathon
3、增加 zookeeper 配置
[root@mesos-node1 ~]# cat /etc/mesos/zk
zk://192.168.10.227:2181,192.168.10.228:2181,192.168.10.229:2181/mesos
[root@mesos-node1 ~]#
4、配置 mesos-hostname
echo 本地 IP 地址 | tee /etc/mesos-master/ip
echo 本地 IP 地址 | tee /etc/mesos-master/hostname
echo 本地 IP 地址 | tee /etc/mesos-slave/ip
echo 本地 IP 地址 | tee /etc/mesos-slave/hostname
echo 2 > /etc/mesos-master/quorum #这个数字要大于安装的 master 节点的总数的 0.5 倍,即一半
5、配置 mesos-master slave marathon 开机自启动并启动
systemctl enable mesos-master mesos-slave marathon
systemctl start mesos-master mesos-slave marathon
6、在浏览器打开任意一台服务的 mesos
7、如果出现下面的界面,安装成功
8、运行一个 mesos 任务来测试
MASTER=$(mesos-resolve `cat /etc/mesos/zk`) #<=====获取主服务器的 IP 地址
mesos-execute –master=$MASTER –name=”cluster-test”–command=”sleep 60″ #如果没有发现任务在运行,可尝试修改–name=”cluster-test”,这个名字可以随意起
9、打开浏览器查看
至此环境已经搭建成功