我目前正在 Debian 12 docker 容器中运行 Selenium。有 5 个服务器:1 个管理器和 4 个使用 docker 的工作器。第一组 selenium 测试经常会失败,因为容器无法访问互联网,因此无法连接到测试站点。部分或所有服务器可能同时出现此问题,但根据任何可辨别的模式,它们并不总是/持续出现此问题。它们也会神奇地解决问题。有时,一个自动测试运行在连接时出现问题,而另一个测试运行正常。网络管理员表示两个 DNS 服务器上没有错误消息。
当我从 Centos 9 更改为 Debian 12 时,出现了此问题。我已将 1 台服务器改回 centos 9,但仍然遇到同样的问题。在此服务器上运行自动测试,同一集线器(2 个集线器,每个集线器 40 个容器)中的容器会出现互联网连接问题,而其他容器则运行正常。
发生这种情况时在服务器日志中发现的错误:msg=”[resolver] 无法查询外部 DNS 服务器”client-addr=”udp:172.18.x.xx:45568″dns-server=”udp:10.yy.yy.yyy:53″error=”read udp 172.18.x.xx:45568->10.yy.yy.yyy:53
/etc/resolve.conf 文件(已验证不是链接):
# Generated by NetworkManager
search company.domain
nameserver 10.yy.yy.yyy
nameserver 10.yy.yy.zzz
我尝试过但没有改进的事情:在 /etc/docker/daemon.json 中硬编码 DNS 地址,降级 docker,升级 docker,重新启动 docker,重新启动服务器
我已经为这个棘手的问题绞尽脑汁近一个月了,却毫无进展。你们有什么想法吗?
|