本文前半部分参考转载自centos7yum安装mesos(1.0.0)+marathon+zookeeper+docker。
采用虚拟机建立一个master,一个slave进行学习。
================== 由于原文格式有点乱,进行整理如下 ==============
摘要:简介mesos+marathon+docker搭建的平台属于docker的集群管理,也属于资源调度管理平台,用于docker应用的集中化部署,云计算等。平台的优点抽象化平台的目的是将多台机器的资源集中管理并抽象成一个计算资源对象,如机房现在有上百台机器运行,则抽象化后平台的计算能力为100cores、500mem、200Tdisk。资源利用率高使用者可以将自己的docker应用直接交付给平台,平台来自动分配资源。
简介
mesos+marathon+docker搭建的平台属于docker的集群管理,也属于资源调度管理平台,用于docker应用的集中化部署,云计算等。
平台的优点
抽象化
平台的目的是将多台机器的资源集中管理并抽象成一个计算资源对象,如机房现在有上百台机器运行,则抽象化后平台的计算能力为100cores、500mem、200Tdisk。
资源利用率高
使用者可以将自己的docker应用直接交付给平台,平台来自动分配资源,至于这个应用部署到哪台机器上,使用者无须担心这个问题。而且这些资源是集中管理的,保证每台机器的资源都能最大化利用。
自动容灾
自动部署的应用,会在marathon里面管理,当部署应用的机器出现故障,marathon会自动将这些应用迁移到别的机器上。
类似的管理平台有docker官方的swarm,google的kubernetes,kubernetes出现的比较晚些,个人认为kubernetes比这套更完善一些,下次可以讲下kubernetes的相关介绍。
注:docker在centos6上面运行很不稳定,如果要在mesos上运行docker的话,建议用centos7
根据官网说明安装的过程记录,linux不同版本操作系统安装不太一样,官网看这里mesosphere官网安装
192.168.254.128(master)(mesos,marathon,zookeeper)
192.168.254.129(slave)(mesos)
由于mesos的master和slave节点之间是通过zookeeper进行关联通信的,而且zookeeper建议master至少是三个节点,这里测试用一个也可以
# 添加阿里云
yum wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 添加mesosphere源
sudo rpm -Uvh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
等同于:
--------------------
vim /etc/selinux/config
>>注释:# SELINUX=enforcing
>>注释:# SELINUXTYPE=targeted
>>添加:SELINUX=disabled
--------------------
sudo yum -y install mesos marathon
# (下面是安装zookeeper的,安装过的就不用安装了)
sudo yum -y install mesosphere-zookeeper
# 给每一个master的zookeeper设置一个唯一id
touch /var/lib/zookeeper/myid
echo 1 > /var/lib/zookeeper/myid
# 配置zookeeper的服务地址
vim /etc/zookeeper/conf/zoo.cfg
(在结尾添加) server.1=192.168.254.128:2888:3888
# 配置mesos(master和slave主要通过这个进行通信)
touch /etc/mesos/zk
echo "zk://192.168.254.128:2181/mesos" > /etc/mesos/zk
# 配置zookeeper,master的信息
touch /etc/mesos-master/quorum
echo 1 > /etc/mesos-master/quorum
# note:(在里面添加一个数字,数字大小不小于master的数量除以2,这里测试一个master,填1就可以)
## 其它配置
touch /etc/mesos-master/ip
echo "192.168.254.128" > /etc/mesos-master/ip
# (添加master的ip,默认是127.0.0.1,只做显示用)
touch /etc/mesos-master/hostname
# (添加master的hostname,默认为localhost,主要在mesos集群间使用,不是机器的hostname,只做显示用)
echo "192.168.254.128" > /etc/mesos-master/hostname
这个设置和上面配置mesos的hostname效果一样,不配置会显示默认的localhost,不影响使用
mkdir -p /etc/marathon/conf/
# touch hostname echo 192.168.254.128 | sudo tee /etc/marathon/conf/hostname
echo 192.168.254.128 /etc/marathon/conf/hostname
#关机开启启动
systemctl stop mesos-slave.service
systemctl disable mesos-slave.service
#设置开机启动
systemctl enable mesos-master.service
systemctl enable marathon.service
systemctl enable zookeeper.service
# zookeeper 启动
## service zookeeper start(stop,restart)
systemctl start zookeeper
# mesos-master启动
## service mesos-master start(stop,restart)
systemctl start mesos-master
# marathon启动
## service marathon start(stop,restart)
systemctl start marathon
#安装mesos
sudo yum -y install mesos
#安装docker
curl -fsSL https://get.docker.com/ | sh
# 配置mesos(master和slave主要通过这个进行通信)
touch /etc/mesos/zk
# 注意该地址要写入master地址进行通信 master ip
echo "zk://192.168.254.128:2181/mesos" > /etc/mesos/zk
# 其它配置
touch /etc/mesos-slave/ip
# (添加slave的ip,默认是127.0.0.1,只做显示用)
echo "192.168.254.129" > /etc/mesos-slave/ip
touch /etc/mesos-slave/hostname
# (添加slave的hostname,默认为localhost,主要在mesos集群间使用,不是机器的hostname,只做显示用)
echo "192.168.254.129" > /etc/mesos-slave/hostname
# 配置docker启动(注:如果机器上面没有安装docker,配置下面的会导致slave节点启动不了)
echo 'docker,mesos' > /etc/mesos-slave/containerizers
echo '5mins' > /etc/mesos-slave/executor_registration_timeout
##关闭开机启动
sudo systemctl stop mesos-master.service
sudo systemctl disable mesos-master.service
##设置开机启动
systemctl enable mesos-slave.service
systemctl enable docker.service
# mesos-slave启动
## service mesos-slave start(stop,restart)
systemctl start mesos-slave
## service docker start
systemctl start docker
在网页中访问ui界面,如果上述步骤不能实现marathon UI的展现,可尝试以下步骤实现marathon的配置。
参考官网,下载marathon,或者直接运行下载
curl -O http://downloads.mesosphere.com/marathon/v1.5.1/marathon-1.5.1.tgz
tar xzf marathon-1.5.1.tgz
cd marathon-1.5.0-96-gf84298d/
./bin/marathon --master zk://192.168.254.128:2181/mesos --zk zk://192.168.254.128:2181/marathon
参考:
https://segmentfault.com/q/1010000004296253 (加鸡腿)
https://blog.csdn.net/fujianfafu/article/details/80697524
https://blog.csdn.net/mnasd/article/details/79829154
https://blog.csdn.net/myjbase/article/details/79608571