docker $PWD路径_『高级篇』docker之Mesos微服务部署(26)

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

fa16aa5f9dcbf96092c8ebfcdf1f8a8d.png

d04215f0055f795a3401585fb71ad628.png

HOST运行服务

  • 启动zookeeper
通过提供的源码shell脚本直接运行。
sh start.sh
  • 启动redis
sh start.sh
  • 启动mysql
sh start.sh

5af2b68f7a055a66ea9cd0f20e7ff70b.png
  • 启动marathon-lb
sh start.sh

7dc7c2e6904d0c5487010f12f21006ea.png

c75926d3201fdb5c30c8e2c54834fab9.png

server01

编写的shell 脚本
#!/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
sh mesos-slave.sh

3c614081ad89620dfcf6fe7912988011.png

server02

编写的shell 脚本 mesos.sh
!/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
#!/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
sh mesos.sh
sh marathon.sh

dab00ef697aa7a204e50d4cca69367bb.png

server03

编写的shell 脚本 marathon.sh
#!/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
sh mesos-slave.sh

427c72171866d5847d876dcedcc8b9f2.png

memsos配置微服务

我部署下,看我分配的内存和cpu就知道为什么叫微服务了
  • message-thrift-python-service 部署
0.1cpu和128Mb内存足够了。

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

461dce5f0ece4294f15330acc1d8ea76.png
点击json mode 修改,其实就是修改json文件

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

06b9c10680d09b5543db0fa3068e1172.png
  • user-thrift-service 部署

621a343a2f31e5066c9f8509743c0127.png

c0f5ed0bc734842f1612288de66d107d.png

603cffde8c4000ae34ab4af918621e74.png
  • user-edge-service 部署

c81a53ff1fc6ab26d26078ee6679184a.png

329efd4d174addd8c491211e365a8255.png
跟上边一样修改端口

c2d3e3f58686533d166292d458839f22.png
  • course-dubbo-service 部署

1a2b0cbf46a61cb2ba5ac829eb384366.png

f6665e66b427a6fd449f84fa9f380f4f.png

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

04a711d342777066a4e73c98182ab1b4.png
  • zhugeaming/course-edge-service 部署

87b7fedacec92d3f4f2095e6bdda3528.png

739e2dbdffbf4687d64ed4f76e34bbc2.png

d3fcf92d1f67057e421a68717bb53ee7.png
  • gataway-zuul 部署

b954a1e24568eae2303851d88c926bd7.png

15e4403ebbe03cfd92fcb6bf0cddbf09.png

e8e2eb74468e1569f8d24c43dfc35e70.png

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

key:HAPROXY_GROUP
value:external

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

9312347441af51e1556ef8bc403903dd.png

7c812044c13726511bad7b75ba95154a.png

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

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

4ad8a64d7c7475dff9dced2102237f37.png

marathon 健康检查的类型

3种类型

  1. http
  2. command
  3. tcp
  • 如果是查看端口的话,需要使用tcp的形式

c4f12fd5fcacca09ab654da44088e6c4.png
  • command类型,也就是shell脚本的形式,可以随意发挥
判断是否成功是看命令退出的返回值是不是0

c852fcd28db7de5d1abf3ef06231e080.png
  • http类型,也就是直接返回某个网址看看是否返回code=200
项目的根路径开始的

9e9baaa530aaa16bd99a7013a1144d24.png
环境变量的配置

25607db3babce466a76c36cb60606903.png
容器的挂载

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

27282aa0e5b4d148ae8e5e89e5950a70.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值