实验环境:

主机名 ip地址 运行服务 安装组件
docker-master1 192.168.20.210 zookeeper
mesos-master
marathon

mesos
marathon
mesosphere-zookeeper

jdk1.8

docker-master2 192.168.20.211 zookeeper
mesos-master
marathon

mesos
marathon
mesosphere-zookeeper

jdk1.8

docker-master3 192.168.20.212 zookeeper
mesos-master
marathon

mesos
marathon
mesosphere-zookeeper

jdk1.8

docker-slave1 192.168.20.213 mesos-slave 

mesos

docker-engine

docker-slave2 192.168.20.214 mesos-slave

mesos

docker-engine

一、 准备工作:
1.1   关闭Selinux
# setenforce 0

# sed -i '/^SELINUX=/c SELINUX=disabled'/etc/selinux/config

1.2   关闭防火墙
# systemctl stop firewalld

# systemctl disable firewalld

1.3   配置主机名解析
[root@docker-master1 ~]# vi /etc/hosts

192.168.20.210 docker-master1
192.168.20.211 docker-master2
192.168.20.212 docker-master3
192.168.20.213 docker-slave1
192.168.20.214 docker-slave2

1.4更新mesos、marathon源

rpm -ivh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm

二、 master节点配置

2.1 master节点安装JDK1.8

tar -zxvf /root/jdk-8u171-linux-x64.tar.gz -C /usr/local

cat >> /etc/profile << EOF

export JAVA_HOME=/usr/local/jdk1..0_171
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH EOF

source /etc/profile

2.2 master 安装zookeeper(这里只以192.168.20.210为例)

2.2.1 解压zookeeper

tar zxf /root/zookeeper-3.4.8.tar.gz /usr/local

2.2.2创建zookeeper的日志目录和数据目录

mkdir /usr/local/zookeeper-3.4.8/{logs,data}

2.2.3修改zookeeper配置文件

touch /usr/local/zookeeper-3.4.8/conf/zoo.cfg

cat /usr/local/zookeeper-3.4./conf/zoo.cfg

tickTime=
dataDir=/usr/local/zookeeper-3.4.8/data
dataLogDir=/usr/local/zookeeper-3.4.8/logs
clientPort=
initLimit=
syncLimit=
server.=192.168.20.210::
server.=192.168.20.211::
server.=192.168.20.212::

1、2、3表示对应服务器上的myid,2888端口表示和leader通讯端口,3888端口表示选举端口

touch /usr/local/zookeeper-3.4.8/data/myid (每台主机上的myid是有zoo.cfg文件里的server后面的数字决定)

cat /usr/local/zookeeper-3.4./data/myid
cat >> /etc/profile << EOF
export PATH=$PATH:/usr/local/zookeeper-3.4./bin
EOF

source /etc/profile

2.2.4启动zookeeper

 zkServer.sh start

2.2.5 查看zookeeper状态

[root@docker-master1 zookeeper]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower

2.3 master节点安装mesos(这里只以192.168.20.210为例)

2.3.1安装mesos程序

yum install mesos -y

2.3.2配置mesos

vi /etc/mesos/zk

zk://192.168.20.210:2181,192.168.20.211:2181,192.168.20.212:2181/mesos
[root@docker-master1 ~]# cd /etc/mesos-master
[root@docker-master1 mesos-master]# cat cluster
mesoscluster
[root@docker-master1 mesos-master]# cat hostname
192.168.20.210
[root@docker-master1 mesos-master]# cat ip
192.168.20.210
[root@docker-master1 mesos-master]# cat quorum
2
[root@docker-master1 mesos-master]# cat work_dir
/var/lib/mesos

quorum表示zookeeper集群中 要求最少参加选举节点的数目,一般设置为zookeeper集群节点个数的一半多些(比如3个节点的话,可配置为2)

2.3.2 启动mesos服务

systemctl start mesos-master

默认端口5050,访问地址:http://192.168.20.210:5050

2.4 master节点安装marathon(这里只以192.168.20.210为例)

2.4.1 安装marathon程序

yum install -y marathon

2.4.1创建marathon配置文件目录(1.5版本之前)

mkdir -p /etc/marathon/conf
[root@docker-master1 conf]# ls
hostname master zk
[root@docker-master1 conf]# cat hostname
192.168.20.210
[root@docker-master1 conf]# cat master
zk://192.168.20.210:2181,192.168.20.211:2181,192.168.20.212:2181/mesos
[root@docker-master1 conf]# cat zk
zk://192.168.20.210:2181,192.168.20.211:2181,192.168.20.212:2181/marathon

1.5版本之后在/etc/default/marathon文件最下面增加如下两行

MARATHON_MASTER=zk://docker-master1:2181,docker-master2:2181,docker-master3:2181/mesos
MARATHON_ZK=zk://docker-master1:2181,docker-master2:2181,docker-master3:2181/marathon

2.4.2 启动marathon

systemctl start marathon

如果启动不了,查看/var/log/message,如有以下错误,

No start hook file found ($HOOK_MARATHON_START). Proceeding with the start script.

则可以在命令行直接启动marathon

nohup marathon --master zk://192.168.20.210:2181,192.168.20.211:2181,192.168.20.212:2181/mesos --zk zk://192.168.20.210:2181,192.168.20.211:2181,192.168.20.212:2181/marathon &

默认8080端口,访问地址:http://192.168.20.210:8080/ui/#/apps

三、slave节点配置

3.1 slave安装docker(这里只以192.168.20.213为例)

yum install docker

3.1.1 启动docker并且设置为开机自启动

systemctl enable docker.service

systemctl start docker.service

3.2 slave安装mesos(这里只以192.168.20.213为例)

3.2.1 安装mesos程序

yum install mesos -y

