Marathon+Mesos+Docker部署

Marathon

马拉松是一个生产级的容器编排平台,用于中间层的数据中心操作系统(DC/OS)和Apache Mesos.为部署提供提供REST API服务,有授权和SSL、配置约束,通过HAProxy实现服务发现和负载平衡。

Apache Mesos

Apache Mesos 是一款基于多资源(内存、CPU、磁盘、端口等)调度的开源群集管理套件,能时容错和分布式关系系统更加容易使用。
Apache Mesos 采用了Master/Slave 结构来简化设计,将Master 做的尽可能轻量级别仅保存了各种计算框架(Framework)和Mesos Slace 的状态详细。Mesos Master 充当与全局资源调度角色,采用某种策略算法将摸一个Slace上的空闲资源来分配给某一个Framewok 而且种Framework 则是通过自己的调度器向Master注册进行接入。

zookeeper

zookeeper 是一个开远市分布式应用协调服务可以为分布式应用提一致性服务,提供的功能包裹:配置维护,域名服务,分布式同步。组服务等。
zookeeper 的目标就是讲复杂易出错的关键服务进行分装,提供给用户使用性能高效功效稳定简单易用的操作系统

部署环境

主机名 IP地址 安装包
master 192.168.10.38 jdk-8u91-linux-x64.tar.gz mesos-0.25.tar.gz zookeeper-3.4.6.tar.gz marathon-0.15.2.tar.gz
master1 192.168.10.41 jdk-8u91-linux-x64.tar.gz mesos-0.25.tar.gz zookeeper-3.4.6.tar.gz
masert2 192.168.10.39 jdk-8u91-linux-x64.tar.gz mesos-0.25.tar.gz zookeeper-3.4.6.tar.gz
slaver1 192.168.10.42 jdk-8u91-linux-x64.tar.gz mesos-0.25.tar.gz docker
slaver2 192.168.10.46 jdk-8u91-linux-x64.tar.gz mesos-0.25.tar.gz docker

配置部署

cat /etc/redhat-release   //查看Linux版本
uname -r   //查看内核版本(需要内核3.10以上)
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/ 解压jdk包

mv jdk1.8.0_91/ java

vim /etc/profile  #配置JAVA环境
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
source/etc/profile #立即生效

yum groupinstall -y "Development Tools" #安装开发工具

wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo #添加apache-maven#为Mesos提供项目管理和构建自动换工具的支持

yum install -y apache-maven python-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel apr-util-devel subversion-devel #添加依赖包

vim /etc/yum.repos.d/wandisco-svn.repo #配置WANdiscoSVN网络源

[WANdiscoSVN]
name=WANdisco SVN Repo 1.9
enabled=1
baseurl=http://opensource.wandisco.com/centos/7/svn-1.9/RPMS/$basearch/
gpgcheck=1
gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco

vim /etc/profile #配置Mesos环境变量

export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so
export MESOS_NATIVE_LIBRARY=/usr/local/lib/libmesos.so

source /etc/profile

wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
#下载地址使用迅雷添加链接从http复制到结尾在迅雷下载链接粘贴

wget http://www.apache.org/dist/mesos/0.25.0/mesos-0.25.0.tar.gz
#下载地址使用迅雷添加链接从http复制到结尾在迅雷下载链接粘贴

tar zxvf mesos-0.25.0.tar.gz -C /opt/
mv mesos-0.25.0/ /root/
cd /root/mesos-0.25.0
mkdir build
cd build/
../configure 

make              //等待时间长(在线状态)
make check
make install

systemctl stop firewalld.service 关闭防火墙
systemctl disable firewalld.service 实现开机不启动
setenforce 0 

以上操作在剩下的4台服务器执行

配置mesos-master

hostnamectl set-hostname master  #设置主机名称
hostnamectl set-hostname master1 #设置主机名称
hostnamectl set-hostname master2 #设置主机名称
vim /etc/hosts (所有主机)
192.168.10.38 master
192.168.10.41 master1
192.168.10.39 master2
192.168.10.42 slave
192.168.10.46 slave1
重启服务器
scp /etc/hosts 192.168.10.15:/etc/hosts  #推送hosos文件到所有主机上并且修改对应的主机名称
ln -sf /root/mesos-0.25.0/build/bin/mesos-master.sh /usr/sbin/mesos-master
mesos-master --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs --no-hostname_lookup --ip=0.0.0.0  创建文件 运行任意网段进行访问

配置mesos-slave

