请注意,我检查过的任何地方都没有问过这个问题。这是我所做的。我能够部署 mesos、marathon 和 docker 的单个实例。下一步我希望有 2 个 mesos 从机(docker 容器)相互链接。只需使用 docker 即可通过使用 docker link 功能来实现相同的目的。但是,在使用编排(mesos)和调度程序(marathon)时,您似乎需要使用服务发现。
我的设置很简单并且在单个主机上运行。因此,我将有 2 个 docker 容器,其中一个运行简单的 pub/sub,另一个运行rabbitmq。如何在此设置中使用 HA 代理。我看过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:friend_port
映射到 actual_host:actual_port
的规则。
3) 配置您的应用程序以在 localhost:friend_port
上相互查找。 HAProxy 将适本地路由连接。
希望这有助于您的理解!
关于docker - HaProxy 用于马拉松 mesos docker 链接容器上的服务发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28626083/