搭建 Marathon+Mesos+Docker 架构

本文介绍如何搭建Mesos集群并配置Marathon服务。包括Mesos的安装配置、Zookeeper集群设置、Mesos Master与Slave节点启动及Marathon服务部署等关键步骤。

Mesos

Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核。(分布式系统管理调度和资源分配机制)

Mesos 缺点 :

需要独立部署mesos-slave 进程;依赖 framework 的功能;成本比较高;

Mesos 优点 :

可以管理 docker 容器;稳定性具有保障;

Mesos 结构大概图

搭建 Marathon+Mesos+Docker 架构

组成 :
  • framework:计算机框架

  • executor:执行器task任务

  • mesos-master:管理slave 调度分配资源

  • mesos-slave:执行task

本案环境

主机名系统IP地址软件包
masterCentOS 7.4192.168.100.136jdk、mesos、zookeeper、marathon
master1CentOS 7.4192.168.100.129jdk、mesos、zookeeper
master2CentOS 7.4192.168.100.138jdk、mesos、zookeeper
slaveCentOS 7.4192.168.100.139jdk、mesos、docker
slave1CentOS 7.4192.168.100.140jdk、mesos、docker

安装 Mesos (所有主机搭建)

1.配置 java 环境 :

systemctl stop firewalld.service
setenforce 0

uname -r    #查看内核版本(需要内核3.10以上)
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/   
cd /usr/local/
mv jdk1.8.0_91/ java   #重命名
vim /etc/profile    

export JAVA_HOME=/usr/local/java   
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

source /etc/profile   #刷新

2.安装环境 :

yum groupinstall -y "Development Tools"   #安装开发工具
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
#添加apache-maven源
yum install -y apache-maven python-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel apr-util-devel subversion-devel
#安装依赖包 
vim /etc/yum.repos.d/wandisco-svn.repo   #配置WANdiscoSVN网络源

[WANdiscoSVN]
name=WANdisco SVN Repo 1.9
enabled=1
baseurl=http://opensource.wandisco.com/centos/7/svn-1.9/RPMS/$basearch/
gpgcheck=1
gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco

3.配置Mesos环境变量 :

vim /etc/profile

export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so
export MESOS_NATIVE_LIBRARY=/usr/local/lib/libmesos.so

source /etc/profile

3.安装 mesos :

wget http://archive.apache.org/dist/mesos/0.25.0/mesos-0.25.0.tar.gz  #下载mesos包
tar zxvf mesos-0.25.0.tar.gz -C /opt/
mv mesos-0.25.0/ /root/
cd /root/mesos-0.25.0
mkdir build

cd build

../configure

make               #等待时间长
make check         #检查
make install 

配置 Mesos-master

1.修改主机名 :

hostnamectl set-hostname master   #所有master依次修改
bash   #立即生效

2.配置解析(所有主机添加) :

vim /etc/hosts
192.168.100.136 master
192.168.100.129 master1
192.168.100.138 master2
192.168.100.139 slave
192.168.100.140 slave1

3.启动 mesos :

ln -sf /root/mesos-0.25.0/build/bin/mesos-master.sh /usr/sbin/mesos-master

mesos-master  #启动 

4.配置 master-zookeeper :

tar zxvf zookeeper-3.4.10.tar.gz -C /home/

cd /home/zookeeper-3.4.10/

mv conf/zoo_sample.cfg conf/zoo.cfg   #配置文件模板重命名,不能同时存在

5.编辑 zookeeper 配置文件 :

vim /home/zookeeper-3.4.10/conf/zoo.cfg

