Mesos zookeeper marathon 多节点高可靠性部署方案

目录

[TOC]来生成目录:

Mesos 的集群实践

搭建mesos集群包含以下组件,zookeeper, mesos, marathon。
如果实现服务发现,可以利用mesos-dns或者第三方组件consul。
本文主要介绍如何搭建一个多节点的稳定的mesos集群,并分别利用mesos-dns和consul实现服务发现的方案。

搭建mesos集群之前先要搭建一个zookeeper集群,可以是单节点也可以多节点,目的是利用zookeeper集群保存mesos节点的信息。本文搭建3个节点的zookeeper集群

1. 搭建3节点的zookeeper集群

下载zookeeper安装包。 https://zookeeper.apache.org/releases.html
我用的是zookeeper-3.4.9.tar.gz
解压tar包到每个zookeeper节点。

$ tar -zxvf zookeeper-3.4.9.tar.gz -C /usr/local
$ cp /usr/local/zookeeper-.3.4.9/conf/zoo_sample.cfg /usr/local/zookeeper-3.4.9/conf/zoo.cfg
$ vim /usr/local/zookeeper-3.4.9/conf/zoo.cfg

dataDir=/usr/local/zookeeper-3.4.9/data
dataLogDir=/usr/local/zookeeper-3.4.9/log

server.1=<zookeeper_ip_01>:2888:3888
server.2=<zookeeper_ip_02>:2888:3888
server.3=<zookeeper_ip_03>:2888:3888

$ mkdir /usr/local/zookeeper-3.4.9/data
$ mkdir /usr/local/zookeeper-3.4.9/log

注意:
Server.A = B:C:D
A表示zookeeper节点的编号, B表示对应主机节点的IP, C表示leader节点与其他follower节点交换信息的端口号,D表示当现在的leader节点down掉之后,所有节点互相通信选择新的leader节点时通信的端口。

分别在3台主机节点上编辑myid文件, 第一行在主机zookeeper_ip_01上执行,第二行在主机zookeeper_ip_02上执行,第三行在主机zookeeper_ip_03上执行

$ echo 1 > /usr/local/zookeeper-3.4.9/data/myid 
$ echo 2 > /usr/local/zookeeper-3.4.9/data/myid 
$ echo 3 > /usr/local/zookeeper-3.4.9/data/myid 

启动zookeeper集群,并查看集群状态。

$ cd /usr/local/zookeeper-3.4.9/bin
$ ./zkServer.sh start
$ ./zkServer.sh status

2. 搭建3节点的mesos集群

下载mesos安装包 http://mesos.apache.org/downloads
本文用的mesos-1.1.0
在所有节点上编译并安装mesos
首先解压mesos源码包到/opt目录,然后下载编译mesos所需的依赖包

$ tar -zxvf mesos-1.1.0.tar.gz -C /opt
$ apt-get update
$ apt-get install -y tar wget git
$ apt-get install -y openjdk-8-jdk
$ apt-get install build-essential python-dev libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev zlib1g-dev

编译mesos

$ cd /opt/mesos-1.1.0
$ mkdir build
$ mkdir /usr/local/mesos
$ cd build
$ ../configure --prefix=/usr/local/mesos
$ make
$ make install

编译完成之后,需要在每个节点上配置些信息。
在每个节点上创建 masters, slaves文件

$ vim /usr/local/mesos/etc/mesos/masters
master_ip_01
master_ip_02
master_ip_03

$ vim /usr/local/mesos/etc/mesos/slaves
slave_ip_01
slave_ip_02
slave_ip_03

在所有master节点上配置mesos-master-env.sh

$ vim /usr/local/mesos/etc/mesos/mesos-master-env.sh

export MESOS_log_dir=/var/log/mesos
export MESOS_work_dir=/var/lib/mesos
export MESOS_cluster=Mesos-Cluster
export MESOS_zk=zk://<zookeeper_ip_01>:2181,<zookeeper_ip_02>:2181,<zookeeper_ip_03>:2181/mesos
export MESOS_quorum=3

在所有的slave(agent)节点上配置mesos-agent-env.sh

export MESOS_log_dir=/var/log/mesos
export MESOS_work_dir=/var/lib/mesos
export MESOS_containerizers=docker,mesos
export MESOS_master=zk://<zookeeper_ip_01>:2181,<zookeeper_ip_02>:2181,<zookeeper_ip_03>:2181/mesos

配置完成之后,需要在每个master和slave(agent)节点上配置免密钥登录,方便启动mesos集群,否则还需要输入每个节点的密码。

$ ssh-keygen

在每个主机上生成公私钥之后,将自己的公钥 ~/.ssh/id_rsa.pub 拷贝到其他所有节点的~/.ssh/authorized_keys

然后就可以启动mesos集群了。

$ cd /usr/local/mesos
$ ./sbin/mesos-start-cluster.sh

3. 部署marathon集群

marathon部署比较简单。
下载Marathon安装包。http://mesosphere.github.io/marathon
只需要解压开就可以用。

$ tar -zxf marathon-1.3.9.tgz -C /usr/local

启动marathon

$ MESOS_NATIVE_JAVA_LIBRARY=/usr/local/mesos/lib/libmesos.so ./bin/start --master zk://<zookeeper-ip-01>:2181,<zookeeper-ip-02>:2181,<zookeeper-ip-03>:2181/mesos --zk zk://<zookeeper-ip-01>:2181,<zookeeper-ip-02>:2181,<zookeeper-ip-03>:2181/marathon >> /var/log/marathon.log 2>&1 &
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值