如何搭建拥有服务发现能力的Mesosphere集群环境

云计算
有鉴于Docker集群技术如雨后春笋般不停涌现,我来分享我自己在探索Mesosphere上的经验和结果,我将告诉读者如何在CentOS 7上基于Mesosphere搭建拥有服务发现能力的Docker集群。

有鉴于Docker集群技术如雨后春笋般不停涌现,我来分享我自己在探索Mesosphere上的经验和结果,我将告诉读者如何在CentOS 7上基于Mesosphere搭建拥有服务发现能力的Docker集群。

我GitHub项目上的说明:https://github.com/draculavlad/SetUpMesosphereOnCentos7WithServiceDiscovery

本人语死早,请谅解我的语言组织能力

搭建环境

CentOS 7

系统初始化

yum update -y 
yum install bash curl wget tar zip unzip bzip2 telnet net-tools git -y 
yum groupinstall "Development Tools" –y 
yum -y install ntp ntpdate 
systemctl start ntpd 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

如果需要的话关闭防火墙。

 

setenforce Permissive 
systemctl stop firewalld 
systemctl disable firewalld 
  • 1.
  • 2.
  • 3.

 

添加yum源。

 

rpm -Uvh 'http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm' 
rpm -Uvh 'http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-c 
  • 1.
  • 2.

 

安装

 

yum -y install mesos marathon mesosphere-zookeeper 
  • 1.

启动haproxy

haproxy只有master节点才需要

 

yum -y install haproxy && systemctl start haproxy 
  • 1.

安装启动docker

 

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
yum install -y docker 
  • 1.
  • 2.

 

预初始化

 

systemctl disable mesos-master 
systemctl disable mesos-slave 
systemctl disable marathon 
systemctl disable zookeeper 
  • 1.
  • 2.
  • 3.
  • 4.

 

ZooKeeper 配置和启动

只有master 节点需要如此操作。

设置文件[/var/lib/zookeeper/myid]为当前mesos master节点的id,id必须为1-255之中的整数,例如:1

添加所有的mesos master节点信息到文件[/etc/zookeeper/conf/zoo.cf],例如:

master_node_id为master节点id同该节点[/var/lib/zookeeper/myid]文件的配置,master_node_ip为master节点的ip地址:

 

server.$master_node_id=$master_node_ip:2888:3888 
  • 1.

启动ZooKeeper:

 

systemctl start zookeeper 
  • 1.

#p#

Mesos 配置和启动

master和slave节点都需要如此设置。添加所有的master节点到文件[/etc/mesos/zk],例如:

 

zk://$first_master_node_ip:2181,$second_master_node_ip:2181,.../mesos 
  • 1.

Mesos master 和 marathon的配置和启动

只有master节点需要如此配置,marathon节点与master节点不同,目前我是把marathon安装在master节点。

设置文件[/etc/mesos-master/quorum]内容为一个大于master节点数除以2的整数。

设置文件[/etc/mesos-master/ip]内容为当前master节点的ip

设置文件[/etc/mesos-master/hostname]内容为当前master节点的域名(必须可被其他节点解析)

 

mkdir -p /etc/marathon/conf 
cp /etc/mesos/zk /etc/marathon/conf/master 
cp /etc/marathon/conf/master /etc/marathon/conf/zk 
sed –i 's|mesos|marathon|g' /etc/marathon/conf/zk 
  • 1.
  • 2.
  • 3.
  • 4.

 

添加Mesosphere的服务发现功能

安装在master节点。因为官方推荐的脚本和Haproxy1.5不兼容所以请使用我的脚本

 

wget 'https://github.com/draculavlad/SetUpMesosphereOnCentos7/blob/master/haproxy-marathon- 
  • 1.

设置文件[/etc/haproxy-marathon-bridge/marathons]:

 

echo "$first_marathon_node_ip:8080" >> /etc/haproxy-marathon-bridge/marathons 
echo "$second_marathon_node_ip:8080" >> /etc/haproxy-marathon-bridge/marathons 
echo "$third_marathon_node_ip:8080" >> /etc/haproxy-marathon-bridge/marathons 
  • 1.
  • 2.
  • 3.

 

执行安装脚本:

 

chmod +x haproxy-marathon-bridge 
./haproxy-marathon-bridge install_cronjob 
  • 1.
  • 2.

 

启动mesos master和marathon服务

 

systemctl start mesos-master 
systemctl start marathon 
  • 1.
  • 2.

 

mesos slave 节点配置和启动

设置文件[/etc/mesos-slave/ip]内容为当前slave节点的ip地址

设置文件[/etc/mesos-slave/hostname]内容为当前slave节点的域名(必须可被其他节点解析)

使slave节点支持Docker:

 

echo 'docker,mesos' > /etc/mesos-slave/containerizers 
echo '5mins' > /etc/mesos-slave/executor_registration_timeout 
  • 1.
  • 2.

 

启动mesos slave:

 

systemctl start mesos-slave 
  • 1.

测试脚本

测试脚本来自于我参考的youtube视频

 

wget 'https://github.com/draculavlad/SetUpMesosphereOnCentos7WithServiceDiscovery/blob/master/launch.sh' 
wget 'https://github.com/draculavlad/SetUpMesosphereOnCentos7WithServiceDiscovery/blob/master/nginx-bridge.json' 
export marathon_node_ip=$your_marathon_node_ip 
chmod +x launch.sh 
./launch.sh nginx-bridge.json 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

原文链接:http://dockone.io/article/439
 

责任编辑:Ophira 来源: dockerone
相关推荐

2021-01-07 10:18:03

Redis数据库环境搭建

2012-11-01 17:15:04

2015-03-19 11:30:04

DockerDocker集群服务发现

2019-09-18 16:52:58

hyperf微服务php

2017-10-19 16:12:57

2015-10-26 10:14:13

Android开发环境robolectric

2022-02-11 08:41:19

WindowsRedis集群

2020-03-23 22:50:36

WindowsNginxTomcat

2010-02-03 14:37:10

Python 开发环境

2020-12-14 12:48:51

Kafka集群节点

2018-06-13 14:42:53

集群虚拟化搭建

2011-01-28 15:02:13

沃森人机大战

2010-06-04 18:17:50

Hadoop集群

2010-10-19 09:35:08

Ubuntu 10.1云环境

2016-12-29 10:52:09

LinuxUbuntu邮件服务器

2017-01-09 08:59:17

Ubuntu邮件服务器

2011-08-29 15:23:11

Ubuntuapache

2017-01-05 13:34:42

LinuxUbuntu邮件服务器

2019-12-24 09:39:06

Kubernetes工具微服务

2024-04-01 06:00:00

LIDAPython模块
点赞
收藏

51CTO技术栈公众号