文档章节

marathon上部署marathon-lb服务发现与负载均衡

testwork
 testwork
发布于 2016/05/23 14:35
字数 525
阅读 1946
收藏 1

1) docker pull mesosphere/marathon-lb

marathon-lb的镜像配置json文件
重命名为marathon-lb.json
{
"id": "marathon-lb",
"instances": 1,
"constraints": [["hostname", "UNIQUE"]],
"container": {
"type": "DOCKER",
"docker": {
"image": "docker.io/mesosphere/marathon-lb",
"privileged": true,
"network": "HOST"
}
},
"args": ["sse", "-m","http://master1_ip:8080","--group", "external"]
}
部署
curl -i -H 'Content-Type: application/json' 172.31.17.71:8080/v2/apps -d@marathon-lb.json

注意里面的master1_ip是marathon的ip

注意group后面的external参数

这时候回过头来看docker_nginx.json文件

[root@centos7 mywork]# cat docker_nginx.json 
{
  "id":"nginx",
  "labels": {
     "HAPROXY_GROUP":"external",
     "HAPROXY_0_VHOST":"nginx.marathon.mesos"
  },
  "cpus":0.2,
  "mem":20.0,
  "instances": 2,
  "healthChecks": [{ "path": "/" }],
  "container": {
    "type":"DOCKER",
    "docker": {
     "image": "nginx",
     "network": "BRIDGE",
     "portMappings":[{"containerPort":80,"hostPort":0,"servicePort":80,"protocol":"tcp"}]
    }
  }
}

注意

1) containerPort为80,是指容器内的端口

2) hostPort是当前主机映射到contenterPort的端口,对应的.

56fc5bb6d80d        nginx                                           "nginx -g 'daemon off"   10 minutes ago      Up 10 minutes       443/tcp, 0.0.0.0:31757->80/tcp   mesos-c3bcff71-e3ac-455f-b228-e350f7aa5035-S0.5914a1f4-378e-4b7d-a19d-caf07a563c9d

如果hostPort为0的话,则说明是随机的,

3) serverPort是marathon-lb需要配置的haproxy代理暴露的端口,则设置为80.

     这时候进入marathon-lb的容器里面,查看生成的haproxy.cfg文件

     这是最后面一段新生成的

frontend nginx_80
  bind *:80
  mode http
  use_backend nginx_80

backend nginx_80
  balance roundrobin
  mode http
  option forwardfor
  http-request set-header X-Forwarded-Port %[dst_port]
  http-request add-header X-Forwarded-Proto https if { ssl_fc }
  option  httpchk GET /
  timeout check 20s
  server centos7_1_10_57_137_131_31757 10.57.137.131:31757 check inter 60s fall 4
  server centos7_1_10_57_137_131_31834 10.57.137.131:31834 check inter 60s fall 4

  这时候访问haproxy的80端口,则是请求到后端的2台nginx的主机上了.

4) 查看haproxy的监控页面

   查看方法

API endpoints

Marathon-lb exposes a few endpoints on port 9090 (by default). They are:

Endpoint Description
:9090/haproxy?stats HAProxy stats endpoint. This produces an HTML page which can be viewed in your browser, providing various statistics about the current HAProxy instance.
:9090/haproxy?stats;csv This is a CSV version of the stats above, which can be consumed by other tools. For example, it's used in the zdd.py script.
:9090/_haproxy_health_check HAProxy health check endpoint. Returns 200 OK if HAProxy is healthy.
:9090/_haproxy_getconfig Returns the HAProxy config file as it was when HAProxy was started. Implemented ingetconfig.lua.
:9090/_haproxy_getpids Returns the PIDs for all HAProxy instances within the current process namespace. This literally returns $(pidof haproxy). Implemented in getpids.lua. This is also used by the zdd.py script to determine if connections have finished draining during a deploy.

最痛苦的就是docker pull ,太慢了....

© 著作权归作者所有

共有 人打赏支持
testwork
粉丝 4
博文 74
码字总数 21048
作品 0
崇明
程序员
私信 提问
Mesos+Zookeeper+Marathon的Docker管理平台部署记录(2)--负载均衡marathon-lb

之前介绍了Mesos+Zookeeper+Marathon的Docker管理平台部署记录(1)的操作,多余的废话不说了,下面接着说下在该集群环境下的负载均衡marathon-lb的部署过程: 配置过程如下: 1)首先分别在...

吞吞吐吐的
2017/10/12
0
0
下一代云计算平台Apache Mesos定制自己的PaaS(应用发布+负载均衡+服务发现)

书接上文《下一代云计算平台Apache Mesos之使用marathon发布应用》 作为一个简单的PaaS(平台即服务),应该具备发布应用,调整应用个数,重启应用,暂停应用(marathon提供)以及负载均衡和...

引鸩怼孑
2015/05/05
0
0
最全面的Rancher编排引擎剖析都在这儿了!

Rancher的最新版本增加了对几个常见编排引擎的支持。 除了Cattle之外新加支持三个Docker社区中使用最广泛的编排引擎,包括Swarm(Docker Native Orchestration)、Kubernetes和Mesos,它们将...

wise2c
2016/12/27
221
0
Swarm Kubernetes Marathon 编排引擎对比剖析

Docker Native Orchestration 基本结构 Docker Engine 1.12 集成了原生的编排引擎,用以替换了之前独立的Docker Swarm项目。Docker原生集群(Swarm)同时包括了(Docker Engine / Daemons),...

店家小二
2018/12/16
0
0
HTTP反向代理、负载均衡软件--Traefik

Træfɪk 是一个新型的http反向代理、负载均衡软件,能轻易的部署微服务. 它支持多种后端 (Docker, Swarm, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB, Rest API, file...) ,可以对配...

justintung
2016/04/08
6.7K
10

没有更多内容

加载失败,请刷新页面

加载更多

Linux iptables之mangle表使用案例

mangle表的用途 mangle表的主要功能是根据规则修改数据包的一些标志位,以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由。 mangel表使用示例 示例1-策略路由1 内网的客户机通...

月下狼
36分钟前
2
0
OSChina 周日乱弹 —— 兼职我想去学学布偶戏

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy : 《火炎 - 女王蜂》 《火炎 - 女王蜂》 手机党少年们想听歌,请使劲儿戳(这里) @小鱼丁 :还在睡觉突然接到一个小哥哥电话“x...

小小编辑
48分钟前
42
3
租房软件隐私保护如同虚设

近日,苏州市民赵先生向江苏新闻广播新闻热线025-84658888反映,他在“安居客”手机应用软件上浏览二手房信息,并且使用该软件自动生成的虚拟号码向当地一家中介公司进行咨询。可电话刚挂不久...

linux-tao
今天
3
0
分布式项目(五)iot-pgsql

书接上回,在Mapping server中,我们已经把数据都整理好了,现在利用postgresql存储历史数据。 iot-pgsql 构建iot-pgsql模块,这里我们写数据库为了性能考虑不在使用mybatis,换成spring jd...

lelinked
今天
6
0
一文分析java基础面试题中易出错考点

前言 这篇文章主要针对的是笔试题中出现的通过查看代码执行结果选择正确答案题材。 正式进入题目内容: 1、(单选题)下面代码的输出结果是什么? public class Base { private Strin...

一看就喷亏的小猿
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部