hostnamectl set-hostname slave  #修改主机名
hostnamectl set-hostname slave1  #修改主机名
cat /erc/hosos  #由于在单台mesos推送来的配置文件
192.168.10.38 master
192.168.10.41 master1
192.168.10.39 master2
192.168.10.42 slave
192.168.10.46 slave1
ln -sf /root/mesos-0.25.0/build/bin/mesos-slave.sh /usr/sbin/mesos-slave   #创建软连接方便使用命名
yum install docker -y   #安转docker
systemctl start docker.service
systemctl enable docker.service
mesos-slave --containerizers="mesos,docker" --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs --master=192.168.10.38:5050 --no-hostname_lookup --ip=0.0.0.0 创建文件 指向master 运行任意网段进行访问

当三台mesos服务器运行启动mesos-master 后生在home目录下创建了q/目录后在进行配置zookeeper

配置zookeeper

tar zxvf zookeeper-3.4.6.tar.gz -C /home/q/
# 当三台mesos服务器运行启动mesos-master后生在home目录下创建了q/目录后在进行配置zookeeper

cd zookeeper-3.4.6/
mv conf/zoo_sample.cfg conf/zoo.cfg
vim zoo.cfg #修改主配置文件
dataDir=/home/q/zookeeper-3.4.6/data   #修改位置 数据存放位置
dataLogDir=/home/q/zookeeper-3.4.6/datalog  #数据日志文件
server.1=192.168.10.38:2888:3888  #指定三台master服务器 信息交换端口 选举端口
server.2=192.168.10.41:2888:3888
server.3=192.168.10.39:2888:3888

传输给其他master并且在/home/q/zookeeper-3.4.6 下创建 创建数据存放日志和数据日志文件和server 序列


#在master主机上操作(/home/q/zookeeper-3.4.6/中)
mkdir data datalog
echo 1 > data/myid server 序列
cat data/myid

#在master1主机上操作(/home/q/zookeeper-3.4.6/中)
mkdir data datalog
echo 2 > data/myid
cat data/myid 

#在master2主机上操作(/home/q/zookeeper-3.4.6/中)
mkdir data datalog
echo 3 > data/myid
cat data/myid

#在master主机上启动服务
./bin/zkServer.sh start conf/zoo.cfg 

#在master1主机上启动服务
./bin/zkServer.sh start conf/zoo.cfg

#在master2主机上启动服务
./bin/zkServer.sh start conf/zoo.cfg

#查看leader
./bin/zkServer.sh status

[[email protected] zookeeper-3.4.6]# ./bin/zkServer.sh start conf/zoo.cfg
JMX enabled by default
Using config: conf/zoo.cfg
Starting zookeeper ... STARTED
[[email protected] zookeeper-3.4.6]# ./bin/zkServer.sh status #查看状态
JMX enabled by default
Using config: /home/q/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower

[[email protected] zookeeper-3.4.6]# ./bin/zkServer.sh start conf/zoo.cfg
JMX enabled by default
Using config: conf/zoo.cfg
Starting zookeeper ... STARTED
[[email protected] zookeeper-3.4.6]# ./bin/zkServer.sh status #产看状态
JMX enabled by default
Using config: /home/q/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader   #此时192.168.10.41 就被选举为老大

[[email protected] zookeeper-3.4.6]# ./bin/zkServer.sh start conf/zoo.cfg
JMX enabled by default
Using config: conf/zoo.cfg
Starting zookeeper ... STARTED
[[email protected] zookeeper-3.4.6]# ./bin/zkServer.sh status #查看状态
JMX enabled by default
Using config: /home/q/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: standalone

#master
mesos-master --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs --no-hostname_lookup --ip=0.0.0.0 --zk=zk://192.10.38:2181/mesos --quorum=2

#master1
mesos-master --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs --no-hostname_lookup --ip=0.0.0.0 --zk=zk://192.10.175.41:2181/mesos --quorum=2

#master2
mesos-master --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs --no-hostname_lookup --ip=0.0.0.0 --zk=zk://192.168.10.39:2181/mesos --quorum=2

#slave
mesos-slave --containerizers="mesos,docker" --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs --master=zk://192.168.10.38:2181,192.168.10.41:2181,192.168.10.39:2181/mesos --no-hostname_lookup --ip=0.0.0.0



部署Marathon


wget http://downloads.mesosphere.com/marathon/v0.15.2/marathon-0.15.2.tgz
#下载地址使用迅雷添加链接从http复制到结尾在迅雷下载链接粘贴
tar zxvf marathon-0.15.2.tgz -C /home/q/

