在docker swarm中使用自定义服务发现

问题描述

我在服务器上有一个docker swarm模式编排,并且根据我的业务需求,我有一个自定义服务发现(它也由swarm运行)。

在服务发现上运行呼叫注册方法并介绍其联系信息后的每项服务。

因此,服务发现可以通过引入的ip和端口反转流量并平衡实例之间的负载

我的问题是,当一个实例(毁在容器中)调用发现注册方法时,他的remote-addr不是真实的(意味着它不等于hostname -i),并且服务发现无法在网络中找到它

有什么想法吗?

解决方法

一种选择是使服务发现也加入到集群中。然后,它应该能够找到群内容器中的实例。

另一种方法是使容器与--net = host一起运行。虽然这可能会打败最初将它们聚集在一起的原因。