咱们一直在说Docker是革命性的技术,那到底如何体现出它的革命性?就好像Hyper-V同样,单一的Hyper-V无非就是虚拟机,那如何利用System Center构造一套IaaS私有云就是重头戏了,而Docker,一个最适合做为PaaS的载体,要利用什么来构造它的重头戏呢?docker
今天开始,将以全新的视角来介绍Docker如何利用Mesos+Marathon来调度Docker,本篇涉及架构以下:tomcat
环境介绍:架构
HostNametcp |
IPide |
Rolespa |
CVM013d |
*.132unix |
Masterrest |
CVM02server |
*.21 |
Docker Slave |
CVM03 |
*.118 |
Docker Slave |
CVM04 |
*.10 |
Docker Slave |
如下配置所有在Master节点与Slave节点作:
一、 登陆四台机子,在Hostname中配置以下信息:
二、 安装Docker(能够根据Docker安装篇进行安装)
三、 配置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
四、 启动Docker与配置Docker 用户(Demo环境下使用root),而后进行从新加载:
sudo usermod -aG docker roo
systemctl daemon-reloadt
五、 安装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作:
一、 配置Zookeeper:
sudo sh -c 'echo "server.1= MasterIP:2888:3888" >> /etc/zookeeper/conf/zoo.cfg'
sudo systemctl start zookeeper
sudo systemctl enable zookeeper
二、 配置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
三、 配置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
验证:
一、 在Slave节点上下载相关的Images(暂时拿consol/tomcat-7.0作实验):
docker pull consol/tomcat-7.0
二、 打开http://MasterIP:5050,检查Slave节点是否激活成功:
三、 打开http://MasterIP:8080,点击Create Group:
四、 进入刚刚建立的Group后,点击Create Application:
五、 输入标识名称:
六、 将第一步镜像的名字填入Docker Container:
七、 将Tomcat的Ports添加到映射的Container里,而后切到JSON Mode检查下配置是否正确:
八、 点击Create Application:
这样就完成了Docker+Mesos+Marathon架构的搭建,最终效果: