我对服务发现和集群系统很陌生。我开始尝试使用 Mesos 和 Marathon 来部署 Docker 容器,Marathon REST API 和 UI 似乎做得很好。
我的问题是部署服务的实际发现。出于测试目的,我部署了一个通过 Marathon 扩展到 3 个实例的 Kafka 集群,就像我对 MongoDB 测试集群所做的那样。Mesos-DNS 客户端给了我一个类似的记录kafka.marathon.mesos
,mongo.marathon.mesos
这意味着从主机到容器的动态映射端口。问题是,我的客户明确需要有关目标端口的信息。有没有一种通用的方法可以自动和动态地从服务中获取这些端口信息?暴露多个端口的应用程序呢?
到目前为止我的想法: - 进行 REST 调用以获取有关已部署应用程序的状态并以某种方式提取相关数据 - 进行 DNS SRV 查找并以某种方式提取相关数据 - 拥有某种“主”,静态绑定到端口,具有动态的“客户”。
我搜索了很多这些信息,但最后大多数教程都以手动查找结束,这不是我的目标。