這次開始動手操作,首先是Mesos的安裝,怎麼來安裝Mesos。源碼:github.com/limingios/ms

github.com/limingios/ms

官網

mesos.apache.org/ 本身的安裝是c++的,還需要c++進行編譯纔可以,所以安裝感覺比較麻煩,對於安裝麻煩的,首選想到的是什麼老鐵,去dockerhub裡面看看,有沒有docker的版本。

hub.docker.com/u/mesosp

咱們應該使用的是單獨的master 和單獨的slave

下載鏡像

  • 拉取鏡像

server01和server03

docker pull mesosphere/mesos-slave:1.7.0

server02

docker pull mesosphere/mesos-master:1.7.0

  • hosts 創建zookeeper

zookeeper 啟動

#!/bin/bash
cur_dir=`pwd`
docker stop zookeeper
docker rm zookeeper
docker run --name zookeeper --restart always -p 2181:2181 -d zookeeper:3.5

  • server02 創建mesos-master

vi mesos.sh
#!/bin/bash
docker run -d --net=host
--hostname=192.168.66.102
-e MESOS_PORT=5050
-e MESOS_ZK=zk://192.168.100.139: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
sh mesos.sh

mesos-master 已經連接到了主機zookeeper。

測試連接地址:192.168.66.102:5050

Frameworks 未關聯,目前還不顯示。

Agents 下面的slave的展示

  • server01

slave容器的創建

vi mesos-slave.sh
#!/bin/bash
docker run -d --net=host --privileged
--hostname=192.168.66.101
-e MESOS_PORT=5051
-e MESOS_MASTER=zk://192.168.100.139: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.sh

  • server03

slave容器的創建

vi mesos-slave.sh
#!/bin/bash
docker run -d --net=host --privileged
--hostname=192.168.66.103
-e MESOS_PORT=5051
-e MESOS_MASTER=zk://192.168.100.139: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

  • server02 安裝marathon鏡像

hub.docker.com/r/mesosp

根據架構圖來

docker pull mesosphere/marathon:v1.5.12

vi marathon
#!/bin/bash
docker run -d --net=host
mesosphere/marathon:v1.5.2
--master zk://192.168.100.139:2181/mesos
--zk zk://192.168.100.139:2181/marathon

網址:192.168.66.102:8080

這個是base路徑的問題,不影響。

  • Host安裝 marathon-lb

拉取鏡像

docker pull mesosphere/marathon-lb:v1.12.3

新建立一個shell 文件

#!/bin/bash
docker stop marathon-lb
docker rm marathon-lb
docker run -d -p 9090:9090
-e PORTS=9090
mesosphere/marathon-lb:v1.12.3 sse
--group external
--marathon http://192.168.66.102:8080

marathon-lb 訪問地址:localhost:9090/haproxy?

marathon 功能

  • 新建application

while [ true ];do sleep 5;echo hello idig8.com;done

  • 自動執行

  • 查看mesos 和 Marathon的對比

在mesos的Framework裡面可以看到Marathon的Framework

PS: 所有的服務已經搭建,完畢,下一步就把之前寫的6個微服務部署到我們的Mesos集羣裡面哈哈!


推薦閱讀:
相關文章