mesos集群在centos部署文档_第1页
mesos集群在centos部署文档_第2页
mesos集群在centos部署文档_第3页
mesos集群在centos部署文档_第4页
mesos集群在centos部署文档_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

# 一、环境介绍 #单机环境、跳板机(根据自己的需要即可) rootSiffre # cat /etc/redhat-release CentOS release 6.6 (Final) rootSiffre # uname -r 2.6.32-504.el6.x86_64 # 二、安装Docker # 2.1 下载官网rpm包 rootSiffre # wget /rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm # 2.2安装rpm包 #安装前我们需要安装一个依赖包: rootSiffre # yum install libcgroup -y安装rpm包: rootSiffre # rpm -ivh docker-engine-1.7.1-1.el6.x86_64.rpm # 2.3检查并启动Docker #检查docker版本 rootSiffre # docker version Client version: 1.7.1 Client API version: 1.19 Go version (client): go1.4.2 Git commit (client): 786b29d OS/Arch (client): linux/amd64 Server version: 1.7.1 Server API version: 1.19 Go version (server): go1.4.2 Git commit (server): 786b29d OS/Arch (server): linux/amd64启动docker service docker start 或 /etc/init.d/docker start # 三、服务安装 #数人科技源: Curl -o /etc/yum.repos.d/dataman.repo http:/get.dataman.io/repos/centos/6/6/dataman.repo官方源: wget /dist/mesos/0.23.0/mesos-0.23.0.tar.gz官方Git源: git clone /repos/asf/mesos.git*以下根据数人科技的源安装,后期会编译安装*# 3.1 zookeeper #导入源: rootSiffre # rpm -Uvh /cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rpmyum安装 rootSiffre # yum install zookeeper zookeeper-server -y # 3.2 mesos #导入源: rootSiffre # curl -o /etc/yum.repos.d/dataman.repo http:/get.dataman.io/repos/centos/6/6/dataman.repoyum安装: rootSiffre # yum install mesos -y# 3.3 marathon #导入源: rootSiffre # curl -o /etc/yum.repos.d/dataman.repo http:/get.dataman.io/repos/centos/6/6/dataman.repoyum安装: rootSiffre # yum install marathon -y# 3.4 haproxy #yum安装即可: rootSiffre # yum install haproxy -y# 3.5 bamboo #导入源: rootSiffre # mkdir /application rootSiffre # cd /application/ rootSiffre application# wget /download/dataman-bamboo-0.9.0.tar.gz rootSiffre application# ls dataman-bamboo-0.9.0.tar.gz rootSiffre application# tar -zxf dataman-bamboo-0.9.0.tar.gz rootSiffre application# ls bamboo dataman-bamboo-0.9.0.tar.gz # 四、配置服务参数 # 4.1 Mesos #自身配置: #配置mesos在zk的使用目录 echo zk:/9:2181/mesos /etc/mesos/zk #zookeeper2181默认端口# 4.1.1 Mesos-Master # #指定master配置目录 MESOS_MASTER_CONF_DIR=/etc/mesos-master #指定master的主机名 echo 9 $MESOS_MASTER_CONF_DIR/hostname 这里的9是当前机器的地址 ipconfig a查看 #用本机IP表示#指定master的ip echo $MESOS_MASTER_CONF_DIR/ip #副本的仲裁数量的大小(集群配置很重要,本次试验只有1台所以写1) echo 1 $MESOS_MASTER_CONF_DIR/quorum #注册表中存储持久性信息的地址 echo /var/lib/mesos $MESOS_MASTER_CONF_DIR/work_dir # 4.1.2 Master-Slave # #指定slave配置目录 MESOS_SLAVE_CONF_DIR=/etc/mesos-slave #指定slave的主机名(这里不能用localhost)echo 9 $MESOS_SLAVE_CONF_DIR/hostname 这里的9也是一样 写当前机器的地址 #用IP表示#指定slave支持的容器类型 echo docker,mesos $MESOS_SLAVE_CONF_DIR/containerizer s#指定slave的ip echo $MESOS_SLAVE_CONF_DIR/ip #执行器注册超时时间 echo 5mins $MESOS_SLAVE_CONF_DIR/executor_registration_timeout #指定mesos资源控制的内容(这里只有打开对CPU和内存的控制) echo cgroups/cpu,cgroups/mem $MESOS_SLAVE_CONF_DIR/isolation# 4.2 marathon # 创建marathon目录 mkdir /etc/marathon/conf -p #指定marathon配置目录 MARATHON_CONF_DIR=/etc/marathon/conf #指定marathon在zk目录路径echo zk:/9:2181/marathon $MARATHON_CONF_DIR/zk这里的9需要变成当前的地址 #事件订阅模式 echo http_callback $MARATHON_CONF_DIR/event_subscriber #指定marathon主机名echo 9 $MARATHON_CONF_DIR/hostname 这里的9也是需要变成当前的地址 #用IP表示#指定mesos在zk目录路径 echo zk:/9:2181/mesos $MARATHON_CONF_DIR/master 这里的9也是需要变成当前的地址# 4.3 bamboo # 4.3.1 注释模版的8080部分,否则该8080端口和marathon自带默认端口冲突 ,端口可以改成9090或者其他只要不是8080就可以# rootSiffre application# vim /application/bamboo/config/haproxy_template.cfg #注释以下部分 frontend websocket-in #注意是websocket-in而不是http-in bind *:8080 $services := .Services range $index, $app := .Apps if $app.Env.BAMBOO_WEBSOCKET_OPEN if hasKey $services $app.Id $service := getService $services $app.Id acl $app.EscapedId -websocket-aclrule $service.Acl:8080 use_backend $app.EscapedId -websocket-cluster if $app.EscapedId -websocket-aclrule end end end stats enable # CHANGE: Your stats credentials stats auth admin:admin stats uri /haproxy_stats range $index, $app := .Apps if $app.Env.BAMBOO_WEBSOCKET_OPEN backend $app.EscapedId -websocket-cluster if $app.HealthCheckPath option httpchk GET $app.HealthCheckPath end balance leastconn option httpclose option forwardfor range $page, $task := .Tasks server $app.EscapedId - $task.Host - index $task.Ports 1 $task.Host : index $task.Ports 1 end end end #提示:由于centos6.6安装的haproxy版本问题,下面两句也需要注释掉 global log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy #stats socket /run/haproxy/admin.sock mode 660 level admin #注释此句 stats timeout 30s user haproxy group haproxy daemon # Default SSL material locations ca-base /etc/ssl/certs crt-base /etc/ssl/private #ssl-default-bind-options no-sslv3 #注释此句 # Default ciphers to use on SSL-enabled listening sockets. # For more information, see ciphers(1SSL). # ssl-default-bind-ciphers kEECDH+aRSA+AES:kRSA+AES:+AES256:RC4-SHA:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL # 4.3.2 修改bamboo配置 # rootSiffre application# vim bamboo/config/production.json Marathon: Endpoint: 9:8080 , Bamboo: Endpoint: 9:8000, Zookeeper: Host: 9:2181, Path: /marathon-haproxy/state, ReportingDelay: 5 , HAProxy: TemplatePath: /application/bamboo/config/haproxy_template.cfg, OutputPath: /etc/haproxy/haproxy.cfg, ReloadCommand: PIDS=pidof haproxy; haproxy -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf $PIDS & while ps -p $PIDS; do sleep 0.2; done , StatsD: Enabled: false, Host: 9:8125, Prefix: bamboo-server.development. # 4.4 zookeeper # 初始化 service zookeeper-server init -myid=1 #单机环境可以不初始化 提示:若不能更改添加 -force service zookeeper-server init -myid=1 -force # 五、服务启动 # 5.1 zookeeper # #启动命令 service zookeeper-server start #查看进程 ps -ef|grep zookeeper|grep -v grep #查看日志 tail -f /var/log/zookeeper/zookeeper.log 提示: 若zookeeper出现无法启动问题,可能是由于跳板机、sudo、ssh远程登录导致相关变量时效,无法启动java相关程序 解决方法:安装jdk7的rpm包,不建议去手动去改,可能会出错 安装方法: wget -no-cookies -no-check-certificate -header Cookie: oraclelicense=accept-securebackup-cookie /otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-x64.rpm -O jdk-7-linux-x64.rpm # 5.2 Mesos-Master # # 启动命令 nohup mesos-master -zk=zk:/9:2181/mesos -ip= -work_dir=/var/lib/mesos -quorum=1 -log_dir=/var/log/mesos & /var/log/mesos/mesos-master.log & #查看进程状态 ps axuf | grep mesos-master | grep -v grep #查看日志 tail -f /var/log/mesos/mesos-master.log # 5.3 Mesos-Slave # # 启动命令 nohup mesos-slave -master=9:5050 -hostname=9 & /var/log/mesos/mesos-slave.log & #查看进程状态 ps axuf | grep mesos-slave | grep -v grep #查看日志 tail -f /var/log/mesos/mesos-slave.log # 5.4 marathon # #添加目录和日志文件 mkdir /var/log/marathon touch /var/log/marathon/marathon.log # 启动命令 nohup marathon & /var/log/marathon/marathon.log &#查看进程状态ps axuf | grep marathon | grep -v grep #查看日志 tail -f /var/log/marathon/marathon.log# 5.5 haproxy # # 启动命令 service haproxy start #进程状态 ps axuf | grep haproxy | grep -v grep # 5.6 bamboo # # 启动命令 nohup /application/bamboo/bamboo -config /application/bamboo/config/production.json -log /var/log/bamboo-server.log &/var/log/bamboo.log & #查看日志 tail -f /var/log/bamboo.log 提示: 1、默认安装haproxy时,相关文件的路径可能会有些不同。这时在启动bamboo时,会发现bamboo启动失败,查看日志:找不到错误类型的文件 解决方法: rootSiffre haproxy# cd /usr/share/haproxy/ rootSiffre haproxy# ls 400.http 403.http 408.http 500.http 502.http 503.http 504.http README #将这些文件复制或移到以下目录 rootSiffre haproxy# mkdir /etc/haproxy/errors rootSiffre haproxy# mv * /etc/haproxy/errors rootSiffre haproxy# cd /etc/haproxy/errors/ rootSiffre errors# ls 400.http 403.http 408.http 500.http 502.http 503.http 504.http README 2、有时你会在日志文件里面看到这样一个错误提示:STATSD_ENABLED没有设置 解决方法: export STATSD_ENABLED=false/true 此处是看源码得来的,具体详见bamboo源码! # 六、镜像制作 #制作镜像的方法很多哦!(至少4种)这里我们不用dockerfile!# 6.1 基础镜像制作 # 6.1.1 设置docker镜像源 # rootSiffre # yum install -y yum-priorities & rpm -ivh /pub/epel/6/x86_64/epel-release-6-8.noarch.rpm & rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 # 6.1.2 安装febootstrap,用来制作centos镜像,到时候会生成个centos的镜像 # # 如果没有安装docker,则需要先安装docker rootSiffre # service docker start # 启动docker rootSiffre # yum -y install febootstrap # 制作docker镜像工具 # 6.1.3 作CentOS镜像文件centos6-image目录 # rootSiffre # febootstrap -i bash -i wget -i yum -i iputils -i iproute -i man -i vim -i openssh-server -i openssh-clients -i tar -i gzip centos6 centos6-image /centos/6/os/x86_64/ # 6.1.4 复制home目录基础文件到root目录 #这时root目录下没有任何文件,也没有隐藏的点文件,如:.bash_logout .bash_profile .bashrc如果这时制作出来的镜像使用ssh登录,会直接进入根目录下,而一般镜像都是进入root目录下的,所以可以在centos6-image目录的root目录把.bash_logout .bash_profile .bashrc这三个文件设置一下。 rootSiffre # cd centos6-image & cp etc/skel/.bash* root/# 6.1.5生成基础镜像 #rootSiffre centos6-image# tar -c .|docker import - centos6-base # 6.1.6 查看镜像,也可以直接进入centos6-base查看 # #这个是查看所有生成的镜像 rootSiffre centos6-image# docker images #进终端(没有ssh服务),-i 分配终端,-t表示在前台执行,-d表示在后台运行 rootSiffre centos6-image# docker run -i -t centos6-base:latest /bin/bash # 6.2制作中间件镜像 # 根据基础镜像制作jdk7的docker镜像 rootSiffre centos6-image# mkdir -p /application/data/jdk7 rootSiffre centos6-image# cd /application/data/jdk7 rootSiffre jdk7# vim Dockerfile #注意换行 FROM centos6-base MAINTAINER Siffre # install epel RUN yum install -y yum-priorities & rpm -ivh /pub/epel/6/x86_64/epel-release-6-8.noarch.rpm & rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 # install jdk7 RUN yum update -y RUN yum install -y java-1.7.0-openjdk #构建镜像 rootSiffre jdk7# docker build -t jdk7 . # 6.3 制作应用镜像 # 根据jdk7的镜像生成tomcat7镜像 rootSiffre jdk7# mkdir tomcat7 rootSiffre jdk7# cd tomcat7/ rootSiffre tomcat7# vim Dockerfile FROM jdk7 MAINTAINER Siffre ENV CATALINA_HOME /usr/local/tomcat ENV PATH $CATALINA_HOME/bin:$PATH RUN mkdir -p $CATALINA_HOME WORKDIR $CATALINA_HOME # see /dist/tomcat/tomcat-8/KEYS RUN gpg -keyserver -recv-keys 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 61B832AC2F1C5A90F0F9B00A1C506407564C17A3 713DA88BE50911535FE716F5208B0AB1D63011C7 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23 ENV TOMCAT_MAJOR 7 ENV TOMCAT_VERSION 7.0.63 ENV TOMCAT_TGZ_URL /dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz RUN set -x & curl -fSL $TOMCAT_TGZ_URL -o tomcat.tar.gz & curl -fSL $TOMCAT_TGZ_URL.asc -o tomcat.tar.gz.asc & gpg -verify tomcat.tar.gz.asc & tar -xvf tomcat.tar.gz -strip-components=1 & rm bin/*.bat & rm tomcat.tar.gz* EXPOSE 8080 CMD catalina.sh, run #自带的脚本 #构建镜像 rootSiffre tomcat7# docker build -t tomcat7 . # 七、marathon添加app应用 # 7.1 编写添加APP脚本 # rootlocalhost marathon-app# vim dataman-tomcat-test.sh curl -v -X POST 9:8080/v2/apps -H Content-Type:application/json -d id: dataman-tomcat-test, #ID自定义即可 cpus: 0.1, mem: 128.0, instances: 3, container: type: DOCKER, docker: image: tomcat7:latest,#镜像ID network: BRIDGE, portMappings: containerPort: 8080, hostPort: 0, servicePort: 10000, protocol: tcp , healthChecks: protocol: HTTP, portIndex: 0, path: /, gracePeriodSeconds: 5, intervalSeconds: 20, maxConsecutiveFailures: 3 # 7.2 执行dataman-tomcat-test.sh # rootlocalhost marathon-app# sh dataman-tomcat-test.sh #显示如下信息 * About to connect() to 9 port 8080 (#0) * Trying 9. connected * Connected to 9 (9) port 8080 (#0) POST /v2/apps HTTP/1.1 User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/ Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2 Host: 9:8080 Accept: */* Content-Type:application/json Content-Length: 839 HTTP/1.1 201 Created X-Marathon-Leader: 9:8080 Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache Expires: 0 Location: 9:8080/v2/apps/dataman-tomcat-test Content-Type: application/json Transfer-Encoding: chunked Server: Jetty(8.y.z-SNAPSHOT) 扩展程序,推荐一款代理软件:switchysharp!(/w2ROKlW.png)安装即可:!(/fw9nZyb.png)然后,保存即可!*(二)MAC系统也是同样的道理*通过Mesos默认调度框架Marathon创建简单使用样例,创建Marathon任务有2种方法:通过webui和使用json脚本的方法,下面就通过简单实例进行说明。# 7.3.1 用webui创建一个top任务(非docker) # 打开marathonweb-ui界面 # http:/你安装mesos系统的机器ip地址:8080!(/0FBreiX.png)# 创建新任务(点击+NewApp) #填写本次任务的数据信息#任务名ID dataman-top-test#任务需要使用cpu最小大小CPUs 0.1#任务需要使用内存最小容量Memory 16#任务需要使用磁盘大小Disk 0#需要同时跑几个任务Instances 1#执行器执行命令Command top -b#执行器Executor 空#容器调度Slave端口方法Ports#通过wget模式将容器外部资源动态的获取到容器内部的work_dir中URIs 空#约束Constraints 空# 执行创建任务(点击+Create) # marathon创建过程 #可以看到marathon的任务表中显示的任务状态!(/YIypUxc.png)任务id(/dataman-top-test)内存信息(16)cpu信息(0.1)运行实例信息(0/1)健康心跳状态(空)状态(Deploying)# 创建结束查看结果 #和创建过程信息一样,但是已经可以看到运行实例信息(1/1),状态是(Running)!(/YIypUxc.png)# 进入单一任务详细状态 #!(/evVzBfg.png)点击任务名进入单一任务详细操作界面Suspend 将任务设置为空Scale 动态设置任务数量Refresh 刷新Restart App 重启任务Destroy App 删除任务version 任务已创建时间Updated 最新任务操作时间# 查看任务数据信息 #点击Configuration任务创建的数据信息!(/Eb6ThfC.png)# 打开mesos-master # http:/你安装mesos系统的机器ip地址:5050 # mesos-master总览 #!(/IQpYhkX.png)# 0 mesos-master信息 #左上角可以看到mesos-m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论