我们一直在说Docker是革命性的技术,那到底如何体现出它的革命性?就好像Hyper-V一样,单一的Hyper-V无非就是虚拟机,那如何利用System Center构造一套IaaS私有云就是重头戏了,而Docker,一个最适合作为PaaS的载体,要利用什么来构造它的重头戏呢?

今天开始,将以全新的视角来介绍Docker如何利用Mesos+Marathon来调度Docker,本篇涉及架构如下:

环境介绍:

HostName

IP

Role

CVM01

*.132

Master

CVM02

*.21

Docker Slave

CVM03

*.118

Docker Slave

CVM04

*.10

Docker Slave


以下配置全部在Master节点与Slave节点做:

1、 登录四台机子,在Hostname中配置如下信息:

【VMCloud云平台】拥抱Docker(八)Mesos入门_第1张图片

2、 安装Docker(可以根据Docker安装篇进行安装)

clip_p_w_picpath003[6]

3、 配置Docker:

sudo vi /lib/systemd/system/docker.service


修改ExecStart如下:

ExecStart=/usr/bin/docker daemon -H fd:// -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock


4、 启动Docker与配置Docker 用户(Demo环境下使用root),然后进行重新加载:

sudo usermod -aG docker roo

systemctl daemon-reloadt

5、 安装Mesos Marathon Zookeeper;

sudo rpm -Uvh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm

sudo yum -y install mesos marathon

sudo yum -y install mesosphere-zookeeper


以下配置全部在Master做:

1、 配置Zookeeper:

sudo sh -c 'echo "server.1= MasterIP:2888:3888" >> /etc/zookeeper/conf/zoo.cfg'

sudo systemctl start zookeeper

sudo systemctl enable zookeeper

2、 配置Mesos Master:

sudo sh -c 'echo "zk://MasterIP:2181/mesos" > /etc/mesos/zk'

sudo sh -c 'echo " MasterIP" > /etc/mesos-master/hostname'

sudo systemctl restart mesos-master

sudo systemctl enable mesos-master

3、 配置Marathon:

sudo mkdir -p /etc/marathon/conf

sudo sh -c 'echo "zk:// MasterIP:2181/marathon" > /etc/marathon/conf/zk'

sudo sh -c 'echo "zk:// MasterIP:2181/mesos" > /etc/marathon/conf/master'

sudo sh -c 'echo " MasterIP" > /etc/marathon/conf/hostname'

sudo systemctl restart marathon

sudo systemctl enable marathon

以下配置全部在Slave做:

配置Mesos Slave:

sudo sh -c 'echo "zk://MasterIP:2181/mesos" > /etc/mesos/zk'

sudo sh -c 'echo "docker,mesos" > /etc/mesos-slave/containerizers'

sudo sh -c 'echo "3mins" > /etc/mesos-slave/executor_registration_timeout'

sudo sh -c 'echo "SlaveIP" > /etc/mesos-slave/hostname'

sudo systemctl restart mesos-slave

sudo systemctl enable mesos-slave

验证:

1、 在Slave节点上下载相关的Images(暂时拿consol/tomcat-7.0做实验):

docker pull consol/tomcat-7.0

clip_p_w_picpath005[6]

2、 打开http://MasterIP:5050,检查Slave节点是否激活成功:

【VMCloud云平台】拥抱Docker(八)Mesos入门_第2张图片

3、 打开http://MasterIP:8080,点击Create Group:

【VMCloud云平台】拥抱Docker(八)Mesos入门_第3张图片

4、 进入刚刚创建的Group后,点击Create Application:

【VMCloud云平台】拥抱Docker(八)Mesos入门_第4张图片

5、 输入标识名称:

【VMCloud云平台】拥抱Docker(八)Mesos入门_第5张图片

6、 将第一步镜像的名字填入Docker Container:

【VMCloud云平台】拥抱Docker(八)Mesos入门_第6张图片

7、 将Tomcat的Ports添加到映射的Container里,然后切到JSON Mode检查下配置是否正确:

【VMCloud云平台】拥抱Docker(八)Mesos入门_第7张图片

【VMCloud云平台】拥抱Docker(八)Mesos入门_第8张图片

8、 点击Create Application:

clip_p_w_picpath021[6]

这样就完成了Docker+Mesos+Marathon架构的搭建,最终效果:

【VMCloud云平台】拥抱Docker(八)Mesos入门_第9张图片    
【VMCloud云平台】拥抱Docker(八)Mesos入门_第10张图片

clip_p_w_picpath026[6]


【VMCloud云平台】拥抱Docker(八)Mesos入门_第11张图片