β

Docker系列之(二):使用Mesos管理Docker集群(Mesos + Marathon +

Harries Blog™ 582 阅读

1. Mesos简介

1.1 Mesos

Apache Mesos 是一个分布式系统的 管理 软件 ,对 集群 的资源进行分配和管理。

Docker系列之(二):使用Mesos管理Docker集群(Mesos + Marathon + Chronos + Docker)

Mesos主要由以下几部分组成:

Master: 管理各Slave节点

Slave: 为集群提供资源

Framework: scheduler从Master请求资源,executor在Slave上执行任务

Slave节点上的每个executor是一个容器

官方文档:

http ://mesos. apache .org/documentation/latest/architecture/

http://mesos.apache.org/documentation/latest/getting-s tar ted/

Mesos主 服务器 使用Zookeeper进行服务选举和发现。它有一个注册器记录了所有运行任何和从服务器信息,使用MultiPaxos进行日志复制实现一致性。

Mesos有一个从服务器恢复机制,无论什么时候一个从服务器死机了,用户的任务还是能够继续运行,从服务器会将一些关键点信息如任务信息 状态更新持久化到本地磁盘上,重新启动时可以从磁盘上恢复运行这些任务(类似Java中的钝化和唤醒)

1.2 Marathon

Marathon 是Mesos的一个Framework,用来执行需要长 时间 运行的任务。如果把Mesos比喻成Kernel的话,那么Marathon就是它的守护 进程 Daemon。

它还具备HA,Health Checks,服务发现等功能。如果某个 Docker 进程崩溃,Marathon会重新启动同样的进程。

1.3 Chronos

Chronos本质上是cron-on-mesos,这是一个用来运行基于容器定时任务的Mesos框架。

1.4 ZooKeeper

ZooKeeper用于集群的管理,包括统一 配置 管理,选举Leader等。

2. 安装 Mesos

本次 测试 环境的构成如下:

Docker系列之(二):使用Mesos管理Docker集群(Mesos + Marathon + Chronos + Docker)

Mesos Master: test166

Mesos Slave:  test166,test167

Marathon:  test166

Chronos:  test166

ZooKeeper:  test166

2.1 安装准备

在所有机器上,安装Mesos源

# rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm

在所有机器的/etc/hosts中,指定 主机

# vi /etc/hosts 10.86.255.166  test166 10.86.255.167  test167

2.2 安装Master

2.2.1 在Master上安装Mesos,Marathon,Chronos,ZooKeeper

# yum install mesos marathon chronos mesosphere-zookeeper

如果服务器上之前装过jdk,升级到最新版本

2.2.2 ZooKeeper设定

本次配置的Master是单节点环境,ZooKeeper也是单点

# vi /etc/mesos/zk zk://test166:2181/mesos

2.2.3 启动服务

# systemctl start zookeeper # systemctl start mesos-master # systemctl start marathon # systemctl start chronos

2.3 安装Slave

2.3.1 在Slave上安装Mesos,Docker

# yum install mesos docker

2.3.2 Docker相关设定

# echo 'docker,mesos' > /etc/mesos-slave/containerizers # echo '5mins' > /etc/mesos-slave/executor_registration_timeout

2.3.3 ZooKeeper设定

# vi /etc/mesos/zk zk://test166:2181/mesos

2.3.4 启动服务

# systemctl start docker # systemctl start mesos-slave

2.4 确认

Mesos的页面

http://10.86.255.166:5050 /

Docker系列之(二):使用Mesos管理Docker集群(Mesos + Marathon + Chronos + Docker)

Marathon的页面

http://10.86.255.166:8080/

Docker系列之(二):使用Mesos管理Docker集群(Mesos + Marathon + Chronos + Docker)

Chronos的页面

http://10.86.255.166:4400/

Docker系列之(二):使用Mesos管理Docker集群(Mesos + Marathon + Chronos + Docker)

原文 http://www.cnblogs.com/ee900222/p/docker_2.html

转载请注明来源: Harries Blog™ » Docker系列之(二):使用Mesos管理Docker集群(Mesos + Marathon + Chronos + Docker)

作者:Harries Blog™
追心中的海,逐世界的梦

发表评论