Mesosphere Cluster on CentOS7 (zookeeper+mesos+marathon)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介:

简介

mesosphere

mesos

marathon

zookeeper:

  为master的mesos/marathon的配置文件,这保证master更轻量级。

大概为这几个概念,能找到这里的基本上都是知道他们是干啥的,这里不废话了。不懂的可自行脑补。



环境:

Hostname
Function IP Address
master1
Mesos master 172.18.2.94
master2 Mesos master 172.18.2.95
master3 Mesos master 172.18.2.96
slave1 Mesos slave 172.18.2.97
slave2 Mesos slave 172.18.2.98
slave3 Mesos slave 172.18.2.99
slave4 Mesos slave

172.18.2.100


描述:

  首先,master为3台机器,做zookeeper集群做配置管理(mesos/marathon/zookeeper),然后3个master节点做高可用、Marathon同理。


提前工作

  ①关掉selinux

1
setenforece 0 (配置文件自行修改)

  ②关掉firewalld

1
systemctl disable firewalld.service

  ③清空防火墙

1
iptables -F





Master Nodes Setup

Package Installation

  这里为了简单起便,将使用yum来装,当然你可以自己编译,效果一样。其他的还有docker仓库直接装的,方法很多,看你环境吧。

Setup Repositories

 

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

Install

1
2
yum -y  install  mesosphere-zookeeper
yum -y  install  mesos marathon


Configuration

ZooKeeper

①,先给每台机器zookeeper打标签:

1
2
3
echo  1 >  /etc/zookeeper/conf/myid
PS:
有些可能在  /var/lib/zookeeper/myid

注意:myid中的每台机器不同,对应下面配置文件中的server.$NUM

 

/etc/zookeeper/conf/zoo.cfg配置文件中追加以下内容:

1
2
3
server.1=172.18.2.94:2888:3888
server.2=172.18.2.95:2888:3888
server.3=172.18.2.96:2888:3888

解释下这个后边的$IP,$PORT1,$PORT2

1
2
3
IP不解释
$PORT1 因为三台为高可用,肯定有个master,这个端口是master起的;
$PORT2 为他们互相检查、看谁当master检查用的。


然后就可以重启zookeeper服务了(端口为2181)

1
systemctl start zookeeper


Mesos

ZooKeeper

在每个节点上,需要配置zookeeper的地址,像这样写进/etc/mesos/zk

1
zk: //172 .18.2.94:2181,172.18.2.95:2181,172.18.2.96:2181 /mesos
Quorum

我不确定这个是不是BUG,因为这个官方要求参数,3台master的情况下,这个配置应该为2的,但是当你设置成2的时候,3台master一直会去争抢leader,导致slave节点无法注册,所以这里我们将它搞为1

1
echo  1 >  /etc/mesos-master/quorum
Hostname

这里说下,我们把主机名master$num 写进hosts解析里面,然后把各自的主机名写进这个文件中

1
echo  $master >  /etc/mesos-master/hostname

需要将本机的ip写进配置文件中

1
echo  $host >  /etc/mesos-master/ip


然后mesos的配置这里就ok了,但是你得注意一点,把他自身的一些东西给处理下

1
2
systemctl stop mesos-slave.service
systemctl disable mesos-slave.service

然后重启mesos

1
systemctl restart mesos-master.service


Marathon

首先,创建下他的配置文件的路径(yum装的没给我们创建)

1
mkdir  -p  /etc/marathon/conf
Hostname

把mesos的直接拷过来就好了

1
cp  /etc/mesos-master/hostname  /etc/marathon/conf
ZooKeeper

这里有2点:①配置marathon自己的zk,另外还需要连接mesos自己的,因为他要过去调度任务呀

1
2
3
4
cp  /etc/mesos/zk  /etc/marathon/conf/master
cp  /etc/marathon/conf/master  /etc/marathon/conf/zk
vim  /etc/marathon/conf/zk 
内容:zk: //172 .18.2.94:2181,172.18.2.95:2181,172.18.2.96:2181 /marathon

然后重启marathon