3.2.2配置mesos-slave

[root@docker-slave1 mesos-slave]# cd /etc/mesos-slave/
[root@docker-slave1 mesos-slave]# ls
attributes containerizers executor_registration_timeout hostname ip work_dir
[root@docker-slave1 mesos-slave]# cat attributes
rack_id:rack-
[root@docker-slave1 mesos-slave]# cat containerizers
docker,mesos
[root@docker-slave1 mesos-slave]# cat executor_registration_timeout
15mins
[root@docker-slave1 mesos-slave]# cat hostname
192.168.20.213
[root@docker-slave1 mesos-slave]# cat ip
192.168.20.213
[root@docker-slave1 mesos-slave]# cat work_dir
/var/lib/mesos

3.2.3启动mesos-slave

systemctl start mesos-slave

mesos-slave默认端口为5051

完成以上操作即完成了Mesos的DCOS集群搭建,下一章我们介绍《marathon的高可用服务自动发现和负载均衡》。

docker+zookeeper+mesos+marathon集群的更多相关文章

  1. 基于zookeeper+mesos+marathon的docker集群管理平台

    参考文档: mesos:http://mesos.apache.org/ mesosphere社区版:https://github.com/mesosphere/open-docs mesospher ...

  2. Docker快速搭建Zookeeper和kafka集群

    使用Docker快速搭建Zookeeper和kafka集群 镜像选择 Zookeeper和Kafka集群分别运行在不同的容器中zookeeper官方镜像,版本3.4kafka采用wurstmeiste ...

  3. 使用Docker快速搭建Zookeeper和kafka集群

    使用Docker快速搭建Zookeeper和kafka集群 镜像选择 Zookeeper和Kafka集群分别运行在不同的容器中zookeeper官方镜像,版本3.4kafka采用wurstmeiste ...

  4. 基于zookeeper的Swarm集群搭建

    简介 Swarm:docker原生的集群管理工具,将一组docker主机作为一个虚拟的docker主机来管理. 对客户端而言,Swarm集群就像是另一台普通的docker主机. Swarm集群中的每台 ...

  5. Docker 部署 RocketMQ Dledger 集群模式( 版本v4.7.0)

    文章转载自:http://www.mydlq.club/article/97/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...

  6. Docker 容器部署 Consul 集群

    Docker 容器部署 Consul 集群 一.docker安装与启动1.1安装docker[root@localhost /]# yum -y install docker-io 1.2更改配置文件 ...

  7. zookeeper部署及集群测试

    zookeeper部署及集群测试 环境 三台测试机 操作系统: centos7 ; hostname: c1 ; ip: 192.168.1.80 操作系统: centos7 ; hostname: ...

  8. ZooKeeper伪分布集群安装及使用 RMI+ZooKeeper实现远程调用框架

    使用 RMI + ZooKeeper 实现远程调用框架,包括ZooKeeper伪集群安装和代码实现两部分.  一.ZooKeeper伪集群安装: 1>获取ZooKeeper安装包 下载地址:ht ...

  9. (转)ZooKeeper伪分布式集群安装及使用

    转自:http://blog.fens.me/hadoop-zookeeper-intro/ 前言 ZooKeeper是Hadoop家族的一款高性能的分布式协作的产品.在单机中,系统协作大都是进程级的 ...

随机推荐

  1. 在Flask中使用Celery的最佳实践

    写在前面 本最佳实践是基于作者有限的经验,欢迎大家共同讨论,可以持续维护此最佳实践.另本文中所使用的环境为Mac&Ubuntu环境,软件版本如下: Celery (4.1.0) Flask ( ...

  2. 2018-2019学年第一学期Java课程设计

    目录 Magic-Towers 一.团队课程设计博客链接   [团队博客地址](https://www.cnblogs.com/lmb171004/p/10271667.html 二.个人负责模块或任 ...

  3. [持续更新]一些zyys的题的集合

    Luogu P1119 灾后重建 Sol:对于每个中转点K,需且仅需以此松弛一次 Key words:Floyd,本质活用 考题 路径数 题目描述: Euphemia到一个N*N的药草田里采药,她从左 ...

  4. [Java.web]EL表达式

    <%@page import="cn.itcast.domain.Address"%> <%@page import="cn.itcast.domain ...

  5. Zookeeper客户端 CuratorFramework使用

    CuratorFramework使用 跟着实例学习ZooKeeper的用法: Curator框架应用 ZooKeeper客户端Curator使用一 创建连接

  6. SPOJ Count on a tree(主席树+LCA)

    一.题目 COT - Count on a tree You are given a tree with N nodes. The tree nodes are numbered from 1 to  ...

  7. 十三.jQuery源码解析之$.type()

    512行:出现了一个class2type. 在jQuery中全局搜索这个变量. 这段代码的意思是将一串字符串通过空格分割成数组,并且使用each遍历数组来初始化class2type. 最终的结果应该是 ...

  8. phpcms 实现动态价格

    什么是动态价格(自命名)?——  一般来说商品有个固定的价格,随着节假日或者促销活动可能会发生价格变化,结束后又恢复原价,如果每次价格变化都需要修改价格,那么不仅在时间上不好把握,也需要消耗更多的人力 ...

  9. PyQt5系列教程(一)Mac OS X下搭建Python3.5.1+PyQt5开发环境

    软硬件环境 OS X EI Capitan Python 3.5.1 PyQt 5.5.1 PyCharm 5.0.1 前言 Qt是一个开源的跨平台的GUI框架,为很多计算机语言提供了应用程序开发接口 ...

  10. shell脚本实现tomcat进程—查、杀、启

    #!/bin/bash#获取XXX项目进程IDXXXpid=`ps -ef | grep XXX | grep -v grep | awk '{print $2}'` echo "XXX项目 ...