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

[[email protected]~]# yum install -y docker

[[email protected]~]# systemctl enable docker

[[email protected]~]# systemctl start docker

创建nginx镜像

[[email protected]~]# docker pull nginx

mesos-slave

安装docker

[[email protected]~]# yum install -y docker

[[email protected]~]# systemctl enable docker

[[email protected]~]# systemctl start docker

创建nginx镜像

[[email protected]~]# docker pull nginx

部署zookeeper

mesos-master

安装依赖

[[email protected]~]# yum install -y java-1.8.0-openjdk-devel java-1.8.0-openjdk

下载zookeeper

[[email protected]~]# mkdir /application

[email protected]~]# cd /application/

[[email protected]]# curl -O http://apache.fayea.com/zookeeper/stable/zookeeper-3.4.6.tar.gz

[[email protected]]# tar xf zookeeper-3.4.6.tar.gz

[[email protected]]# ln -s /application/zookeeper-3.4.6 /application/zookeeper

配置zookeeper

[[email protected]]# cd zookeeper/conf/

[[email protected]]# grep -v "#" zoo_sample.cfg >zoo.cfg

[[email protected]]# 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

[[email protected]]# mkdir ../data

[[email protected]]# echo 1 >../data/myid

[[email protected]]# cd

启动zookeeper

[[email protected]~]# /application/zookeeper/bin/zkServer.sh start

JMX enabled bydefault

Using config:/application/zookeeper/bin/../conf/zoo.cfg

Startingzookeeper ... STARTED

[[email protected]~]# /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

安装依赖

[[email protected]~]# yum install -y java-1.8.0-openjdk-devel java-1.8.0-openjdk

下载zookeeper

[[email protected]~]# mkdir /application

[[email protected]~]# cd /application/

[[email protected]]# curl -O http://apache.fayea.com/zookeeper/stable/zookeeper-3.4.6.tar.gz

[[email protected]]# tar xf zookeeper-3.4.6.tar.gz

[[email protected]]# ln -s /application/zookeeper-3.4.6 /application/zookeeper

配置zookeeper

[[email protected]]# cd zookeeper/conf/

[[email protected]]# grep -v "#" zoo_sample.cfg >zoo.cfg

[[email protected]]# 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

[[email protected]]# mkdir ../data

[[email protected]]# echo 2 >../data/myid

[[email protected]]# cd

启动zookeeper

[[email protected]~]# /application/zookeeper/bin/zkServer.sh start

部署mesosmarathon

mesos-master

下载mesosphere仓库

[[email protected]~]# rpm -ivh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm

安装mesos marathon

[[email protected]~]# yum install -y mesos marathon

配置marathon使用mesos调用docker

[[email protected]~]# echo ‘docker,mesos‘ >/etc/mesos-slave/containerizers

启动mesosmarathon

[[email protected]~]# systemctl enable mesos-master mesos-slave marathon

[[email protected]~]# systemctl start mesos-master mesos-slave marathon

mesos-slave

下载mesosphere仓库

[[email protected]~]# rpm -ivh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm

安装mesos

[[email protected]~]# yum install -y mesos

添加zookeeper配置

[[email protected]~]# vim /etc/mesos/zk

zk://192.168.56.7:2181,192.168.56.8:2181/mesos

配置marathon使用mesos调用docker

[[email protected]~]# echo ‘docker,mesos‘ > /etc/mesos-slave/containerizers

启动mesos

[[email protected]~]# systemctl enable mesos-slave

[[email protected] ~]# systemctl startmesos-slave

检查mesosmarathon

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

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

使用marathon调度mesos创建docker容器

编辑json文件

[[email protected]~]# 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

[[email protected] ~]# curl -X POSThttp://192.168.56.7:8080/v2/apps-d @nginx.json -H "Content-type:application/json"

查看mesos

查看marathon

使用docker查看

[[email protected]~]# 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

时间: 02-10

mesos+marathon管理docker集群的相关文章

一步一步搭建ZooKeeper + Mesos + Marathon平台管理Docker集群

最近在Youtube看Docker视频的过程中不幸看到了Mesos的介绍,然后就有一种一见如故的感觉,最终根据mesosphere官网的文档在IBM的Bluemix虚拟机上搭建了基于ZooKeeper + Mesos + Marathon的平台. 搭建之前先简单了解下各个组件是做什么的.(来自wikipedia及其他网络) ZooKeeper:Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.

