前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >『高级篇』docker之Mesos微服务部署(26)

『高级篇』docker之Mesos微服务部署(26)

作者头像
IT架构圈
发布2018-12-05 17:45:40
5740
发布2018-12-05 17:45:40
举报
文章被收录于专栏:IT架构圈IT架构圈

因本人的mac本才8g,无法同时启动4个虚拟机来完成,3个server,1个harbor。所以镜像直接用hub.docker.com的。mac就启动3个虚拟机。代码里都增加dockerhub的方式。源码:https://github.com/limingios/msA-docker mesos分支

HOST运行服务

  • 启动zookeeper

通过提供的源码shell脚本直接运行。

代码语言:javascript
复制
sh start.sh
  • 启动redis
代码语言:javascript
复制
sh start.sh
  • 启动mysql
代码语言:javascript
复制
sh start.sh
  • 启动marathon-lb
代码语言:javascript
复制
sh start.sh

server01

编写的shell 脚本

代码语言:javascript
复制
#!/bin/bash
docker run -d --net=host --privileged \
  --hostname=192.168.66.101 \
  -e MESOS_PORT=5051 \
  -e MESOS_MASTER=zk://192.168.1.130:2181/mesos \
  -e MESOS_SWITCH_USER=0 \
  -e MESOS_CONTAINERIZERS=docker,mesos \
  -e MESOS_LOG_DIR=/var/log/mesos \
  -e MESOS_WORK_DIR=/var/tmp/mesos \
  -v "$(pwd)/mesos/log/mesos:/var/log/mesos" \
  -v "$(pwd)/mesos/tmp/mesos:/var/tmp/mesos" \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /sys:/sys \
  -v /usr/bin/docker:/usr/local/bin/docker \
  mesosphere/mesos-slave:1.7.0 --no-systemd_enable_support \
  --no-hostname_lookup --ip=192.168.66.101
代码语言:javascript
复制
sh mesos-slave.sh

server02

编写的shell 脚本 mesos.sh

代码语言:javascript
复制
!/bin/bash
docker run -d --net=host \
  --hostname=192.168.66.102 \
  -e MESOS_PORT=5050 \
  -e MESOS_ZK=zk://192.168.1.130:2181/mesos \
  -e MESOS_QUORUM=1 \
  -e MESOS_REGISTRY=in_memory \
  -e MESOS_LOG_DIR=/var/log/mesos \
  -e MESOS_WORK_DIR=/var/tmp/mesos \
  -v "$(pwd)/mesos/log/mesos:/var/log/mesos" \
  -v "$(pwd)/mesos/tmp/mesos:/var/tmp/mesos" \
  mesosphere/mesos-master:1.7.0 --no-hostname_lookup --ip=192.168.66.102

编写的shell 脚本 marathon.sh

代码语言:javascript
复制
#!/bin/bash
docker run -d --net=host \
  mesosphere/marathon:v1.5.12 \
  --master zk://192.168.1.130:2181/mesos \
  --zk zk://192.168.1.130:2181/marathon
代码语言:javascript
复制
sh mesos.sh
sh marathon.sh

server03

编写的shell 脚本 marathon.sh

代码语言:javascript
复制
#!/bin/bash
docker run -d --net=host --privileged \
  --hostname=192.168.66.103 \
  -e MESOS_PORT=5051 \
  -e MESOS_MASTER=zk://192.168.1.130:2181/mesos \
  -e MESOS_SWITCH_USER=0 \
  -e MESOS_CONTAINERIZERS=docker,mesos \
  -e MESOS_LOG_DIR=/var/log/mesos \
  -e MESOS_WORK_DIR=/var/tmp/mesos \
  -v "$(pwd)/mesos/log/mesos:/var/log/mesos" \
  -v "$(pwd)/mesos/tmp/mesos:/var/tmp/mesos" \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /sys:/sys \
  -v /usr/bin/docker:/usr/local/bin/docker \
  mesosphere/mesos-slave:1.7.0 --no-systemd_enable_support \
  --no-hostname_lookup --ip=192.168.66.103
代码语言:javascript
复制
sh mesos-slave.sh
memsos配置微服务

我部署下,看我分配的内存和cpu就知道为什么叫微服务了

  • message-thrift-python-service 部署

0.1cpu和128Mb内存足够了。

连接是hub.docker.com,上边说了内存太低了没办法启动那边多镜像。

点击json mode 修改,其实就是修改json文件

修改成画红色部分的内容,containerPort是应用内的端口,servicePort是marathon控制的端口(上一节统计过外部端口的数字)。

  • user-thrift-service 部署
  • user-edge-service 部署

跟上边一样修改端口

  • course-dubbo-service 部署

它不需要端口的映射,直接删除portMappings就可以了

  • zhugeaming/course-edge-service 部署
  • gataway-zuul 部署

上边六个服务都需要增加一个labels

key:HAPROXY_GROUP value:external

external 跟原来marathon-lb里面的分组名称一致

部署完成,因为用的dockerhub的仓库,真心慢

本身就是掩饰,家里的笔记本坏了,不好制作局域网的docker仓库,所以比较麻烦。 不过大概就是这么操作的。如果照着我做的老铁,因为我之前跑起来没问题了,建议找个内存大的至少16g的老玩我说的配置。

marathon 健康检查的类型

3种类型

  1. http
  2. command
  3. tcp
  • 如果是查看端口的话,需要使用tcp的形式
  • command类型,也就是shell脚本的形式,可以随意发挥

判断是否成功是看命令退出的返回值是不是0

  • http类型,也就是直接返回某个网址看看是否返回code=200

项目的根路径开始的

环境变量的配置

容器的挂载

那些服务适合那些主机标签和权限都在optional里面

PS:基本的mesos和marathon讲述完成了,因为主机内存后面的结果没有演示但是基本的命令和镜像有了后面基本是,基本操作啦!下次一起学学docker swarm!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程坑太多 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HOST运行服务
  • server01
  • server02
  • server03
    • memsos配置微服务
    • 上边六个服务都需要增加一个labels
    • 部署完成,因为用的dockerhub的仓库,真心慢
    • marathon 健康检查的类型
    相关产品与服务
    容器镜像服务
    容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档