[英]HaProxy for service discovery on a marathon mesos docker linked containers
请不要在我检查的任何地方询问。 这就是我所做的。 我能够部署单个mesos,marathon和docker实例。 向前迈出下一步我希望有2个mesos slave(docker containers)相互链接。 只需使用docker,就可以使用docker链接功能实现相同功能。 但是在使用业务流程(mesos)和调度程序(marathon)时,您似乎需要使用服务发现。
我的设置很简单,可以在一台主机上运行。 所以我将有2个docker容器,一个运行一个简单的pub / sub和一个运行rabbitmq。 如何在此设置中使用HA PRoxy。 我看过mesosphere http://mesosphere.com/docs/getting-started/service-discovery/提供的一些文件,但目前尚不清楚如何去做。
使用Mesos + Marathon + Docker进行服务发现的规范方法是您链接的文档中描述的内容。
我假设你已经能够让两个应用程序在Marathon中运行了。
通常情况是:
1)配置应用程序定义以包括应用程序所需的端口。
2)您设置提供的haproxy-marathon-bridge
脚本以使用像cron这样的实用程序定期运行。 这个脚本擦除了Marathon的API,以确定运行应用程序实例的主机和端口以及已知的“友好”端口是什么。
在服务发现文章的示例中,第一个应用程序具有友好端口80
和443
,而第二个应用程序具有友好端口8081
。
然后,该脚本生成haproxy.cfg
配置,该配置具有将localhost:friendly_port
映射到actual_host:actual_port
规则。
3)配置应用程序以在localhost:friendly_port
上相互查找。 HAProxy将适当地路由连接。
希望这有助于您理解!
我创建了一个可以在mesos中运行的haproxy服务发现docker容器。 它不是生产准备好的,但我在我的开发环境中使用它正在完成您正在尝试做的事情。 我更喜欢马拉松比赛的原因是我没有找到一个很好的方法来使用haproxy-marathon-bridge
进行复杂的haproxy配置。 使用spiderweb
您可以为haproxy配置创建一个模板,使您可以执行诸如acl路由等操作。它不支持健康检查,这是在生产准备就绪之前需要完成的事情。 你可以在这里看到这个项目https://github.com/SBRDevelopment/spiderweb 。
我们将Mesos和Marathon与consul和registartor结合在一起,因此最终您可以使用consul-template自动生成haproxy配置。
使用Mesos-DNS,您还可以执行以下操作:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.