docker - HaProxy 用于马拉松 mesos docker 链接容器上的服务发现

标签 docker haproxy mesos mesosphere marathon

请注意,我检查过的任何地方都没有问过这个问题。这是我所做的。我能够部署 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,以找出应用程序实例正在运行的主机和端口以及已知的“友好”端口是什么。

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

相关文章:

sql-server - 在 MSSQL (linux docker) 上为本地 Windows 用户创建登录

docker - 如何在相同的 Heroku 应用程序但不同的 docker 镜像中部署前端和后端

django - Docker postgres

shell - 如何从 Docker 容器内禁用和启用互联网连接?

load-balancing - HAProxy + Keycloak 重定向问题

ssl - 对 TLS-PSK 的服务器端支持

node.js - 如何聚合 mesos 中所有 docker 容器的日志

haproxy - 哪些配置文件

docker - 如何从马拉松UI彻底销毁Docker容器?

mesos - 在 Apache Marathon 上运行 Hadoop/Storm 任务