dataDir=/home/zookeeper-3.4.10/data         #重新定义 datadir 位置
dataLogDir=/home/zookeeper-3.4.10/datalog   #data、datalog 不存在创建
server.1=192.168.100.136:2888:3888          #三台master服务器地址
server.2=192.168.100.129:2888:3888
server.3=192.168.100.138:2888:3888
格式 :server.A=B:C:D
A:表示第几号服务器
B:服务器IP地址
C: 群集中 leader 服务器交换信息端口
D:在 leader 选举时所用的端口
scp /home/zookeeper-3.4.10/conf/zoo.cfg 192.168.100.138:/home/zookeeper-3.4.10/conf/
#把配置文件服务复制过去,前提所有master配置文件已修改
scp /home/zookeeper-3.4.10/conf/zoo.cfg 192.168.100.139:/home/zookeeper-3.4.10/conf/
[root@master ~]# cd /home/zookeeper-3.4.10/
[root@master zookeeper-3.4.10]# mkdir data
[root@master zookeeper-3.4.10]# mkdir datalog
[root@master zookeeper-3.4.10]# echo 1 > data/myid   #添加相对应的第几号服务器  依次添加 要和配置文件相对应
[root@master zookeeper-3.4.10]# cat data/myid 
1

6.启动服务 :

[root@master zookeeper-3.4.10]# ./bin/zkServer.sh start conf/zoo.cfg   #开启服务
ZooKeeper JMX enabled by default
Using config: conf/zoo.cfg
Starting zookeeper ... STARTED

7.查看状态 :

[root@master zookeeper-3.4.10]#  ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/q/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower  #负责接收客户请求,向客户端返回结果,并在选举过程中参与投票

[root@master1 zookeeper-3.4.10]#  ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/q/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower

[root@master2 zookeeper-3.4.10]#  ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/q/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: leader   #负责投票发起和决议、更新系统状态。

8.分别开启 mesos-master (和mesos-slave 一起启动) :

[root@master zookeeper-3.4.10]#mesos-master --work_dir=/home/q/mesos/data \
--log_dir=/home/q/mesos/logs --no-hostname_lookup \
--ip=0.0.0.0 --zk=zk://192.168.100.136:2181/mesos --quorum=2
#--quorum=2  还剩余2台服务器

[root@master1 zookeeper-3.4.10]#mesos-master --work_dir=/home/q/mesos/data \
--log_dir=/home/q/mesos/logs --no-hostname_lookup \
--ip=0.0.0.0 --zk=zk://192.168.100.129:2181/mesos --quorum=2  

[root@master2 zookeeper-3.4.10]#mesos-master --work_dir=/home/q/mesos/data \
--log_dir=/home/q/mesos/logs --no-hostname_lookup \
--ip=0.0.0.0 --zk=zk://192.168.100.138:2181/mesos --quorum=2

配置 Mesos-slave

1.修改主机名 :

hostnamectl set-hostname slave   #所有 slave 依次修改
bash   #立即生效

2.配置解析(所有主机添加) :

vim /etc/hosts
192.168.100.136 master
192.168.100.129 master1
192.168.100.138 master2
192.168.100.139 slave
192.168.100.140 slave1

3.建立软连接 :

ln -sf /opt/mesos-0.25.0/build/bin/mesos-slave.sh /usr/sbin/mesos-slave

4.安装 docker :

yum install docker -y
systemctl start docker.service
systemctl enable docker.service  

5.启动 mesos-slave :

mesos-slave --containerizers="mesos,docker" \
--work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs \
--master=zk://192.168.100.136:2181,192.168.100.129:2181,192.168.100.138:2181/mesos \
--no-hostname_lookup --ip=0.0.0.0

测试访问 mesos-master

随意访问一台 master ,若指定非 leader 状态的 mesos-master 地址,页面会自动跳转 leader 状态下的地址 :

搭建 Marathon+Mesos+Docker 架构
搭建 Marathon+Mesos+Docker 架构

部署 Marathon

1.安装服务(只需要在一台 master 部署) :

http://downloads.mesosphere.com/marathon/v0.15.2/marathon-0.15.2.tgz

tar zxvf marathon-0.15.2.tgz -C /home/

2.将 Marathon 安装到多 mesos-master 环境的 master 主机上 :

cd /home/marathon-0.15.2
[root@master marathon-0.15.2]#./bin/start --hostname 192.168.100.136 --master zk://192.168.100.136:2181,192.168.100.129:2181,192.168.100.138:2181/mesos --http_address 0.0.0.0

测试访问 marathon

搭建 Marathon+Mesos+Docker 架构

转载于:https://blog.51cto.com/13640803/2161043

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值