我正在与Consul,Rancher和Docker进行实验。与牧场主交叉容器/主机通信
所以我有这个REST服务在4个不同的主机上运行。 此服务的每个实例使用容器链接将其本身注册到单个Consul容器中。也就是说,所有实例都知道Consul容器。
这工作正常。
什么不工作正常时领事试图对我的服务进行健康检查。 如果该服务的一个实例与consul容器在同一主机上运行,则该工作正常。 但是,在不同主机上运行的任何实例都将失败。 地址unrachable。
我试图用几种不同的方式提取服务实例容器IP。 1)列出容器内所有可用的notwork接口和ip。 2)容器内的“hostname -i”。
他们都是知识产权。例如172.16.0.06
虽然牧场主列表IP如10.43.100.24
为同一个容器。
我的猜测是Consul应该对Rancher显示的IP执行健康检查,而不是在容器内提取的IP。
我在这里有点失落,我的服务应该如何找到它应该用于在Consul注册自己的IP?我知道这不是真的如何使用Consul,但问题是一个主机上的容器无法到达另一个主机上的容器..所以Consul部分只是把上下文放在我的上面正在尝试)