Kubernetes管理Docker集群之安装篇

什么是Kubernetes? Kubernetes是Google开源的容器集群管理系统,实现基于Docker构建容器,利用Kubernetes能很方面管理多台Docker主机中的容器. 主要功能如下: 1)将多台Docker主机抽象为一个资源,以集群方式管理容器,包括任务调度.资源管理.弹性伸缩.滚动升级等功能. 2)使用编排系统(YAML File)快速构建容器集群,提供负载均衡,解决容器直接关联及通信问题 3)自动管理和修复容器,简单说,比如创建一个集群,里面有十个容器,如果某个容器异常关闭

Docker 集群环境实现方式

Docker 集群环境实现的新方式 近几年来,Docker 作为一个开源的应用容器引擎,深受广大开发者的欢迎.随着 Docker 生态圈的不断建设,应用领域越来越广.云计算,大数据,移动技术的快速发展,加之企业业务需求的不断变化,紧随技术更新的步伐,导致企业架构要随时更改以适合业务需求.当前,越来越多的公司都已将以 Docker 为代表的容器技术用于企业级业务平台,比如:腾讯,京东,美团,新浪,阿里巴巴等互联网公司.数据的安全.Docker 容器的稳定运行是众多用户关注的,这就要求我们提供一套行

Docker 集群环境实现的新方式

近几年来,Docker 作为一个开源的应用容器引擎,深受广大开发者的欢迎.随着 Docker 生态圈的不断建设,应用领域越来越广.云计算,大数据,移动技术的快速发展,加之企业业务需求的不断变化,紧随技术更新的步伐,导致企业架构要随时更改以适合业务需求.当前,越来越多的公司都已将以 Docker 为代表的容器技术用于企业级业务平台,比如:腾讯,京东,美团,新浪,阿里巴巴等互联网公司.数据的安全.Docker 容器的稳定运行是众多用户关注的,这就要求我们提供一套行之有效的管理大型容器集群的整体解决方

基于kubernetes构建Docker集群管理详解-转

http://blog.liuts.com/post/247/ 一.前言        Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.动态扩缩容等功能套件,目前最新版本为0.6.2.本文介绍如何基于Centos7.0构建Kubernetes平台,在正式介绍之前,大家有必要先理解Kubernetes几个核心概念及其承担的功能.以下为Kubernetes的架构设计图:1. Pods        在Kuberne

Docker集群实验环境布署--swarm【3 注册服务监控与自动发现组件--consul】

参考官网集群配置方式 https://hub.docker.com/r/progrium/consul/ 集群中需要manager与node能通信consul的发现服务,不然,管理节点选举不了,无法执行docker 命令. 集群中consul工作3台的机器,大于等2台时,集群仍正常工作,如果,发生只有1台时,集群失效,无法选择管理节点,需要启动数据再次达到3台的标准后,集群才能慢慢恢复. 测试最终得出一个惊人结论,我把consul集群删除后,重新拉起时,元数据全部自动发现恢复. 10.40.10

Docker集群实验环境布署--swarm【5 容器启动组件--node】

10.40.100.143 docker-node0.venic.com 10.40.100.144 docker-node1.venic.com 原用swarm镜像 直接启动 10.40.100.143上 docker run -d  --restart=always --name node0 docker-registry.venic.com:5000/swarm:latest join --advertise=10.40.100.143:2375 consul://docker-consu

Ambari管理Hadoop集群时遇到的问题

一.运行MapReduce程序出现的问题 mapreduce.task.io.sort.mb无效 java.io.IOException: Invalid "mapreduce.task.io.sort.mb": 4096 解决办法: 这个参数的值设置的过大了,不能超过2047,注意单位是mb 二.当集群的某个从节点宕机了,怎么办? 解决办法: 先在挂掉的节点上重启ambari代理,使用ambari-agent restart命令,然后操作后台界面重启服务即可. 三.当集群突然断电之后

Docker集群实验环境布署--swarm【4 管理组件--manager】

主机分配如下,支持双活,中断其中1台,primary会通过consul自动重新选举 10.40.100.141 docker-manager0.venic.com 10.40.100.142 docker-manager1.venic.com 首先在镜像服务器上148上,拉取一个官网 的 consul镜像,方便等下在其它三台上快速启动 # docker pull  swarm && docker tag swarm:latest docker-registry.venic.com:5000