服务器架构 主机名 | IP | 安装服务 | mesos-master | 192.168.56.7 | docker、mesos-master、mesos-slave、marathon、zookeeper | mesos-slave | 192.168.56.8 | docker、mesos-slave、zookeeper |
系统环境 # uname -r 3.10.0-229.el7.x86_64 # cat /etc/redhat-release CentOS Linuxrelease 7.1.1503 (Core) 配置hosts # vim /etc/hosts 192.168.56.7 mesos-master 192.168.56.8 mesos-slave 安装docker mesos-master 安装docker [iyunv@mesos-master~]# yum install -y docker [iyunv@mesos-master~]# systemctl enable docker [iyunv@mesos-master~]# systemctl start docker 创建nginx镜像 [iyunv@mesos-master~]# docker pull nginx mesos-slave 安装docker [iyunv@mesos-slave~]# yum install -y docker [iyunv@mesos-slave~]# systemctl enable docker [iyunv@mesos-slave~]# systemctl start docker 创建nginx镜像 [iyunv@mesos-master~]# docker pull nginx 部署zookeeper mesos-master 安装依赖 [iyunv@mesos-master~]# yum install -y java-1.8.0-openjdk-devel java-1.8.0-openjdk 下载zookeeper [iyunv@mesos-master~]# mkdir /application root@mesos-master~]# cd /application/ [iyunv@mesos-masterapplication]# curl -O http://apache.fayea.com/zookeeper/stable/zookeeper-3.4.6.tar.gz [iyunv@mesos-masterapplication]# tar xf zookeeper-3.4.6.tar.gz [iyunv@mesos-masterapplication]# ln -s /application/zookeeper-3.4.6 /application/zookeeper 配置zookeeper [iyunv@mesos-masterapplication]# cd zookeeper/conf/ [iyunv@mesos-masterconf]# grep -v "#" zoo_sample.cfg >zoo.cfg [iyunv@mesos-masterconf]# vim zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/application/zookeeper/data clientPort=2181 server.1=192.168.56.7:2333:3222 server.2=192.168.56.8:2333:3222 [iyunv@mesos-masterconf]# mkdir ../data [iyunv@mesos-masterconf]# echo 1 >../data/myid [iyunv@mesos-masterconf]# cd 启动zookeeper [iyunv@mesos-master~]# /application/zookeeper/bin/zkServer.sh start JMX enabled bydefault Using config:/application/zookeeper/bin/../conf/zoo.cfg Startingzookeeper ... STARTED [iyunv@mesos-master~]# /application/zookeeper/bin/zkServer.sh status JMX enabled bydefault Using config:/application/zookeeper/bin/../conf/zoo.cfg Error contactingservice. It is probably not running. **出现Error主要是由于mesos-slave没有启动 mesos-slave 安装依赖 [iyunv@mesos-slave~]# yum install -y java-1.8.0-openjdk-devel java-1.8.0-openjdk 下载zookeeper [iyunv@mesos-slave~]# mkdir /application [iyunv@mesos-slave~]# cd /application/ [iyunv@mesos-slaveapplication]# curl -O http://apache.fayea.com/zookeeper/stable/zookeeper-3.4.6.tar.gz [iyunv@mesos-slaveapplication]# tar xf zookeeper-3.4.6.tar.gz [iyunv@mesos-slaveapplication]# ln -s /application/zookeeper-3.4.6 /application/zookeeper 配置zookeeper [iyunv@mesos-slaveapplication]# cd zookeeper/conf/ [iyunv@mesos-slaveconf]# grep -v "#" zoo_sample.cfg >zoo.cfg [iyunv@mesos-slaveconf]# vim zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/application/zookeeper/data clientPort=2181 server.1=192.168.56.7:2333:3222 server.2=192.168.56.8:2333:3222 [iyunv@mesos-slaveconf]# mkdir ../data [iyunv@mesos-slaveconf]# echo 2 >../data/myid [iyunv@mesos-slaveconf]# cd 启动zookeeper [iyunv@mesos-slave~]# /application/zookeeper/bin/zkServer.sh start 部署mesos、marathon mesos-master 下载mesosphere仓库 [iyunv@mesos-master~]# rpm -ivh http://repos.mesosphere.com/el/7 ... repo-7-1.noarch.rpm 安装mesos marathon [iyunv@mesos-master~]# yum install -y mesos marathon 配置marathon使用mesos调用docker
[iyunv@mesos-master~]# echo 'docker,mesos' >/etc/mesos-slave/containerizers 启动mesos、marathon [iyunv@mesos-master~]# systemctl enable mesos-master mesos-slave marathon [iyunv@mesos-master~]# systemctl start mesos-master mesos-slave marathon mesos-slave 下载mesosphere仓库 [iyunv@mesos-slave~]# rpm -ivh http://repos.mesosphere.com/el/7 ... repo-7-1.noarch.rpm 安装mesos [iyunv@mesos-slave~]# yum install -y mesos 添加zookeeper配置 [iyunv@mesos-slave~]# vim /etc/mesos/zk zk://192.168.56.7:2181,192.168.56.8:2181/mesos 配置marathon使用mesos调用docker [iyunv@mesos-slave~]# echo 'docker,mesos' > /etc/mesos-slave/containerizers 启动mesos [iyunv@mesos-slave~]# systemctl enable mesos-slave [iyunv@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文件 [iyunv@mesos-master~]# 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 [iyunv@mesos-master ~]# curl -X POSThttp://192.168.56.7:8080/v2/apps-d @nginx.json -H "Content-type:application/json"
查看mesos
查看marathon
使用docker查看 [iyunv@mesos-slave~]# docker ps CONTAINERID IMAGE COMMAND CREATED STATUS PORTS NAMES 5df80cefaee8 nginx "nginx -g 'daemonoff" 6 minutes ago Up 6 minutes 443/tcp, 0.0.0.0:31125->80/tcp mesos-8a9358e1-275d-46ec-ba5c-e57e0578f354-S1.071c4b7a-55d0-41f6-9259-077373fb8e18
|