sunren 发表于 2019-2-21 07:45:44

搭建 Marathon+Mesos+Docker 架构

Mesos

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

Mesos 缺点 :


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


Mesos 优点 :


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


Mesos 结构大概图
http://i2.运维网.com/images/blog/201808/17/d2f877453ebec117eb38de76a702bbb0.png

组成 :


[*]  framework:计算机框架

[*]  executor:执行器task任务

[*]  mesos-master:管理slave 调度分配资源

[*]mesos-slave:执行task

本案环境




主机名
系统
IP地址
软件包




master
CentOS 7.4
192.168.100.136
jdk、mesos、zookeeper、marathon


master1
CentOS 7.4
192.168.100.129
jdk、mesos、zookeeper


master2
CentOS 7.4
192.168.100.138
jdk、mesos、zookeeper


slave
CentOS 7.4
192.168.100.139
jdk、mesos、docker


slave1
CentOS 7.4
192.168.100.140
jdk、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网络源

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/
# cd /home/zookeeper-3.4.10/
# mkdir data
# mkdir datalog
# echo 1 > data/myid   #添加相对应的第几号服务器依次添加 要和配置文件相对应
# cat data/myid
1
6.启动服务 :

# ./bin/zkServer.sh start conf/zoo.cfg   #开启服务
ZooKeeper JMX enabled by default
Using config: conf/zoo.cfg
Starting zookeeper ... STARTED
7.查看状态 :

#./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/q/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower#负责接收客户请求,向客户端返回结果,并在选举过程中参与投票
#./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/q/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
#./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 一起启动) :

#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台服务器
#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
#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 状态下的地址 :
http://i2.运维网.com/images/blog/201808/17/ca1c5ae5fcb84b5ea7b52642f5468466.jpg
http://i2.运维网.com/images/blog/201808/17/0f893a6561f22a7da8aabbf3cf5a3836.jpg


部署 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
#./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
http://i2.运维网.com/images/blog/201808/17/fd53f052bb1ec0c8d9a323e965cd8d84.jpg



页: [1]
查看完整版本: 搭建 Marathon+Mesos+Docker 架构