mesos

1. Mesos简介

1.1 Mesos

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

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

Master 管理各Slave节点

Slave 为集群提供资源

Framework schedulerMaster请求资源,executorSlave上执行任务

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

官方文档:

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

http://mesos.apache.org/documentation/latest/getting-started/

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

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

1.2 Marathon

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

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

1.3 Chronos

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

1.4 ZooKeeper

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

2. 安装Mesos

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

Mesos Mastertest166

Mesos Slave test166test167

Marathon test166

Chronos test166

ZooKeeper test166

2.1 安装准备

在所有机器上,安装Mesos

 网上下载:mesosphere-el-repo-7-1.noarch.rpm

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

[root@foundation60 pub]# vim /etc/hosts

172.25.254.60   test166

172.25.254.141  test167

 [root@docker1 ~]# vim /etc/hosts

172.25.254.60   test166

172.25.254.141  test167

2.2 安装Master

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

[root@foundation60 Desktop]# yum install -y mesosphere-zookeeper.x86_64

已加载插件:langpacks, product-id, search-disabled-repos, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

软件包 mesosphere-zookeeper-3.4.6-0.1.20141204175332.centos7.x86_64 已安装并且是最新版本

无须任何处理

[root@foundation60 Desktop]# yum install -y chronos.x86_64

已加载插件:langpacks, product-id, search-disabled-repos, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

软件包 chronos-2.4.0-0.1.20151007110204.el7.x86_64 已安装并且是最新版本

无须任何处理

[root@foundation60 Desktop]# yum install -y marathon.x86_64

已加载插件:langpacks, product-id, search-disabled-repos, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

正在解决依赖关系

--> 正在检查事务

---> 软件包 marathon.x86_64.0.1.4.3-1.0.649.el7 将被 安装

--> 解决依赖关系完成

依赖关系解决

================================================================================

 Package         架构          版本                     源                 大小

================================================================================

正在安装:

 marathon        x86_64        1.4.3-1.0.649.el7        mesosphere         92 M

事务概要

================================================================================

安装  1 软件包

总下载量:92 M

安装大小:103 M

Downloading packages:

No Presto metadata available for mesosphere

marathon-1.4.3-1.0.649.el7.x86 FAILED                                           

http://repos.mesosphere.io/el/7/x86_64/RPMS/marathon-1.4.3-1.0.649.el7.x86_64.rpm: [Errno 12] Timeout on http://repos.mesosphere.com/el/7/x86_64/RPMS/marathon-1.4.3-1.0.649.el7.x86_64.rpm: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')

正在尝试其它镜像。

marathon-1.4.3-1.0.649.el7.x86 FAILED                                           

http://repos.mesosphere.io/el/7/x86_64/RPMS/marathon-1.4.3-1.0.649.el7.x86_64.rpm: [Errno -1] 软件包与预期下载的不符。建议:运行 yum --enablerepo=mesosphere clean metadata

正在尝试其它镜像。

Error downloading packages:

  marathon-1.4.3-1.0.649.el7.x86_64: [Errno 256] No more mirrors to try.

[root@foundation60 Desktop]# yum install -y marathon.x86_64

已加载插件:langpacks, product-id, search-disabled-repos, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

正在解决依赖关系

--> 正在检查事务

---> 软件包 marathon.x86_64.0.1.4.3-1.0.649.el7 将被 安装

--> 解决依赖关系完成

依赖关系解决

================================================================================

 Package         架构          版本                     源                 大小

================================================================================

正在安装:

 marathon        x86_64        1.4.3-1.0.649.el7        mesosphere         92 M

事务概要

================================================================================

安装  1 软件包

总下载量:92 M

安装大小:103 M

Downloading packages:

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

[root@foundation60 Desktop]# tar zxf jdk-7u79-linux-x64.tar.gz

2.2.2 ZooKeeper设定

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

1

2

# vi /etc/mesos/zk

zk://test166:2181/mesos

2.2.3 启动服务

1

2

3

4

# systemctl start zookeeper

# systemctl start mesos-master

# systemctl start marathon

# systemctl start chronos

2.3 安装Slave

2.3.1 在Slave上安装Mesos,Docker

[root@docker1 ~]# ls

anaconda-ks.cfg                                       kubernetes-master.zip

demo.tar                                              marathon-master.zip

docker-engine-1.12.6-1.el7.centos.x86_64.rpm          mesos-1.2.0

docker-engine-selinux-1.12.6-1.el7.centos.noarch.rpm  mesos-1.2.0.tar.gz

etcd-3.1.0-2.el7.x86_64.rpm                           swarm.tar

[root@docker1 ~]# docker version

Client:

 Version:      1.12.6

 API version:  1.24

 Go version:   go1.6.4

 Git commit:   78d1802

 Built:        Tue Jan 10 20:20:01 2017

 OS/Arch:      linux/amd64

Server:

 Version:      1.12.6

 API version:  1.24

 Go version:   go1.6.4

 Git commit:   78d1802

 Built:        Tue Jan 10 20:20:01 2017

 OS/Arch:      linux/amd64

2.3.2 Docker相关设定

1

2

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

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

2.3.3 ZooKeeper设定

1

2

# vi /etc/mesos/zk

zk://test166:2181/mesos

2.3.4 启动服务

1

2

# systemctl start docker

# systemctl start mesos-slave

原文地址:https://www.cnblogs.com/yangying2017/p/6870388.html