『高级篇』docker之Mesos集群环境搭建(24)
2019-02-10 04:04:17
李明
  • 访问次数: 382
  • 注册日期: 2018-07-09
  • 最后登录: 2022-11-17

原创文章,欢迎转载。转载请注明:转载自 IT人故事会 ,谢谢!原文链接地址: 『高级篇』docker之Mesos集群环境搭建(24)

这次开始动手操作,首先是Mesos的安装,怎么来安装Mesos。源码: https://github.com/limingios/msA-docker/mac https://github.com/limingios/msA-docker/vagrant/Mesos


v2-063f014adce0caca40b0ac936d7c7e72_hd.p

官网

http://mesos.apache.org/ 本身的安装是c++的,还需要c++进行编译才可以,所以安装感觉比较麻烦,对于安装麻烦的,首选想到的是什么老铁,去dockerhub里面看看,有没有docker的版本。


v2-9bc38fd69af734ad1662f443292fd62e_hd.p


v2-07992a8e87015b46d1ea1de9d19aac3d_hd.p

https://hub.docker.com/u/mesosphere/


v2-5ef132e5bbdf5b2459056ad6eed4e880_hd.p

咱们应该使用的是单独的master 和单独的slave


v2-14a7a0f7fe4713f24438c4bb8a028229_hd.p

下载镜像

  • 拉取镜像

server01和server03

docker pull mesosphere/mesos-slave:1.7.0


v2-6e6fe01a77c1d247eabbbaec11962e1c_hd.p


v2-f248fddc2b62bc0afea656b860867432_hd.p

server02

docker pull mesosphere/mesos-master:1.7.0


v2-5051a6d0e1c1bd2a5d3bc11969619ada_hd.p

  • 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


v2-5e7fcd7c01541b1887d621adecba860e_hd.p

  • 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.102sh mesos.sh


v2-b5c3183e066bd6d1e1ecce7702a4e44c_hd.p


v2-c95af7a1efbb1bee95ce4adfe1c15271_hd.p

mesos-master 已经连接到了主机zookeeper。测试连接地址:http://192.168.66.102:5050


v2-c8c3e36b12950378a340554dbe145fa7_hd.p

Frameworks 未关联,目前还不显示。


v2-b213eccf85ef010f17a8b26cadd62621_hd.p

Agents 下面的slave的展示


v2-45d8401e5f85e2f2cac0cca8906d6c5a_hd.p

  • 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


v2-440f2216e4de5a140a4b107dc30481ef_hd.p


v2-60add7aebbfa76c5d0248bb86b37e1b4_hd.p

sh mesos.sh


v2-d2c691aa69ad452d249cf67508e75a5c_hd.p

  • 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


v2-720de477b8f5197a14a42ab9df17dac9_hd.p


v2-4a8efd0e1ba39eb32adb8a44ec4674b5_hd.p


v2-c7d08782e4d2316d206a24d80a473344_hd.p

  • server02 安装marathon镜像

https://hub.docker.com/r/mesosphere/marathon ,根据架构图来

docker pull mesosphere/marathon:v1.5.12


v2-fc1fa83b926b992bf0d441889d42e2f9_hd.p


v2-da06d3b08b64cf15e60eeee928f84480_hd.p

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


v2-46775394b7a27a8554dca99e577e6395_hd.p


v2-ac198180b9d0df9185d5577d78a737bb_hd.p

网址:http://192.168.66.102:8080


v2-992f7257366d636871da07a13dd5ce79_hd.p

这个是base路径的问题,不影响。


v2-a4beea7a3972be60bcfbca59e023afc6_hd.p

  • Host安装 marathon-lb

拉取镜像

docker pull mesosphere/marathon-lb:v1.12.3


v2-c2048ccbfaf48883dd32c21fffb5b6d0_hd.p

新建立一个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


v2-bf7528dadf760840556d46ed7d6faf45_hd.p

marathon-lb 访问地址: http://localhost:9090/haproxy?stats


v2-4b7afe3d2c8f0e2e79a62b3de8fb33d9_hd.p

marathon 功能

  • 新建application

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


v2-016a1fe0796ddb47236f0aefbf92af30_hd.p

  • 自动执行


v2-a624c63ea5d1fde50a017919a92922e3_hd.p

  • 查看mesos 和 Marathon的对比

v2-47eb83ea3c127e3b9011763a415e7592_hd.p


v2-a704fadeeb58beab3c66e5db448561b1_hd.p

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


v2-d70f55fefe458f3b485909d90bb9d27b_hd.p

PS: 所有的服务已经搭建,完毕,下一步就把之前写的6个微服务部署到我们的Mesos集群里面哈哈!


v2-7f75c93f587eca2c35da2664ce67e513_hd.p