资源:3台centos6.8虚拟机 4cpu 8G内存 ip 10.19.54.111-113

1台centos6.8虚拟机2cpu 8G ip 10.19.53.55

1、System Requirements及安装环境配置并关闭防火墙与SELinux

For full support of process isolation under Linux a recent kernel >=3.10 is required.

由于我使用的centos6.8,所以要升级内核(http://www.cnblogs.com/zhangmingcheng/p/6046274.html

关闭防火墙

关闭命令:  service iptables stop 
永久关闭防火墙:chkconfig iptables off

两个命令同时运行,运行完成后查看防火墙关闭状态  service iptables status

关闭selinux

Redhat应用了SELinux去加强平安,永久封闭的举措为:

修改 /etc/selinux/config 文件中的 SELINUX=”” 为 disabled ,然后重启。

Mesos runs on Linux (64 Bit) and Mac OS X (64 Bit). To build Mesos from source, GCC 4.8.1+ or Clang 3.5+ is required.

根据官方文档进行配置(http://mesos.apache.org/gettingstarted/

注意:每次ssh连接到服务器时,需要输入:scl enable devtoolset-2 bash 暂时改变GCC版本

2、这几台CentOS服务器时间同步(NTP时间同步)

博客地址:http://www.cnblogs.com/zhangmingcheng/p/6047052.html

3、设置hostname   添加映射

修改/etc/sysconfig/network配置文件来修改主机名:

需重启机器: shutdown -r now

修改/etc/hosts文件添加局域网内主机映射:

4、因为要安装marathon,由于mesos官方文档中安装的jdk是1.7版本,所以我们要换成1.8 :sudo yum install -y java-1.8.0-openjdk-devel

5、在这几台服务其上面安装安装Zookeeper

  安装:

wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz -P /usr/local/src/
tar zxvf zookeeper-3.4.8.tar.gz -C /opt
cd /opt && mv zookeeper-3.4.8 zookeeper
cd zookeeper
cp conf/zoo_sample.cfg conf/zoo.cfg

#把zookeeper加入到环境变量

echo -e "# append zk_env\nexport PATH=$PATH:/opt/zookeeper/bin" >> /etc/profile

Zookeeper集群配置:
注意:搭建zookeeper集群时,一定要先停止已经启动的zookeeper节点。

#修改过后的配置文件zoo.cfg,如下:

cat zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/logs
clientPort=2181
autopurge.snapRetainCount=500
autopurge.purgeInterval=24
server.1=10.19.54.111:2888:3888
server.2=10.19.54.112:2888:3888
server.3=10.19.54.113:2888:3888

#创建相关目录,三台节点都需要

mkdir -p /opt/zookeeper/{logs,data}

#其余zookeeper节点安装完成之后,同步配置文件zoo.cfg。

创建ServerID标识

除了修改zoo.cfg配置文件外,zookeeper集群模式下还要配置一个myid文件,这个文件需要放在dataDir目录下。

这个文件里面有一个数据就是A的值(该A就是zoo.cfg文件中server.A=B:C:D中的A),在zoo.cfg文件中配置的dataDir路径中创建myid文件。

#在110.19.54.111服务器上面创建myid文件,并设置值为1,同时与zoo.cfg文件里面的server.1保持一致,如下

echo "1" > /opt/zookeeper/data/myid

#在10.19.54.112服务器上面创建myid文件,并设置值为1,同时与zoo.cfg文件里面的server.2保持一致,如下

echo "2" > /opt/zookeeper/data/myid

#在10.19.54.113服务器上面创建myid文件,并设置值为1,同时与zoo.cfg文件里面的server.3保持一致,如下

echo "3" > /opt/zookeeper/data/myid
到此,相关配置已完成 启动每个服务器上面的zookeeper节点
/opt/zookeeper/bin/zkServer.sh start

PS:Zookeeper一些常用命令:

在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作

  • 1. 启动ZK服务:       sh bin/zkServer.sh start
  • 2. 查看ZK服务状态: sh bin/zkServer.sh status
  • 3. 停止ZK服务:       sh bin/zkServer.sh stop
  • 4. 重启ZK服务:       sh bin/zkServer.sh restart

通过sh bin/zkServer.sh status命令发现当前113主机是leader。

6、在这几台服务器上面安装mesos

先下载Mesos

$ wget http://www.apache.org/dist/mesos/0.28.2/mesos-0.28.2.tar.gz $ tar -zxf mesos-0.28.2.tar.gz

我都安装在/opt/mesos底下

cd mesos

mkdir build

cd build

../configure

make 编译

make check 编译检查

make install 安装

在以上步骤里,只要环境配置有误(如缺少软件,或者环境版本过低都会导致失败,如gcc版本低,根据提示错误进行解决),因为这几台服务器使用代理进行连网,所以我遇   到一个比较坑的地方,在make时一直提示不能下载.pom,之后发现是需要在/root/.m2底下配置settings.xml

<proxies>
 <proxy>
 <id>myProxy</id>
 <active>true</active>
 <protocol>http</protocol>
 <host>123.123.123.123</host>
 <port>8080</port>
 <username>XXXXX</username>
 <password>XXXXX</password>
 <nonProxyHosts>*.XXX.com|XXX.org</nonProxyHosts>
 </proxy>
 </proxies>

在<settings>标签中添加如上代码,说明如下:

1、proxies中可以配置多个proxy,但是默认第一个proxy生效。

2、active中的TRUE表示该代理目前生效状态。

3、http协议、主机地址、端口不在赘述。

4、用户名密码按需配置即可。

5、nonProxyHost表示不需要代理访问的地址。中间的竖线分隔多个地址,此处可以使用星号作为通配符号。

7、配置Mesos(Master与Slave)

首先开启cgconfig服务并设为开机自启

  service cgconfig start
  chkconfig   cgconfig on

PS:查看Linux启动的服务
chkconfig --list 查询出所有当前运行的服务
chkconfig --list atd 查询atd服务的当前状态

表示每个运行级别下,服务的启动状态


运行级别0:系统停机状态
运行级别1:单用户工作状态
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启
查看服务的状态:service cgconfig status

1、增加、修改配置文件

在节点上安装好Mesos后,默认的配置文件在/usr/local/etc/mesos目录下,刚开始目录下只有mesos-deploy-env.sh.template、mesos-master-env.sh.template和  mesos-slave-env.sh.template这三个模版文件。我们需要新建masters和slaves文件、根据原有的文件复制出mesos-deploy-env.sh、mesos-master-env.sh(仅master复制)和mesos-  slave-env.sh(仅slave复制)这三个文件。

1) masters和slaves

这两个文件分别写入运行Master的主机名或IP以及Slave运行的主机名或IP,每行一个。

masters:10.19.54.111

slaves: 10.19.54.112

10.19.54.113

2) mesos-master-env.sh

