使用Docker部署Mesos

来源:互联网 发布:mac 国家地理的图片 编辑:程序博客网 时间:2024/05/17 22:30

使用Docker部署Mesos

部署环境

  • 宿主机: macOS Sierra 10.12.1
  • VirtualBox: Version 5.1.8 r111374 (Qt5.5.1)
  • Vagrant: 1.8.7
  • Vagrant Box: CentOS/7

虚拟机启动环境

Host IP 作用 mesos-01 172.20.201.101 master,slave1,marathon mesos-02 172.20.201.102 slave2 mesos-03 172.20.201.103 slave3

Vagrantfile内容如下:

$num_instances = 3$vm_gui = false$vm_memory = 1024$vm_cpus = 1$instance_name_prefix = "mesos"$vb_cpuexecutioncap = 100def vm_gui  $vb_gui.nil? ? $vm_gui : $vb_guienddef vm_memory  $vb_memory.nil? ? $vm_memory : $vb_memoryenddef vm_cpus  $vb_cpus.nil? ? $vm_cpus : $vb_cpusendVagrant.configure("2") do |config|  config.vm.box = "centos/7"  (1..$num_instances).each do |i|    config.vm.define vm_name = "%s-%02d" % [$instance_name_prefix, i] do |config|      config.vm.hostname = vm_name      config.vm.provider :virtualbox do |vb|        vb.gui = vm_gui        vb.memory = vm_memory        vb.cpus = vm_cpus        vb.customize ["modifyvm", :id, "--cpuexecutioncap", "#{$vb_cpuexecutioncap}"]      end      ip = "172.20.201.#{i+100}"      config.vm.network :private_network, ip: ip      # config.vm.synced_folder "./data", "/vagrant_data"    end    config.vm.provision "shell", inline: <<-SHELL      # apt-get update      curl -s https://get.docker.com/ | sudo sh    SHELL  endend

启动虚拟机

vagrant up

执行上述命令后,虚拟机在启动之后将自动安装最新版本Docker

ZooKeeper启动

只是为了测试,启单节点的ZooKeeper

docker run --name zookeeper \  --restart always \  -d \  -p 2181:2181 \  zookeeper

master安装

# 登录mesos-01:vagrant ssh mesos-01# 启动Dockersudo systemctl enable docker && systemctl restart docker

启动Master

docker run -d --net=host \  --name mesos_master \  -e MESOS_PORT=5050 \  -e MESOS_ZK=zk://172.20.201.101: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)/log/mesos:/var/log/mesos" \  -v "$(pwd)/tmp/mesos:/var/tmp/mesos" \  mesosphere/mesos-master:1.1.0-2.0.107.ubuntu1404 \  --ip=172.20.201.101 \  --advertise_ip=172.20.201.101

启动slave

docker run -d --net=host --privileged \  --name mesos_slave \  -e MESOS_PORT=5051 \  -e MESOS_MASTER=zk://172.20.201.101: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)/log/mesos:/var/log/mesos" \  -v "$(pwd)/tmp/mesos:/var/tmp/mesos" \  -v /var/run/docker.sock:/var/run/docker.sock \  -v /sys/fs/cgroup:/cgroup \  -v /sys:/sys \  -v /usr/bin/docker:/usr/local/bin/docker \  mesosphere/mesos-slave:1.1.0-2.0.107.ubuntu1404 \  --ip=172.20.201.101 \  --launcher=posix

启动marathon

docker run -d --net=host --privileged \  --name mesos_marathon \  mesosphere/marathon:latest \  --master zk://172.20.201.101:2181/mesos \  --zk zk://172.20.201.101:2181/marathon \  --http_port 8080 \  --http_address 172.20.201.101 

安装其他节点

docker run -d --net=host --privileged \  --name mesos_slave \  -e MESOS_PORT=5051 \  -e MESOS_MASTER=zk://172.20.201.101: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)/log/mesos:/var/log/mesos" \  -v "$(pwd)/tmp/mesos:/var/tmp/mesos" \  -v /var/run/docker.sock:/var/run/docker.sock \  -v /sys/fs/cgroup:/cgroup \  -v /sys:/sys \  -v /usr/bin/docker:/usr/local/bin/docker \  mesosphere/mesos-slave:1.1.0-2.0.107.ubuntu1404 \  --ip=[其他节点IP] \  --launcher=posix

检查

安装完成后,打开地址http://172.20.201.101:5050,打开如下页面:
这里写图片描述

打开marathon地址http://172.20.201.101:8080,显示如下:
这里写图片描述

0 0