欲忘树 发表于 2018-5-29 12:51:57

mesos+marathon管理docker集群


服务器架构
主机名
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
# yum install -y docker
# systemctl enable docker
# systemctl start docker
创建nginx镜像
# docker pull nginx
mesos-slave
安装docker
# yum install -y docker
# systemctl enable docker
# systemctl start docker
创建nginx镜像
# docker pull nginx
部署zookeeper
mesos-master
安装依赖
# yum install -y java-1.8.0-openjdk-devel java-1.8.0-openjdk
下载zookeeper
# mkdir /application
root@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.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
# mkdir ../data
# echo 1 >../data/myid
# cd
启动zookeeper
# /application/zookeeper/bin/zkServer.sh start
JMX enabled bydefault
Using config:/application/zookeeper/bin/../conf/zoo.cfg
Startingzookeeper ... STARTED
# /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
安装依赖
# 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.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
# mkdir ../data
# echo 2 >../data/myid
# cd
启动zookeeper
# /application/zookeeper/bin/zkServer.sh start
部署mesos、marathon
mesos-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 marathon
mesos-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/zk
zk://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 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/tcpmesos-8a9358e1-275d-46ec-ba5c-e57e0578f354-S1.071c4b7a-55d0-41f6-9259-077373fb8e18
页: [1]
查看完整版本: mesos+marathon管理docker集群