资源: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. CSS 分享

    原来的那个暂时不用了,贴出来一下,有兴趣可以参考,原型是Metro,不要禁用css 改了很多次~ 面码大法好!!! /*测试区域*/ /*标题备份*/ h7 { background: #2B6695 ...

  2. 【BZOJ2438】 [中山市选2011]杀人游戏 tarjan强连通分量+缩点

    Description 一位冷血的杀手潜入 Na-wiat,并假装成平民.警察希望能在 N 个人里面,查出谁是杀手. 警察能够对每一个人进行查证,假如查证的对象是平民,他会告诉警察,他认识的人, 谁是 ...

  3. 总结新系统部署时,Oracle的一些注意事项:

    1.Oracle安装时,要选择字符集为中文编码,数据库重要角色设置密码时,不要用数字开头,不然后面会报一些错误提示 2.emp导出的数据dmp格式,导入时要在服务器导入,具体没有试,要找机会试试,转化 ...

  4. XML 参考:XML基础 XML 简介

    XML 参考:XML基础 -- XML简介和用途 转:http://www.cnblogs.com/Dlonghow/archive/2009/01/22/1379799.html XML 参考:XM ...

  5. man/info

    提示符方面,在linux当中,默认root的提示符为#,而一般身份用户的提示字符为$. 1.重新启动X Window 的快速按钮 一般来说,我们是可以手动来直接修改X Window 的配置文件的,不过 ...

  6. marquee滚动语法

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  7. [CareerCup] 17.13 BiNode 双向节点

    17.13 Consider a simple node-like data structure called BiNode, which has pointers to two other node ...

  8. html5用到的js

    1.Zepto.js 是专门为现代智能手机浏览器退出的 Javascript 框架, 拥有和jQuery相似的语法, 但是和jQuery相比下来, 他有很多优点, 大小方面 , 压缩后的 zepto. ...

  9. HTTPS协议简介

    一.HTTPS简介 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 HTTP 请求跳转成 HTTPS.本文重点介绍 HTTPS 协议, 并简单介绍部署全站 HTTPS 的意义. HTTPS ...

  10. Android错误:W/ResourceType(2411): No package identifier when getting value for resource number 0x

    报错信息: 07-04 11:14:43.064: W/ResourceType(2411): No package identifier when getting value for resourc ...