热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Docker部署Mesos

使用Docker部署Mesos,Go语言社区,Golang程序员人脉社

使用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 = 100

def vm_gui
  $vb_gui.nil? ? $vm_gui : $vb_gui
end

def vm_memory
  $vb_memory.nil? ? $vm_memory : $vb_memory
end

def vm_cpus
  $vb_cpus.nil? ? $vm_cpus : $vb_cpus
end

Vagrant.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
  end
end

启动虚拟机

vagrant up

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

ZooKeeper启动

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

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

master安装

# 登录mesos-01:
vagrant ssh mesos-01

# 启动Docker
sudo 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,显示如下:
这里写图片描述


推荐阅读
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • 深入体验Python的高级交互式Shell - IPython
    IPython 是一个增强型的 Python 交互式 Shell,提供了比标准 Python 控制台更为强大的功能,适用于开发和调试过程。它不仅支持直接执行 Linux 命令,还提供了丰富的特性来提高编程效率。 ... [详细]
  • Android与JUnit集成测试实践
    本文探讨了如何在Android项目中集成JUnit进行单元测试,并详细介绍了修改AndroidManifest.xml文件以支持测试的方法。 ... [详细]
  • Logging all MySQL queries into the Slow Log
    MySQLoptionallylogsslowqueriesintotheSlowQueryLog–orjustSlowLog,asfriendscallit.However,Thereareseveralreasonstologallqueries.Thislistisnotexhaustive:Belowyoucanfindthevariablestochange,astheyshouldbewritteninth ... [详细]
  • 本文详细介绍了Java库com.powsybl.afs.storage中的NodeGenericMetadata.getBooleans()方法,并提供了多个实际应用的代码示例。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • Dense Matrix Inversion Results in Segmentation Fault: Causes and Solutions ... [详细]
  • 在尝试为 Unity 编译一个简单的 Java 库时,运行 `ant jar` 命令后遇到了 Java I/O 异常。具体错误信息为“无法启动程序 ${aAPT},错误代码 2”,这通常表示指定的文件或目录不存在。此问题可能是由于环境配置不正确或路径设置有误导致的。建议检查相关路径和环境变量,确保所有依赖项都已正确安装和配置。 ... [详细]
  • 在 Go 开发环境中,通过使用 iTerm 和 Oh My Zsh,可以显著提升终端操作的效率和体验。Oh My Zsh 是一个强大的 Zsh 配置管理框架,提供了丰富的插件支持,如代码高亮、自动补全和多种编程语言支持,同时还拥有众多美观的主题,使终端界面更加个性化和高效。Zsh 作为一种高度可定制的 shell,不仅适用于交互式应用,还可用作脚本解释器,集成了 bash、ksh 和 tcsh 等其他 shell 的诸多优点,并具备独特的功能特性。 ... [详细]
  • MacOS双系统安装指南:十分钟速成,轻松省下数百元! ... [详细]
  • 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细]
  • 在最近的WWDC17大会上,苹果公司宣布了多项重要更新,其中一项是macOS High Sierra 10.13 Final的正式发布。这一版本经过优化,显著提升了系统的稳定性和响应速度,为用户在任何Mac设备上提供了更加流畅的使用体验。本文将详细介绍如何在Windows系统中利用VMware虚拟机软件安装并运行macOS High Sierra 10.13 Final,帮助用户在非苹果硬件上体验这一先进操作系统。 ... [详细]
author-avatar
692-LCP_207
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有