设为首页 收藏本站
查看: 1067|回复: 0

[经验分享] 搭建 Marathon+Mesos+Docker 架构

[复制链接]

尚未签到

发表于 2019-2-21 07:45:44 | 显示全部楼层 |阅读模式
Mesos

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

Mesos 缺点 :


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


Mesos 优点 :


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


Mesos 结构大概图


组成 :


  •   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网络源
[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

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





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-675053-1-1.html 上篇帖子: Docker讲解与实战,精炼易懂! 下篇帖子: Docker安装(yum安装)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表