我正在查看 Docker Swarm 主机,它是我们的 Docker Swarm 集群中唯一的主机(不,不推荐)。
由于一个Moby 中的 DNS 问题我们通过主机的外部 IP(192.168.1.50)或通过docker_gwbridge
(172.18.0.1)发送容器内流量。这是可行的,因为这些请求将被 DNAT 到 172.18.0.2(位于处理 VIP/负载平衡功能的 Docker 容器前面)
我们随机发现 nginx 容器和 memcached 容器(两个不同的容器)之间的请求持续时间需要 1 秒或更长时间。
我们通过运行来看到这一点mc_conn_测试器在 nginx 容器内。
当两个容器之间的流量通过 192.168.1.50 时,当我们在测试中使用 192.168.1.50 时,mc_conn_tester.pl 会报告大量 1 秒请求。如果我们针对 172.18.0.1 运行 mc_conn_tester.pl,则看不到任何 1 秒请求。
当两个容器之间的流量通过 172.18.0.1 时,当我们在测试中使用 172.180.1 时,mc_conn_tester.pl 会报告大量 1 秒请求。如果我们针对 192.168.1.50 运行 mc_conn_tester.pl,则看不到任何 1 秒请求。
什么可能导致这种行为并导致 1 秒(及以上)的延迟,我们如何进一步调试它?