Mesos zookeeper marathon 多节点高可靠性部署方案
2018-01-12 21:21
323 查看
目录
用[TOC]来生成目录:
目录
Mesos 的集群实践
搭建3节点的zookeeper集群
搭建3节点的mesos集群
部署marathon集群
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 &
相关文章推荐
- apache mesos 入门(7)——多节点mesos+marathon环境部署
- Mesos+Zookeeper+Marathon的Docker管理平台部署记录(2)--负载均衡marathon-lb
- 【亲测】Marathon+Mesos+Zookeeper+Docker的多Master集群平台部署
- MongoDB仲裁节点的理解以及memcached,zookeeper,redis,故障恢复方案思考.
- Mesos+ZooKeeper+Marathon+Docker
- 【云星数据---mesos实战系列002】:mesos全分布式部署实战007--mesos集成docker方案
- ZooKeeper运维之部署方案设计
- 单节点部署kafaka+zookeeper
- 如何利用Mesos持久化存储方案部署ArangoDB 集群
- 【云星数据---mesos实战系列003】:marathon实战002--marathon部署http版的hello world应用
- centos7yum安装mesos(1.0.0)+marathon+zookeeper+docker
- 基于Mesos+Marathon+Zookeeper的Docker容器管理平台
- 在marathon上部署mesos-dns服务(解决无法启动,部署失败)
- Docker环境下快速搭建Zookeeper+Mesos+Marathon
- CloudStack+XenServer详细部署方案 CloudStack管理节点的安装和配置
- mesos+marathon+zookeeper的docker管理集群亲手搭建实例(环境Centos6.8)
- 我不是九爷 带你了解 CloudStack+XenServer详细部署方案(3):CloudStack管理节点的安装和配置
- 【云星数据---mesos实战系列002】:mesos全分布式部署实战008--配置mesos-master和marathon的高可用
- ZooKeeper的安装与部署 zk遍历所有子节点树