Mac Vagrant box Mesos 集群管理搭建

举报
隔壁老汪 发表于 2022/06/24 01:45:44 2022/06/24
【摘要】 Mesos 简介 Mesos —— 像用一台电脑(一个资源池)一样使用整个数据中心 Mesos是什么? 分布式操作系统内核 Mesos是以与Linux内核同样的原则而创建的,不同点仅仅是在于抽象的层面。Mesos内核运行在每一个机器上,同时通过 API 为各种应用提供跨数据中心和云的资源管理调度能力。这些应用包括Hadoop、S...

Mesos 简介

Mesos —— 像用一台电脑(一个资源池)一样使用整个数据中心

Mesos是什么?

分布式操作系统内核

Mesos是以与Linux内核同样的原则而创建的,不同点仅仅是在于抽象的层面。Mesos内核运行在每一个机器上,同时通过 API 为各种应用提供跨数据中心和云的资源管理调度能力。这些应用包括Hadoop、Spark、Kafka、Elastic Search。还可配合框架 Marathon 来管理大规模的Docker等容器化应用。

Mesos特性

  • 可扩展到10000个节点
  • 使用 ZooKeeper 实现 Master 和 Slave 的容错
  • 支持 Docker 容器
  • 使用 Linux 容器实现本地任务隔离
  • 多资源调度能力(内存,CPU、磁盘、端口)
  • 提供 Java,Python,C++等多种语言 APIs
  • 通过 Web 界面查看集群状态
  • 新版本将支持更多功能

本篇内容翻译自http://mesos.apache.org/

 

Docker部署Mesos

部署环境

  • 宿主机: macOS Yosemite 10.10.5
  • Vagrant: 2.1.2
  • 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配置


  
  1. $num_instances = 3
  2. $vm_gui = false
  3. $vm_memory = 1024
  4. $vm_cpus = 1
  5. $instance_name_prefix = "mesos"
  6. $vb_cpuexecutioncap = 100
  7. def vm_gui
  8. $vb_gui.nil? ? $vm_gui : $vb_gui
  9. end
  10. def vm_memory
  11. $vb_memory.nil? ? $vm_memory : $vb_memory
  12. end
  13. def vm_cpus
  14. $vb_cpus.nil? ? $vm_cpus : $vb_cpus
  15. end
  16. Vagrant.configure("2") do |config|
  17. config.vm.box = "centos/7"
  18. (1..$num_instances).each do |i|
  19. config.vm.define vm_name = "%s-%02d" % [$instance_name_prefix, i] do |config|
  20. config.vm.hostname = vm_name
  21. config.vm.provider :virtualbox do |vb|
  22. vb.gui = vm_gui
  23. vb.memory = vm_memory
  24. vb.cpus = vm_cpus
  25. vb.customize ["modifyvm", :id, "--cpuexecutioncap", "#{$vb_cpuexecutioncap}"]
  26. end
  27. ip = "172.20.201.#{i+100}"
  28. config.vm.network :private_network, ip: ip
  29. # config.vm.synced_folder "./data", "/vagrant_data"
  30. end
  31. config.vm.provision "shell", inline: <<-SHELL
  32. # apt-get update
  33. curl -s https://get.docker.com/ | sudo sh
  34. SHELL
  35. end
  36. end

 

启动虚拟机

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

进入mesos-01

vagrant ssh mesos-01
 

进入mesos-01后,执行以下操作:

安装docker(密码 vagrant

sudo yum install docker-io

pip 安装

sudo yum -y install epel-release

sudo yum -y install python-pip

pip install docker-compose

启动docker

service docker start

启动zookeeper

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

启动 mesos-master

sudo 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

sudo 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

sudo 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

 

启动成功后访问http://172.20.201.101:5050

 

进入mesos-02

按照mesos-01中命令安装docker、docker-compose、pip、docker启动

启动 slave

sudo 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.102  --launcher=posix
 

进入mesos-03

启动 slave

sudo 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.103  --launcher=posix

 

 

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

打开marathon地址http://172.20.201.101:8080,显示如下: 


这里写图片描述

 

sudo docker logs mesos-slave 查看日志

SELinux:  Could not open policy file <= /etc/selinux/targeted/policy/policy.31:  No such file or directory
Failed to create a containerizer: Could not create DockerContainerizer: Failed to create docker: Failed to get docker version: Failed to execute 'docker -H unix:///var/run/docker.sock --version': exited with status 2

 

文章来源: blog.csdn.net,作者:隔壁老瓦,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wxb880114/article/details/81590534

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。