0x00 前言
Mesos是以与Linux内核同样的原则而创建的,不同点仅仅是在于抽象的层面。Mesos内核运行在每一个机器上,同时通过 API 为各种应用提供跨数据中心和云的资源管理调度能力。这些应用包括Hadoop、Spark、Kafka、Elastic Search。还可配合框架 Marathon 来管理大规模的Docker等容器化应用。
▲ Mesos架构图
0x01 环境说明
mesos-a(192.168.1.12) |
mesos-b(192.168.1.3) |
mesos-c(192.168.1.10) |
Docker |
JAVA |
Zookeeper |
Mesos |
0x02 准备工作
文中使用CentOS-7系统在虚拟机的环境下进行示范,部署mesos过程中每个虚拟机均要执行。由于后续需要安装zookeeper,需要对Selinux以及防火墙进行设置。
Ⅰ通过root执行命令
su root
Ⅱ设置Selinux状态
setenforce 0
Ⅲ查看Selinux状态,出现Permissive则为设置成功
getenforce
Ⅳ关闭防火墙
systemctl stop firewalld
0x03 安装Docker
Ⅰ下载并安装docker
yum install docker
Ⅱ启动docker服务
systemctl start docker.service
Ⅲ查看docker状态
systemctl status docker
Ⅳ设置开机启动
systemctl enable docker.service
Ⅴ创建用户组并加入
groupadd docker
usermod -aG docker mesos-x #--主机名称--
0x04 安装Java
Ⅰ下载安装Java,系统提示已经安装过Java,可能是创建虚拟机时系统自带
yum install java
Ⅱ查看Java版本
java -version
0x05 安装Zookeeper
Ⅰ下载Zookeeper
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
Ⅱ解压压缩包
tar xf apache-zookeeper-3.8.0-bin.tar.gz
Ⅲ将zookeeper移动到local文件夹下
mv apache-zookeeper-3.8.0-bin/ /usr/local
Ⅳ打开zookeeper文件
cd /usr/local/apache-zookeeper-3.8.0-bin
Ⅴ创建软链接
ln -s /usr/local/apache-zookeeper-3.8.0-bin/ /usr/local/zookeeper
0x06 配置环境变量
Ⅰ打开并查看conf文件夹
cd conf/
Ⅱ复制配置文件
cp zoo_sample.cfg zoo.cfg
Ⅲ查看主机IP
ip addr
Ⅳ编辑配置文件
vim zoo.cfg
Ⅴ修改文件路径,并设置路由
dataDir=/usr/local/zookeeper/data #--zookeeper安装目录中的data目录--
server.1=192.168.1.12:28888:3888
server.2=192.168.1.3:28888:3888
server.3=192.168.1.10:28888:3888
Ⅵ添加并更新环境变量
echo export PATH=\"\$PATH:/usr/local/zookeeper/bin\">>~/.bashrc
source ~/.bashrc
Ⅶ编辑hostsname文件
vim /etc/hostname
Ⅷ修改hostname文件
mesos-x #--主机名称--
Ⅸ重启虚拟机更新hostname
shutdown -r now
0x07 配置Zookeeper
Ⅰ重启后再次关闭防火墙,防止后续启动zookeeper出现错误
setenforce 0
getenforce
systemctl stop firewalld
Ⅱ打开hosts文件
vim /etc/hosts
Ⅲ编辑hosts文件,解析主机名
192.168.1.12 mesos-a
192.168.1.3 mesos-b
192.168.1.10 mesos-c
Ⅳ在zookeeper中添加文件
cd /usr/local/zookeeper #--需要自己创建数据和日志目录--
mkdir data
mkdir logs
Ⅴ写入内容到路径myid中
echo "1" >/usr/local/zookeeper/data/myid
echo "2" >/usr/local/zookeeper/data/myid
echo "3" >/usr/local/zookeeper/data/myid
Ⅵ打开zookeeper的bin目录
cd bin
Ⅶ启动zookeeper,虚拟机都要先启动成功后再查看状态
zkServer.sh start
Ⅷ查看zookeeper启动状态
zkServer.sh status
Ⅸ建立节点间连接
zkCli.sh -server 192.168.1.3:2181 #--leader节点为mesos-b,仅在leader节点主机上执行--
0x08 安装Mesos & Marathon
Ⅰ将Mesos加入yum仓库
rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-3.noarch.rpm
Ⅱ安装mesos和marathon
yum -y install mesos marathon
0x09 配置marathon文件
Ⅰ打开/etc/default/marathon目录
vim /etc/default/marathon
Ⅱ编辑marathon文件
MARATHON_MESOS_USER="root"
MARATHON_MASTER="zk://192.168.1.12:2181,192.168.1.3:2181,192.168.1.10:2181/mesos"
MARATHON_ZK="zk://192.168.1.12:2181,192.168.1.3:2181,192.168.1.10:2181/marathon"
0x10 部署mesos
Ⅰ添加节点间IP以建立连接,配置文件前需要先停用zookeeper
zkServer.sh stop
Ⅱ编辑zk文件
vim /etc/mesos/zk
Ⅲ修改zk文件内容,保存退出
zk://192.168.1.12:2181,192.168.1.3:2181,192.168.1.10:2181/mesos #--写入节点IP:端口号--
Ⅳ启动zookeeper
zkServer.sh start
Ⅴ查看zookeeper状态
zkServer.sh status
Ⅵ修改mesos和slave IP 以及hostname
echo 192.168.1.X | tee /etc/mesos-master/ip
echo 192.168.1.X | tee /etc/mesos-master/hostname
echo 192.168.1.X | tee /etc/mesos-slave/ip
echo 192.168.1.X | tee /etc/mesos-slave/hostname
echo "2" >/etc/mesos-master/quorum
Ⅶ启动mesos和marathon
systemctl start mesos-master mesos-slave marathon
0x11 访问Mesos & Marathon
Ⅰ打开浏览器输入虚拟机IP,端口号5050查看Mesos是否成功部署
192.168.1.12:5050
192.168.1.3:5050
192.168.1.10:5050
Ⅱ打开浏览器输入虚拟机IP,端口号8080查看Marathon是否成功部署
192.168.1.12:8080
192.168.1.3:8080
192.168.1.10:8080
0x12 总结
至此Mesos与Marathon部署完成。由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。