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

时间: 2024-10-06 16:43:00

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

使用Mesos和Marathon管理Docker集群

分布式系统是难于理解.设计.构建 和管理的,他们将比单个机器成倍还要多的变量引入到设计中,使应用程序的根源问题更难发现.SLA(服务水平协议)是衡量停机和/或性能下降的标准,大多数现代应用程序有一个期望的弹性SLA水平,通常按"9"的数量增加(如,每月99.9或99.99%可用性).每个额外的9变得越来越难实现. 分布式系统通常是以静态分区,比如Akka/Play. Spark/Hadoop.Storm和 Redis各自分区分组划分.静态分区带来的缺点是增加复杂性,随着机器数量增加,软

一步一步搭建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 容器的稳定运行是众多用户关注的,这就要求我们提供一套行之有效的管理大型容器集群的整体解决方

Docker集群(三) —— Kubernetes 简单入门

[摘要]Kubernetes是Google开源的Docker容器集群管理系统,为容器化的应用提供资源调度.部署运行.服务发现.扩容缩容等整一套功能.本文介绍了kubernetes的重要概念,并通过实例的示例解释了如何应用kubernetes管理docker集群. 因操作系统不同.应用场景不同kubernetes的使用方法有不同,本文只介绍其中一种笔者实践过的切实可行的方法,旨在使读者快速了解Kubernetes,对其有直观的感受.本文以单机版举例,下面的例子都在同一台物理结点上执行,多结点的情况

Swarm实现Docker集群的搭建和管理。

1.Swarm是一个由Docker开发的调度框架. (图网上找的) 2.负载均衡: Docker称之为入口负载均衡(ingress load balancing).它的工作方式是,所有worker节点都监听在发布的服务端口上.当该服务被外部系统调用时,收到流量的节点会通过Docker提供的内部DNS服务,将流量负载均衡不同的worker上. (图网上找的) 3.docker集群搭建. (1).时间同步:yum install –y ntpdatentpdate us.pool.ntp.org (

Docker集群(一) —— Docker网络及flannel介绍

[摘要]本文介绍docker网络原理和设置,以及在docker集群中需要解决的问题.最后介绍flannel在解决docker网络问题中的作用. 1   基础 在介绍docker的网络之前,必须先认识docker所依赖的几个linux技术,这对理解docker的网络有帮助.因水平有限这一节仅简单介绍,对linux网络原理感兴趣的TX可以继续深入研究. 1.1 网络命名空间: Linux Namespaces机制提供一种资源隔离方案.PID,IPC,Network等系统资源不再是全局性的,而是属于特

k8s docker集群搭建

?Kubernetes介绍 1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器的快速轻量 - 完整的生态环境 2.什么是kubernetes 首先,他是一个全新的基于容器技术的分布式架构领先方案.Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg).在Docker技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性