该文件是关于Master的相关配置。单点Master集群的需要配置的参数是:MESOS_log_dir:log输出的目录,如果不设置,默认不会产生log、MESOS_worker_dir:存放元数据的目录。

3) mesos-slave-env.sh

该文件是Slave相关的配置文件。MESOS_log_dir:log输出的目录,如果不设置,默认不会产生log;MESOS_worker_dir:存放framework工作目录的目录路径(默认: /tmp/mesos)。MESOS_master这个参数是必不可少的,这里设为Master节点的主机名:端口。

在mesos-slave.env.sh里再添加一句:export MESOS_containerizers=docker,mesos

4)mesos-deploy-env.sh

该文件包含了部署脚本运行的环境变量。只要从模版文件复制过来即可,不需要添加其他参数。

这样配置文件的相关参数就设置好了。需要将这些配置文件复制给每一个mesos所在的节点。

后台启动:

mesos-daemon.sh mesos-master


mesos-daemon.sh mesos-slave --master=10.19.54.111:5050

8、在Mesos-Master上安装并后台运行Marathon

# wget http://downloads.mesosphere.com/marathon/v1.1.1/marathon-1.1.1.tgz

第一次下载的是最新版本的marathon,运行时看见说Mesos JAR版本不够,之后选择安装1.1.1

# tar zxf marathon-1.1.1.tgz

后台运行:nohup ./start --master 10.19.54.111:5050  --zk zk://10.19.54.111:2181/marathon &

9、在Mesos-slave上安装docker

yum update

添加yum仓库:$ sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'

[dockerrepo] name=Docker Repository

baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/

enabled=1

gpgcheck=1

gpgkey=https://yum.dockerproject.org/gpg

EOF

安装docker包:yum install docker-engine

因为网络使用了代理,所以必须透过代理进行docker pull

修改/etc/sysconfig/docker

  HTTP_PROXY=代理主机/域名:端口
  http_proxy=$HTTP_PROXY
  HTTPS_PROXY=$HTTP_PROXY
  https_proxy=$HTTP_PROXY
  export HTTP_PROXY HTTPS_PROXY http_proxy https_proxy

开启docker deamon并设为开机自启:service docker start  、chkconfig docker on

10、在10.19.53.55上安装docker私库

sudo docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry

:前面的是宿主机的地址(/opt/data/registry),后面是容器的地址(/var/lib/registry)

修改mesos-slave的/etc/sysconfig/docker配置文件,添加:

other_args=’–insecure-registry 10.19.53.55:5000 –graph=/data/docker/images’
OPTIONS=’–selinux-enabled –insecure-registry 10.19.53.55:5000′

使其可以通过http的方式到私库里pull镜像。

mesos+marathon+zookeeper的docker管理集群亲手搭建实例(环境Centos6.8)的更多相关文章

  1. Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例

    目录 [TOC] 1.环境准备 ​ 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...

  2. [转载] Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例

    1.环境准备 ​ 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0.33 c4 -&g ...

  3. zookeeper 同一docker伪集群

    1).集群目录 cd /usr/local/zookeeper01/data touch myid vi  输入 cd /usr/local/zookeeper01/data touch myid v ...

  4. Zookeeper 三台主机 Ha集群的搭建

    前期准备1.修改Linux主机名 2.修改IP 3.修改主机名和IP的映射关系 /etc/hosts ######注意######如果你们公司是租用的服务器或是使用的云主机(如华为用主机.阿里云主机等 ...

  5. docker swarm集群搭建及使用Portainer、shipyard

    一.规划 1.swarm01作为manager节点,swarm02和swarm03作为worker节点. # cat /etc/hosts 127.0.0.1   localhost 192.168. ...

  6. hadoop学习第二天-了解HDFS的基本概念&&分布式集群的搭建&&HDFS基本命令的使用

    一.HDFS的相关基本概念 1.数据块 1.在HDFS中,文件诶切分成固定大小的数据块,默认大小为64MB(hadoop2.x以后是128M),也可以自己配置. 2.为何数据块如此大,因为数据传输时间 ...

  7. Docker容器集群管理之Swarm

    Docker容器集群管理主流方案 Swarm Docker公司自研发的集群管理系统. Kubernetes Google开源的一个容器集群管理系统,用于自动化部署.扩展和管理容器应用.也称为K8S ...

  8. 使用 Docker 一步搞定 ZooKeeper 集群的搭建

    背景 原来学习 ZK 时, 我是在本地搭建的伪集群, 虽然说使用起来没有什么问题, 但是总感觉部署起来有点麻烦. 刚好我发现了 ZK 已经有了 Docker 的镜像了, 于是就尝试了一下, 发现真是爽 ...

  9. 非节点主机通过内网远程管理docker swarm集群

    这是今天使用 docker swarm 遇到的一个问题,终于在睡觉前解决了,在这篇随笔中记录一下. 在 docker swarm 集群的 manager 节点上用 docker cli 命令可以正常管 ...

随机推荐

  1. 10秒钟sublime text 3安装SVN插件

    注意:此处我提前已经安装了towerSVN,你可能需要提前安装好 towerSVN,之前安装redis之后我才明白,安装插件时安装软件好像 是一个必要的步骤,也就是说安装插件只是让你能在这里使用你已 ...

  2. wamp环境下安装memcached最好的详解教程^.^:(只需要3个步骤 )

    win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一下部分讲解有图,我就是看4-5个讲解,结合有一篇的截图最终才搞定的 ...

  3. 【Java】RuleSource约束常用方法整理

    1-常用约束规则RuleSource的设置方法   例如: addRules(new Rules(ProgramFeeItem.class){ protected void initRules() { ...

  4. iOS 电话在后台运行时,我的启动图片被压缩

    一,经历 <1> 第一感觉是启动图片没有设置好,长度设置小了.但是和网上说的正确方式相比,没什么差别. <2> 害怕是控制器影响的,又新建了一个项目,来检验启动图片是否设置成功 ...

  5. 深入浅出 - Android系统移植与平台开发(十) - led HAL简单设计案例分析

    作者:唐老师,华清远见嵌入式学院讲师. 通过前两节HAL框架分析和JNI概述,我们对Android提供的Stub HAL有了比较详细的了解了,下面我们来看下led的实例,写驱动点亮led灯,就如同写程 ...

  6. 纪念逝去的岁月——C/C++交换排序

    交换排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { ; ; i < iLen; i++) { pri ...

  7. HDU1176

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  8. Quartz.net 的简单使用,创建定时任务

    ISchedulerFactory sf = new StdSchedulerFactory(); sched = sf.GetScheduler(); JobDetail job = new Job ...

  9. 使用Fiddler截断更改Request数据

    0x01 Fiddler介绍 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据.(百度百科) 0x ...

  10. spring security 判断用户是否登录 只要登录就可以访问资源

    有些情况,只要用户登录就可以访问某些资源,而不需要具体要求用户拥有哪些权限,这时候可以使用IS_AUTHENTICATED_FULLY,配置如下所示: <http auto-config='tr ...