资源: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. BZOJ4607 : [PA2015 Final]Edycja

    显然做完操作$2$后再做操作$1$. 建立一个$26$个点的有向图,每个点只有一条出边,$i$->$j$表示$i$最终变成了$j$,边权为一开始是$i$,最后不是$j$的位置个数,如果$i\ne ...

  2. javac命令出现“**.java使用了未经检查或不安全的操作”

    Collection col=new ArrayList();引发了“**.java使用了未经检查或不安全的操作”错误, 这是因为JDK1.5中引进了泛型,但是你的ArrayList却没有采用,所有会 ...

  3. ACM: FZU 2148 Moon Game - 海伦公式

     FZU 2148  Moon Game Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64 ...

  4. HDU 5877 dfs+ 线段树(或+树状树组)

    1.HDU 5877  Weak Pair 2.总结:有多种做法,这里写了dfs+线段树(或+树状树组),还可用主席树或平衡树,但还不会这两个 3.思路:利用dfs遍历子节点,同时对于每个子节点au, ...

  5. Application Initialization Module for IIS 7.5

    http://www.iis.net/downloads/microsoft/application-initialization IIS7.5也有Warm Up功能 让ASP.NET第一次Reque ...

  6. java使用poi读取ppt文件和poi读取excel、word示例

    java使用poi读取ppt文件和poi读取excel.word示例 http://www.jb51.net/article/48092.htm

  7. 【Go语言】错误与异常处理机制

    ①error接口 Go语言中的error类型实际上是抽象了Error()方法的error接口 type error interface { Error() string } Go语言使用该接口进行标准 ...

  8. 处理海量数据的高级排序之——堆排序(C++)

    在面对大数据量的排序时(100W以上量级数据),通常用以下三种的排序方法效率最高O(nlogn):快速排序.归并排序,堆排序.在这个量级上,其他冒泡,选择,插入等简单排序已经无法胜任,效率极低,跟前面 ...

  9. [LintCode] House Robber 打家劫舍

    You are a professional robber planning to rob houses along a street. Each house has a certain amount ...

  10. js添加确认删除操作注意事项

    function delsure(){ if(confirm('确认删除吗?')){ return true;//点击确定则返回这里的内容 }else{ return false; } } 在表单中添 ...