1
systemctl restart marathon.service


Master is ok !

mesos访问地址:

1
172.18.2.94:5050

wKiom1V6UmXTpy8qAAGKoWKlxcw213.jpg


marathon访问地址:

1
172.18.2.94:8080

wKioL1V6VA3AYXDVAAClv2u2Vf4499.jpg



Slave Node Setup

Package Installation

Setup Repositories

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

Install from package

1
yum -y  install  mesos

Configuration

Mesos

首先要关掉master

1
2
systemctl stop mesos-master.service
systemctl disable mesos-master.service
ZooKeeper

配置zookeeper的地址,因为说过他们会向zookeeper注册,配置同master /etc/mesos/zk

1
zk: //172 .18.2.94:2181,172.18.2.95:2181,172.18.2.96:2181 /mesos
Hostname

同理,这里为/etc/mesos-slave/hostname

需要将本机的ip写进配置文件中

1
echo  $host >  /etc/mesos-slave/ip

Start Services

1
systemctl restart mesos-slave.service

然后,到mesos管理端,去查看slave的注册情况

wKiom1V6U8aBVDdaAAGf9pnpmNU738.jpg


Starting Services on Mesos and Marathon

这里不做复杂的演示,只做简单的。

WEB UI 

master1:5050

wKioL1V6WoXhZUqGAAD6cHsUyyA319.jpg

wKiom1V6WN2i7UeBAABOmySsjHI927.jpg


Starting a Service through the API

首先准备一个json文件(hello2.json)

1
2
3
4
5
6
7
8
9
{
     "id" "hello2" ,
     "cmd" "echo hello; sleep 10" ,
     "mem" : 16,
     "cpus" : 0.1,
     "instances" : 1,
     "disk" : 0.0,
     "ports" : [0]
  }


然后调用api

1
curl -i -H  'Content-Type: application/json'  -d@hello2.json master1:8080 /v2/apps

wKioL1V6Wv2SG-qMAABdQSR9YTw197.jpg

wKiom1V6WXjRgILHAALUk1lcMuI281.jpg

就到这里吧,太久没写了,找不到感觉。

细节地方大家注意好就行










本文转自 陈延宗 51CTO博客,原文链接:http://blog.51cto.com/407711169/1661185,如需转载请自行联系原作者
相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
消息中间件 负载均衡 调度
Docker swarm实现基于Consul和Haproxy的RabbitMQ高可用集群
基于Consul服务发现和Haproxy实现的RabbitMQ高可用的负载均衡集群
|
5月前
|
Docker 容器
Docker下安装Zookeeper
Docker下安装Zookeeper
67 0
|
8月前
|
分布式计算 Hadoop 分布式数据库
【Docker】搭建 ZooKeeper 集群
【Docker】搭建 ZooKeeper 集群
204 0
|
Docker 容器
docker-compose快速搭建Zookeeper集群
docker-compose快速搭建Zookeeper集群
docker-compose快速搭建Zookeeper集群
|
10月前
|
Docker 容器
docker 安装zookeeper
启动容器并添加映射
80 0
|
NoSQL Redis 数据安全/隐私保护
【Docker】6、Docker搭建Redis高可用Cluster集群环境
本篇文章将使用 docker 搭建 Redis 高可用 Cluster 集群环境,我们采用三主三从模式,使用 6 个节点搭建 Cluster 集群环境
550 0
|
Dubbo Java Linux
Docker 安装 Zookeeper |学习笔记
快速学习 Docker 安装 Zookeeper
548 0
Docker 安装 Zookeeper |学习笔记
|
Kubernetes Linux 网络安全
kubernetes安装及集群搭建
kubernetes安装及集群搭建
kubernetes安装及集群搭建
|
JSON 算法 中间件
Centos7 环境使用 Docker 安装 Zookeeper 集群详解
Centos7 环境使用 Docker 安装 Zookeeper 集群详解
555 0
|
算法 Java Docker
使用docker-compose搭建zookeeper集群
使用docker-compose搭建zookeeper集群
使用docker-compose搭建zookeeper集群