简介
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官网安装
1.环境
- 硬件环境
192.168.1.24(master)(mesos,marathon,zookeeper)
192.168.1.25(slave)(mesos)
192.168.1.26(slave)(mesos)
由于mesos的master和slave节点之间是通过zookeeper进行关联通信的,而且zookeeper建议master至少是三个节点,这里测试用一个也可以
2.准备工作
- 修改yum源,master和slave节点上都需要做
添加阿里云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
3.master节点安装
3.1.安装mesos、marathon、zookeeper
- master1
sudo yum -y install mesos marathon
(下面是安装zookeeper的,安装过的就不用安装了)
sudo yum -y install mesosphere-zookeeper
3.2.zookeeper配置
- 给每一个master的zookeeper设置一个唯一id
touch /var/lib/zookeeper/myid
echo 1 > /var/lib/zookeeper/myid
- 配置zookeeper的服务地址
vi /etc/zookeeper/conf/zoo.cfg
(在结尾添加)
server.1=192.168.1.24:2888:3888
3.3.mesos-master配置
- 配置mesos(master和slave主要通过这个进行通信)
touch /etc/mesos/zk
echo "zk://192.168.1.24:2181/mesos" > /etc/mesos/zk
- 配置zookeeper,master的信息
touch /etc/mesos-master/quorum
echo 1 > /etc/mesos-master/quorum
(在里面添加一个数字,数字大小不小于master的数量除以2,这里测试一个master,填1就可以)
- 其它配置
touch /etc/mesos-master/ip
echo "192.168.1.24" > /etc/mesos-master/ip
(添加master的ip,默认是127.0.0.1,只做显示用)
touch /etc/mesos-master/hostname
echo "192.168.1.24" > /etc/mesos-master/hostname
(添加master的hostname,默认为localhost,主要在mesos集群间使用,不是机器的hostname,只做显示用)
3.4.marathon配置
这个设置和上面配置mesos的hostname效果一样,不配置会显示默认的localhost,不影响使用
mkdir -p /etc/marathon/conf/ && touch hostname
echo 192.168.1.24 | sudo tee /etc/marathon/conf/hostname
3.5.服务设置
- 关闭mesos-slave,并设置不开机启动
#关机开启启动
systemctl stop mesos-slave.service
systemctl disable mesos-slave.service
#设置开机启动
systemctl enable mesos-master.service
systemctl enable marathon.service
systemctl enable zookeeper.service
3.6.服务启动
注意:如果master多个,每一个机器上面都要启动
- zookeeper 启动
service zookeeper start(stop,restart)
- mesos-master启动
service mesos-master start(stop,restart)
- marathon启动
service marathon start(stop,restart)
4.slave节点安装
4.1.安装mesos,docker
- master1
#安装mesos
sudo yum -y install mesos
#安装docker
curl -fsSL https://get.docker.com/ | sh
4.2.mesos-slave配置
- 配置mesos(master和slave主要通过这个进行通信)
touch /etc/mesos/zk
echo "zk://192.168.1.24:2181/mesos" > /etc/mesos/zk
- 其它配置
touch /etc/mesos-slave/ip
echo "192.168.1.25" > /etc/mesos-slave/ip
(添加slave的ip,默认是127.0.0.1,只做显示用)
touch /etc/mesos-slave/hostname
echo "192.168.1.25" > /etc/mesos-slave/hostname
(添加slave的hostname,默认为localhost,主要在mesos集群间使用,不是机器的hostname,只做显示用)
- 配置docker启动(注:如果机器上面没有安装docker,配置下面的会导致slave节点启动不了)
echo 'docker,mesos' > /etc/mesos-slave/containerizers
echo '5mins' > /etc/mesos-slave/executor_registration_timeout
4.3.服务设置
- 关闭mesos-master,并设置不开机启动
##关闭开机启动
sudo systemctl stop mesos-master.service
sudo systemctl disable mesos-master.service
##设置开机启动
systemctl enable mesos-slave.service
systemctl enable docker.service
4.4.服务启动
注意:如果slave多个,每一个机器上面都要启动
- mesos-slave启动
service mesos-slave start(stop,restart) service docker start
4.5.预览
- marathon
- mesos