繁体   English   中英

HaProxy用于marathon mesos docker链接容器上的服务发现

[英]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,以确定运行应用程序实例的主机和端口以及已知的“友好”端口是什么。

在服务发现文章的示例中,第一个应用程序具有友好端口80443 ,而第二个应用程序具有友好端口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配置。

尝试https://github.com/eBayClassifiedsGroup/PanteraS所有在一个容器中。

使用Mesos-DNS,您还可以执行以下操作:

  1. 如本指南中所述设置mesos-dns: http//programmableinfrastructure.com/guides/service-discovery/mesos-dns-haproxy-marathon/ (您可以跳过不需要的HAProxy步骤)
  2. 当您启动docker容器时,请确保它们的/etc/resolv.conf文件中有“namespace%slave_ip_with_mesos_dns%”(用IP地址替换字符串)。
  3. 如果让我们说一个应用程序的名称是“偷看”它应该可以从peek.marathon.mesos的其他应用程序访问

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM