『高階篇』docker之Mesos微服務部署(26)
因本人的mac本才8g,無法同時啟動4個虛擬機器來完成,3個server,1個harbor。所以映象直接用hub.docker.com的。mac就啟動3個虛擬機器。程式碼裡都增加dockerhub的方式。原始碼:https://github.com/limingios/msA-docker mesos分支
HOST執行服務
-
啟動zookeeper
> 通過提供的原始碼shell指令碼直接執行。
sh start.sh
- 啟動redis
sh start.sh
- 啟動mysql
sh start.sh
- 啟動marathon-lb
sh start.sh
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
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
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
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_GROUPvalue: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!
ofollow,noindex" target="_blank" href="http://zhanzhang.baidu.com/sitesubmit/index?sitename=https://idig8.com/2018/10/28/gaojipiandockerzhimesosdiaozhengweifuwu25/">百度未收錄
>>原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
>>原文連結地址:上一篇:已是最新文章