gpt4 book ai didi

docker - 与 Rancher 的跨容器/主机通信

转载 作者:行者123 更新时间:2023-12-02 06:37:40 29 4
gpt4 key购买 nike

我正在尝试 Consul、Rancher 和 Docker。

所以我有一个在 4 个不同主机上运行的 REST 服务。该服务的每个实例使用容器链接将自身注册到单个 Consul 容器中。也就是说,所有实例都知道 Consul 容器。

这很好用。

当 Consul 尝试对我的服务进行健康检查时,效果不佳。如果该服务的实例与 consul 容器在同一主机上运行,​​则可以正常工作。但在不同主机上运行的任何实例都会失败。地址无法访问。

我尝试通过几种不同的方式提取服务实例容器 IP。1) 列出容器内所有可用的网络接口(interface)和 IP。2) 容器内的“主机名-i”。

它们都会产生 IP。例如172.16.0.06而 Rancher 列出了同一容器的 IP,例如 10.43.100.24

我的猜测是,Consul 应该对 Rancher 显示的 IP 执行健康检查,而不是我在容器内提取的 IP。

我在这里有点不知所措,我的服务应该如何找到它应该用来在Consul中注册自己的IP?

(我知道这实际上并不是 Consul 的使用方式,但问题是一台主机上的容器无法访问另一台主机上的容器。所以 Consul 部分只是将上下文放在我的内容上我正在尝试)

最佳答案

docker 发出的 IP 地址在集群中不是唯一的。因此,Rancher 使用 10.42.0.0/16 子网来给出唯一的 IP 地址。

您可以使用此命令找到 Rancher IP 地址

ip addr

如果您可以将应用程序配置为使用 Rancher IP 地址,您将能够跨主机进行通信。

有关 Rancher 内部网络的详细信息,请查看此页面:http://rancher.com/day-life-packet-inside-rancher/

故障排除指南: http://docs.rancher.com/rancher/v1.2/en/faqs/troubleshooting/#cross-host-communication

关于docker - 与 Rancher 的跨容器/主机通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38877363/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com