./bin/start --hostname 192.168.175.132 --master zk://192.168.10.38:2181,192.168.10.41:2181,192.168.10.39:2181/mesos --http_address 0.0.0.0

测试
http://192.168.10.42:8080/











原文地址:http://blog.51cto.com/13660858/2161464

时间: 2024-10-12 08:33:52

Marathon+Mesos+Docker部署的相关文章

Marathon+Mesos+Docker实战

Marathon+Mesos+Docker实战 Apache Mesos概述 Apache Mesos是一款基于多资源调度的开源集群管理套件,使容错和分布式系统更加容易使用实现,采用Master/Slave结构简化设计,将Master尽可能轻量级,进保存了Mesos Slave的状态信息 常见集群管理工具 工具 特点 优势 Apache Mesos 需要独立部署mesos-slave进程:依赖framework的功能:可管理docker容器:成本较高 应为经过许多互联网公司的大规模实践,稳定性具

mesos+marathon管理docker集群

服务器架构 主机名 IP 安装服务 mesos-master 192.168.56.7 docker.mesos-master.mesos-slave.marathon.zookeeper mesos-slave 192.168.56.8 docker.mesos-slave.zookeeper 系统环境 # uname -r 3.10.0-229.el7.x86_64 # cat  /etc/redhat-release CentOS Linuxrelease 7.1.1503 (Core)

Mesos&Marathon实现容器部署

mesos&marathon架构说明 Mesos实现了两级调度架构,它可以管理多种类型的应用程序.第一级调度是Master的守护进程,管理Mesos集群中所有节点上运行的Slave守护进程.集群由物理服务器或虚拟服务器组成,用于运行应用程序的任务,比如Hadoop和MPI作业.第二级调度由被称作Framework的"组件"组成.Framework包括调度器(Scheduler)和执行器(Executor)进程,其中每个节点上都会运行执行器.Mesos能和不同类型的Framewo

使用Mesos和Marathon管理Docker集群

分布式系统是难于理解.设计.构建 和管理的,他们将比单个机器成倍还要多的变量引入到设计中,使应用程序的根源问题更难发现.SLA(服务水平协议)是衡量停机和/或性能下降的标准,大多数现代应用程序有一个期望的弹性SLA水平,通常按"9"的数量增加(如,每月99.9或99.99%可用性).每个额外的9变得越来越难实现. 分布式系统通常是以静态分区,比如Akka/Play. Spark/Hadoop.Storm和 Redis各自分区分组划分.静态分区带来的缺点是增加复杂性,随着机器数量增加,软

zookeeper+mesos+docker+swarm

zookeeper 集群安装 1.下载 wget http://mirrors.cnnic.cn/apache/zookeeper/stable/zookeeper-3.4.8.tar.gz 2.解压 mkdir /usr/local/zookeeper && tar zxvf zookeeper-3.4.8.tar.gz && mv zookeeper-3.4.8/* /usr/local/zookeeper ** rm -rf zookeeper-3.4.8 3.创建配

【Docker江湖】之docker部署与理解

转载请注明出处:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Github:https://github.com/thinkgamer Docker江湖 [Docker江湖]之Docker部署与理解 [Docker江湖]之hub上镜像的使用,Dockerfile语法解读和数据管理 [Docker江湖]之创建带有SSH服务的镜像 写在前边的话 在之前便想学习Docker技术了,可是一直没有机会,近期在做elk的一个项目

Centos7 下面安装docker 部署Nginx

实验 环境 Centos 7 操作系统 安装docker yum install docker -y 查看docker 是否安装成功 docker -v Docker version 1.12.6, build 3a094bd/1.12.6 启动docker systemctl start docker 部署Nginx 获取基础镜像 docker pull nginx:1.10.3 查看 镜像 1.直接启动容器 docker run -d -p 8080:80 nginx:1.10.3 解释:

docker'部署

环境:ubuntu-14.04.4-server-amd64 1.更换阿里云源 备份源配置文件: $ sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup $ sudo vim /etc/apt/sources.list 删除文件内容,更新为: deb http://mirrors.aliyun.com/ubuntu trusty main restricted deb-src http://mirrors.aliyun.com/u

docker部署tomcat乱码和系统时间不对处理

docker部署好程序后访问中文是乱码,(针对centos 6镜像) docker默认为POSIX 在Dockerfile 里添加 ENV         LANG         en_US.UTF-8 系统时间为UTC时间差8小时 在Dockerfile里添加 RUN     /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN     /bin/echo -e "ZONE="Asia/Shanghai"