您的位置:首页 > 运维架构 > Docker

centos7配置zookeeper+mesos+marathon+docker

2017-09-01 03:38 162 查看
本文主要介绍mesos相关集群的安装和配置过程,主要在centos7中采用yum安装的方法,帮助快速搭建可用的mesos集群服务,可以借助marathon等工具,进行docker的管理。本文主要讲述该集群的安装和配置过程,并不涉及该集群的使用方法演示。

下面,我们开始安装过程,首先,我们有三台机器,IP分别为192.168.20.15,192.168.20.16,192.168.20.17,并目标安装以下组件,

- zookeeper

- mesos

- docker

- marathon

- chronos

部署过程

环境

软件版本
操作系统centos 3.10.0-514.el7.x86_64
zookeepermesosphere-zookeeper-3.4.6

配置主机名及IP对应关系

在每台机器上,修改
/etc/hostname
,分别将其内容更改为
host-1
,
host-2
,
host-3


修改每台机器上的
/etc/hosts
文件,在每个hosts文件中都添加上主机与ip的对应关系,即(注意需要与hostname相互呼应)

192.168.20.17 host-2
192.168.20.15 host-3
192.168.20.16 host-1


主机名更改后,需要重启机器,使其生效

安装并配置zookeeper

添加库

rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm[/code] 
通过yum为每台机器安装zookeeper,

sudo yum install mesosphere-zookeeper


编辑每台机器上的配置文件
/etc/zookeeper/conf/zoo.cfg
,在末尾添加

server.1=host-1:2088:3088

server.2=host-2:2088:3088

server.3=host-3:2088:3088


在此处中,server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口。

为每个节点设置不同的myid值,在/var/lib/zookeeper/myid中写入一个1到255范围的数值,需要注意的是,不能重复,并与上面的配置对应。可以参考如下命令

echo '2' | sudo tee /var/lib/zookeeper/myid


开启服务并判断是否成功

打开服务

systemctl start zookeeper


查看状态

systemctl status zookeeper


尝试连接

cd /opt/mesosphere/zookeeper/bin/

./zkCli.sh -server 127.0.0.1


注意,同样,我们需要用这个方法,要测试一下另外的两台机器,已保证均可正常连接。可以用
quit
命令退出连接



如果不能互连,请确实是否是防火墙的原因,可以现将防火墙进行管理,并测试

关闭防火墙

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)


另外,可以通过

/opt/mesosphere/zookeeper/bin/zkServer.sh status /etc/zookeeper/conf/zoo.cfg
查看每台机器中的zookeeper的角色,例如,其中一个为leader



另外两个为follower



安装mesos

首先,我们需要大致了解一下mesos中的各个角色和作用,其中

1. Mesos-master:主要负责管理各个framework和slave,并将slave上的资源分配给各个framework

2. Mesos-slave:负责管理本节点上的各个mesos-task,比如:为各个executor分配资源

3. Framework:计算框架,如:Hadoop,Spark等,通过MesosSchedulerDiver接入Mesos,在本文中,例如marathon就是一种计算框架。

4. Executor:执行器,安装到mesos-slave上,用于启动计算框架中的task。

当用户试图添加一种新的计算框架到Mesos中时,需要实现一个Framework scheduler和executor以接入Mesos。

安装过程如下:

在每台机器上,安装mesos,

yum -y install mesos


需要注意的是,在该教程中,我们将三台机器均作为master节点,同时,又作为slave节点。

编辑配置文件

vim /etc/mesos/zk
,在每个节点中,均改为

zk://host-1:2181,host-2:2181,host-3:2181/mesos


注意,2181与zookeeper的运行服务端口是一致的

/etc/mesos-master/quorum
中的数字修改为2,这里的2表示至少要有 2 台 master 节点在线,否则集群无法起来,所以至少要两台 master 一起启动。

echo '2' | tee /etc/mesos-master/quorum


更改work_dir配置项

例如,修改
/etc/mesos-slave
/etc/mesos-master
中的
work_dir
中。

mkdir -p  /home/mesos_work_dir
echo '/home/mesos_work_dir' | tee /etc/mesos-slave/work_dir
echo '/home/mesos_work_dir' | tee /etc/mesos-master/work_dir


配置docker相关内容

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


顺便提一下,master节点的一些配置文件在`/etc/mesos-master/’目录下,而slave中的一些配置文件在‘/etc/mesos-slave’中,配置选项可以参考 《Mesos 配置项解析》 一文,每项配置,都可以写在以该配置项名称命名的文件中。

启动mesos

在每台机器上,启动mesos master服务

systemctl start mesos-master


启动mesos slave服务

systemctl start mesos-slave


查看服务状态

systemctl status mesos-master

systemctl status mesos-slave


访问mesos管理平台

访问例如“http://192.168.20.15:5050”,可以看到



如果其运行显示时存在问题,例如无法正确打开相关网页,或者反复提示问题,可以参考关于mesos搭建,webui显示不正常的原因及解决办法中。

安装docker

安装docker服务

yum -y install docker


将docker服务启动为开机启动

systemctl enable docker


将指定用户添加到用户组

建立 docker 组:

groupadd docker


将当前/某个用户加入 docker 组:

usermod -aG docker $USER


重新登录账户 并重启docker

systemctl restart docker


查看docker服务状态

systemctl status docker


安装marathon

安装

yum -y install marathon


启动并查看状态

systemctl start marathon


systemctl status marathon


查看管理页面

可以在mesos管理页面的frameworks中看到已经激活的marathon,并访问对应节点的8080端口(例如,http://:192.168.20.15:8080/),查看marathon管理页面,如图



安装Chronos

安装

yum -y install chronos


启动并查看状态

systemctl start chronos


systemctl status chronos


查看管理页面

可以在mesos管理页面的frameworks中看到已经激活的chronos,并访问对应节点的4400端口(例如,http://:192.168.20.15:4400/),查看chronos管理页面,如图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  集群 mesos marathon