关于Marathon-lb
Marathon-lb是个基于HAProxy的快速代理和负载均衡。他能为基于TCP和HTTP协议的应用提供代理和负载均衡,此外还支持SSL、健康检查、HTTP压缩、Lua脚本等特性。Marathon-lb通过Marathon的EventBus可以自动获取Marathon上每个应用的信息,并且能够为每组应用生成HAProxy配置。不同于通过域名机制来发现服务的Mesos-DNS,Marathon-lb是通过servicePort服务端口来发现服务外,另外,还可以通过VHOST来访问服务。
安装与运行
从docker公共仓库可以直接下载marathon-lb的容器镜像,下载之后的镜像可以直接用run命令运行,也可以将其跑在Marathon上面。我在测试环境是用Marathon来跑到Marathon-lb,其json的配置文件如下:
{
"id": "/test/marathon-lb",
"cmd": null,
"cpus": 0.5,
"mem": 128,
"disk": 0,
"instances": 1,
"container": { "type": "DOCKER", "volumes": [], "docker": { "image": "marathon-lb", "network": "HOST", "privileged": true, "parameters": [], "forcePullImage": true } },
"portDefinitions": [ { "port": 0, "protocol": "tcp", "labels": {} } ],
"args": [ "sse", "-m", "http://192.168.0.101:8080", "-m", "http://192.168.0.102:8080", "-m", "http://192.168.0.103:8080", "--group", "testgp" ] }
这样Marathon-lb就可以以在Marathon上运行起来了。如果应用希望使用这个Marathon-lb,那么在创建时需要指定两个参数:HAPROXY_GROUP和HAPROXY_{n}_VHOST。
github上有一下说明文档,可以参考学习:
https://github.com/mesosphere/marathon-lb/blob/master/Longhelp.md#templates
后续再补充…
还没有评论,来说两句吧...