Docker Swarm DNS 孤立 IP 地址

Docker Swarm DNS 孤立 IP 地址

系统信息:

  • Docker 引擎版本:17.06.2-ee-6

我和我的团队最近一直在观察我们的 Docker 集群中的奇怪行为,其中对服务(此处myservice:)的 REST 请求随机失败并被拒绝连接。

为了进行故障排除,我们删除并重新部署了该myservice服务。突然间,拒绝连接的请求数量增加,尽管所有容器都是刚刚启动并且运行正常。

因此,我们host myservice从同一网络中的容器运行并得到了如下结果:

myservice has address 172.10.13.241
myservice has address 172.10.0.81
Host myservice not found: 3(NXDOMAIN)

结果显示了两个 IP 地址,当直接测试 IP 地址(例如使用 curl)时,该地址172.10.13.241有效,而该地址172.10.0.81总是因连接被拒绝而失败 - 解释了为什么 50% 的请求都被拒绝连接。

然后我们myservice再次移除所有容器并运行host myservice一次,发现以下结果:

myservice has address 172.10.0.81
Host myservice not found: 3(NXDOMAIN)

虽然服务已被删除,但损坏的 IP 地址仍然被注册。

我们通过重新启动运行命令的容器进一步确保我们不会被某些 DNS 缓存所欺骗,但结果保持不变。


问题:

  • 怎么会这样呢?
  • 我可以/如何从 Docker 网络中删除孤立的 DNS 映射?
  • 我们可以做些什么来防止这种情况发生?

相关内容