9780j 发表于 2016-2-15 10:00:32

mesos+marathon管理docker集群

服务器架构
主机名IP安装服务
mesos-master192.168.56.7 docker、mesos-master、mesos-slave、marathon、zookeeper
mesos-slave192.168.56.8docker、mesos-slave、zookeeper
系统环境# uname -r3.10.0-229.el7.x86_64# cat/etc/redhat-release CentOS Linuxrelease 7.1.1503 (Core)配置hosts# vim /etc/hosts192.168.56.7 mesos-master192.168.56.8 mesos-slave安装dockermesos-master安装docker# yum install -y docker# systemctl enable docker# systemctl start docker创建nginx镜像# docker pull nginxmesos-slave安装docker# yum install -y docker# systemctl enable docker# systemctl start docker创建nginx镜像# docker pull nginx部署zookeepermesos-master安装依赖# yum install -y java-1.8.0-openjdk-devel java-1.8.0-openjdk下载zookeeper# mkdir /applicationroot@mesos-master~]# cd /application/# curl -O http://apache.fayea.com/zookeeper/stable/zookeeper-3.4.6.tar.gz# tar xf zookeeper-3.4.6.tar.gz# ln -s /application/zookeeper-3.4.6 /application/zookeeper配置zookeeper# cd zookeeper/conf/# grep -v "#" zoo_sample.cfg >zoo.cfg# vim zoo.cfgtickTime=2000initLimit=10syncLimit=5dataDir=/application/zookeeper/dataclientPort=2181server.1=192.168.56.7:2333:3222server.2=192.168.56.8:2333:3222# mkdir ../data# echo 1 >../data/myid# cd启动zookeeper# /application/zookeeper/bin/zkServer.sh startJMX enabled bydefaultUsing config:/application/zookeeper/bin/../conf/zoo.cfgStartingzookeeper ... STARTED# /application/zookeeper/bin/zkServer.sh statusJMX enabled bydefaultUsing config:/application/zookeeper/bin/../conf/zoo.cfgError contactingservice. It is probably not running.**出现Error主要是由于mesos-slave没有启动mesos-slave安装依赖# yum install -y java-1.8.0-openjdk-devel java-1.8.0-openjdk下载zookeeper# mkdir /application# cd /application/# curl -O http://apache.fayea.com/zookeeper/stable/zookeeper-3.4.6.tar.gz# tar xf zookeeper-3.4.6.tar.gz # ln -s /application/zookeeper-3.4.6 /application/zookeeper配置zookeeper# cd zookeeper/conf/# grep -v "#" zoo_sample.cfg >zoo.cfg# vim zoo.cfgtickTime=2000initLimit=10syncLimit=5dataDir=/application/zookeeper/dataclientPort=2181server.1=192.168.56.7:2333:3222server.2=192.168.56.8:2333:3222# mkdir ../data# echo 2 >../data/myid# cd启动zookeeper# /application/zookeeper/bin/zkServer.sh start部署mesos、marathonmesos-master下载mesosphere仓库# rpm -ivh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm安装mesos marathon# yum install -y mesos marathon配置marathon使用mesos调用docker
# echo 'docker,mesos' >/etc/mesos-slave/containerizers启动mesos、marathon# systemctl enable mesos-master mesos-slave marathon# systemctl start mesos-master mesos-slave marathonmesos-slave下载mesosphere仓库# rpm -ivh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm安装mesos# yum install -y mesos添加zookeeper配置# vim /etc/mesos/zkzk://192.168.56.7:2181,192.168.56.8:2181/mesos配置marathon使用mesos调用docker# echo 'docker,mesos' > /etc/mesos-slave/containerizers启动mesos# systemctl enable mesos-slave# systemctl startmesos-slave
检查mesos和marathon在浏览器中输入http://192.168.56.7:5050看到如下图,表示mesos安装成功

在浏览器中输入http://192.168.56.7:8080看到如下图,表示marathon安装成功


使用marathon调度mesos创建docker容器编辑json文件# vim nginx.json{"id":"nginx","cpus":0.1,"mem":10,"instances": 1,"constraints":[["hostname", "UNIQUE",""]],"container": {    "type":"DOCKER",    "docker": {   "image": "nginx",   "network": "BRIDGE",   "portMappings": [      {"containerPort": 80,"hostPort": 0,"servicePort": 0, "protocol":"tcp" }      ]    }}}调用json# curl -X POSThttp://192.168.56.7:8080/v2/apps-d @nginx.json -H "Content-type:application/json"
查看mesos
查看marathon
使用docker查看# docker psCONTAINERID      IMAGE               COMMAND                  CREATED             STATUS            PORTS                            NAMES5df80cefaee8      nginx               "nginx -g 'daemonoff"   6 minutes ago       Up 6 minutes      443/tcp, 0.0.0.0:31125->80/tcpmesos-8a9358e1-275d-46ec-ba5c-e57e0578f354-S1.071c4b7a-55d0-41f6-9259-077373fb8e18
页: [1]
查看完整版本: mesos+marathon管理docker集群