基本概念
Mesos:Mesos 采用与 Linux Kernel 相同的机制,只是运行在不同的抽象层次上。Mesos Kernel 利用资源管理和调度的 API 在整个数据中心或云环境中运行和提供引用(例如, Hadoop、 Spark、Kafaka、Elastic Search)。
ZooKeeper:ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google的Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
Marathon:Marathon 是一个 Mesos 框架,能够支持运行长服务,比如 Web 应用等。它是集群的分布式 Init.d,能够原样运行任何 Linux 二进制发布版本,如 Tomcat、Play 等等。它也是一种私有的 PaSS,实现服务的发现,为部署提供提供 REST API 服务,有授权和 SSL、配置约束,通过 HAProxy 实现服务发现和负载平衡。
部署
为了部署的方便 全部使用 docker 部署。
>>>>
master搭建
三台 mesos master 服务器
ip地址分别是 10.100.0.21,10.100.0.22,10.100.0.23
需要在master上分别部署 mesos mater , zookeeper , marathon
需要在10.100.0.21 上执行下列命令 :
marathon
docker run -d -e MARATHON_HOSTNAME=10.100.0.21 -e MARATHON_HTTPS_ADDRESS=10.100.0.21 -e MARATHON_HTTP_ADDRESS=10.100.0.21 -e MARATHON_MASTER=zk://10.100.0.22:2181,10.100.0.23:2181,10.100.0.21:2
181/mesos -e MARATHON_ZK=zk://10.100.0.22:2181,10.100.0.23:2181,10.100.0.21:2181/marathon --name marathon --net host --restart=always mesoscloud/marathon
mesos-master
HOST_IP=10.100.0.21
docker run -d --name mesos-master1 --net="host" -p 5050:5050 -e "MESOS_HOSTNAME=${HOST_IP}" -e "MESOS_IP=${HOST_IP}" -e "MESOS_ZK=zk://${HOST_IP}:2181/mesos" -e "MESOS_PORT=5050" -e
"MESOS_LOG_DIR=/var/log/mesos" -e "MESOS_QUORUM=1" -e "MESOS_REGISTRY=in_memory" -e "MESOS_WORK_DIR=/var/lib/mesos" mesoscloud/mesos-master
zookeeper
docker run -d -e MYID=1 -e SERVERS=10.100.0.21,10.100.0.22,10.100.0.23 --name zookeeper --restart=always --net=host mesoscloud/zookeeper
需要在10.100.0.22 上执行下列命令
marathon
docker run -d -e MARATHON_HOSTNAME=10.100.0.22 -e MARATHON_HTTPS_ADDRESS=10.100.0.22 -e MARATHON_HTTP_ADDRESS=10.100.0.22 -e MARATHON_MASTER=zk://10.100.0.22:2181,10.100.0.23:2181,10.100.0.21:2
181/mesos -e MARATHON_ZK=zk://10.100.0.22:2181,10.100.0.23:2181,10.100.0.21:2181/marathon --name marathon --net host --restart=always mesoscloud/marathon
mesos-master
HOST_IP=10.100.0.22
docker run -d --name mesos-master1 --net="host" -p 5050:5050 -e "MESOS_HOSTNAME=${HOST_IP}" -e "MESOS_IP=${HOST_IP}" -e "MESOS_ZK=zk://${HOST_IP}:2181/mesos" -e "MESOS_PORT=5050" -e
"MESOS_LOG_DIR=/var/log/mesos" -e "MESOS_QUORUM=1" -e "MESOS_REGISTRY=in_memory" -e "MESOS_WORK_DIR=/var/lib/mesos" mesoscloud/mesos-master
zookeeper
docker run -d -e MYID=2 -e SERVERS=10.100.0.21,10.100.0.22,10.100.0.23 --name zookeeper --restart=always --net=host mesoscloud/zookeeper
需要在10.100.0.23 上执行下列命令
marathon
docker run -d -e MARATHON_HOSTNAME=10.100.0.23 -e MARATHON_HTTPS_ADDRESS=10.100.0.23 -e MARATHON_HTTP_ADDRESS=10.100.0.23 -e MARATHON_MASTER=zk://10.100.0.22:2181,10.100.0.23:2181,10.100.0.21:2
181/mesos -e MARATHON_ZK=zk://10.100.0.22:2181,10.100.0.23:2181,10.100.0.21:2181/marathon --name marathon --net host --restart=always mesoscloud/marathon
mesos-master
HOST_IP=10.100.0.23
docker run -d --name mesos-master1 --net="host" -p 5050:5050 -e "MESOS_HOSTNAME=${HOST_IP}" -e "MESOS_IP=${HOST_IP}" -e "MESOS_ZK=zk://${HOST_IP}:2181/mesos" -e "MESOS_PORT=5050" -e
"MESOS_LOG_DIR=/var/log/mesos" -e "MESOS_QUORUM=1" -e "MESOS_REGISTRY=in_memory" -e "MESOS_WORK_DIR=/var/lib/mesos" mesoscloud/mesos-master
zookeeper
docker run -d -e MYID=3 -e SERVERS=10.100.0.21,10.100.0.22,10.100.0.23 --name zookeeper --restart=always --net=host mesoscloud/zookeeper
这样 mesos 的 master 就搭建完成。
>>>>
slave服务器搭建
下面是 mesos 的 slave 服务器 模拟4台
ip 地址是10.100.0.24 10.100.0.25 10.100.0.26 10.100.0.28
在10.100.0.24上运行下面的命令
docker run -d --net=host --pid=host --privileged=true --name=ms1 -v /usr/bin/docker:/usr/bin/docker -v /dev:/dev -v /var/run/docker.sock:/var/run/docker.sock -v
/var/log/mesos:/var/log/mesos -v /tmp/mesos:/tmp/mesos -e MESOS_HOSTNAME=10.100.0.24 -e MESOS_IP=10.100.0.24 -e MESOS_MASTER=zk://10.100.0.21:2181,10.100.0.22:2181,10.100.0.23:2181/mes
os -e MESOS_CONTAINERIZERS=docker,mesos mesoscloud/mesos-slave
在10.100.0.25上运行下面的命令
docker run -d --net=host --pid=host --privileged=true --name=ms1 -v /usr/bin/docker:/usr/bin/docker -v /dev:/dev -v /var/run/docker.sock:/var/run/docker.sock -v
/var/log/mesos:/var/log/mesos -v /tmp/mesos:/tmp/mesos -e MESOS_HOSTNAME=10.100.0.25 -e MESOS_IP=10.100.0.25 -e MESOS_MASTER=zk://10.100.0.21:2181,10.100.0.22:2181,10.100.0.23:2181/mes
os -e MESOS_CONTAINERIZERS=docker,mesos mesoscloud/mesos-slave
在10.100.0.26上运行下面的命令
docker run -d --net=host --pid=host --privileged=true --name=ms1 -v /usr/bin/docker:/usr/bin/docker -v /dev:/dev -v /var/run/docker.sock:/var/run/docker.sock -v
/var/log/mesos:/var/log/mesos -v /tmp/mesos:/tmp/mesos -e MESOS_HOSTNAME=10.100.0.26 -e MESOS_IP=10.100.0.26 -e MESOS_MASTER=zk://10.100.0.21:2181,10.100.0.22:2181,10.100.0.23:2181/mes
os -e MESOS_CONTAINERIZERS=docker,mesos mesoscloud/mesos-slave
在10.100.0.28上运行下面的命令
docker run -d --net=host --pid=host --privileged=true --name=ms1 -v /usr/bin/docker:/usr/bin/docker -v /dev:/dev -v /var/run/docker.sock:/var/run/docker.sock -v
/var/log/mesos:/var/log/mesos -v /tmp/mesos:/tmp/mesos -e MESOS_HOSTNAME=10.100.0.28 -e MESOS_IP=10.100.0.28 -e MESOS_MASTER=zk://10.100.0.21:2181,10.100.0.22:2181,10.100.0.23:2181/mes
os -e MESOS_CONTAINERIZERS=docker,mesos mesoscloud/mesos-slave
以上,搭建完成
查看
可以通过 http://${HOST_IP}:5050 查看 mesos 的服务器的状态:
使用 http://{HOST}:8080/ 来访问 marathon:
需要在 Docker Container 中输入对应的 images:
还需要配置一下端口:
docker 很快就能启动好。目前就启动了一个实例:
如果现在需要多个,可以选择 scale Application 数值调整到5:
可以瞬间运行多个容器:
关于扩容
scale Application 数值调整虽然能快速扩容,但是运行服务器的端口都是随机的,如果需要手工添加就会比较麻烦,好在我们有一个新的工具来帮助我们,一个定制化的 haproxy—— marathon-lb。
我们还是使用容器的方式来部署:
docker run -d --privileged -e PORTS=9090 --net=host mesosphere/marathon-lb sse -m http://10.100.0.21:8080 -m http://10.100.0.22:8080 -m http://10.100.0.23:8080 --group external
这样我们就能通过 9090 端口访问:
http://${HOST_IP}:9090/haproxy?stats
需要在配置 Environment Variables 变量的时候,添加2个变量:
➣HAPROXY_0_PORT=80
➣HAPROXY_GROUP=external
不管 scale 多少个容器, 都会通过 haproxy 的80端口代理 ,水平扩容非常的方便。
原文来自:岂安科技
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com
支持全球约2.4万个城市地区天气查询,如:天气实况、逐日天气预报、24小时历史天气等
支持识别各类商场、超市及药店的购物小票,包括店名、单号、总金额、消费时间、明细商品名称、单价、数量、金额等信息,可用于商品售卖信息统计、购物中心用户积分兑换及企业内部报销等场景
涉农贷款地址识别,支持对私和对公两种方式。输入地址的行政区划越完整,识别准确度越高。
根据给定的手机号、姓名、身份证、人像图片核验是否一致
通过企业关键词查询企业涉讼详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。