【编者的话】Docker技术炙手可热,但是对于初创企业如何利用Docker这门新技术来解决内网开发或者测试环境的快速部署,解放运维并提高工作效率,尤其在创业之初人力资源不足的情况下,更为重要。为此我和公司一位开发同学一起研究的关于Docker快速部署应用的解决方案架构,下面是整个方案部署的步骤,由于资源有限过程中有问题还望大家指正交流,谢谢!
架构图 部署说明:注意:
1. 平台部署以虚拟机为基础,除DNS服务器系统为CentOS6.5之外,所有虚拟机系统为Centos7.0。
2. VM系统需要设置selinux为允许或者关闭,以及关闭默认系统防火墙。 安装过程:(dns-registry-zk-mesos-marathon-consul-nginx-consul-template)
1)安装docker软件,部署说明中需要docker环境的都需要先安装软件,命令如下:
systemctl stop firewalld;systemctl disable firewalldsetenforce 0
sed -i s/^SELINUX=enforcing/SELINUX=permissive/ /etc/selinux/config
#设置Selinux为允许或者直接关闭。
yum install docker -y
vi /etc/sysconfig/docker
OPTIONS='--selinux-enabled --insecure-registry docker.smart.com'
#添加docker仓库信任
systemctl start docker
#启动docker服务
2)配置DNS解析smart.com区域文件
DNS服务器配置过程略。
#解析仓库域名服务器
echo nameserver 192.168.10.86 >>/etc/resolv.conf
#修改所有服务器域名服务器地址
3)配置Docker仓库
#创建docker运行映射目录
docker pull index.alauda.cn/juqkai/registry
#灵雀云拉一个仓库镜像
docker tag index.alauda.cn/juqkai/registry docker.smart.com/base/registry
#修改标签
docker run -d --restart=always -p 80:5000 -v /data/docker/registry:/tmp/registry-dev docker.smart.com/juqkai/registry
#运行registry服务
docker push docker.smart.com/base/registry
#将本地镜像推送到仓库
curl
#查看仓库中的相关镜像(可以使用Python json模块转换| python -m json.tool)
(可以按照此方法将Jenkins、nginx、zookeeper等镜像拉下来并推送到docker.smart.com仓库)
4)配置zookeeper
#创建配置文件映射目录(统一将docker运行的软件配置文件放到这个目录)
cat /data/docker/zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181
server.1=0.0.0.0:2888:3888
server.2=zk2.paas.smart.com:2888:3888
server.3=zk3.paas.smart.com:2888:3888
/data/docker/zookeeper/data/myid
echo "1" > /data/docker/zookeeper/data/myid
如果myid与zoo.cfg配置文件中的server.x相同则后边只能写0.0.0.0,2888为zk通讯端口,3888为选举端口,这里3个zk组成一个集群。
5)配置mesos-master和mesos-slave
rpm -iyum -y install mesos
mesos-master --ip=192.168.10.203 --hostname=master1.paas.smart.com --work_dir=/var/lib/mesos --quorum=1 --log_dir=/var/log/mesos --port=5050 --zk_session_timeout=120secs --zk=zk://zk1.paas.smart.com:2181,zk2.paas.smart.com:2181,zk3.paas.smart.com:2181/mesos
#启动master
这里--ip为本机 --hostname也为本机主机名 --quorum做为有效果结点数,值为(N+1) / 2,N是master节点数,配置log_dir主要是为了查看mesos日志。
mesos-slave --ip=192.168.10.136 --hostname=192.168.10.136 --log_dir=/var/log/mesos --containerizers=docker,mesos --master=zk://zk1.paas.smart.com:2181,zk2.paas.smart.com:2181,zk3.paas.smart.com:2181/mesos --executor_registration_timeout=5mins#启动slave 首次启动均在前台,没有问题可以使用nohup放到后台。