从ECR存储库中提取docker映像时出现间歇性DNS问题

时间:2018-08-14 12:56:27

标签: amazon-web-services docker amazon-ec2 dns docker-swarm

有人遇到与docker pull相关的问题。从那以后,我们最近将docker升级到18.03.1-ce。尽管我们不确定是否与docker有关,但只是想知道是否有人遇到过此问题。

我们已经使用tcp dump完成了一些故障排除,正在进行的DNS查询在1024个数据包的允许限制内。这是对EC2的限制,我们还尝试通过修改/etc/resolv.conf文件以使用更高的retry \ timeout值来解决该问题,但这似乎无济于事。

我们逐行进行了数据包捕获,发现了一些东西。我们发现一些回应是负面的。如果您使用Wireshark,则可以使用“ udp.stream eq 12”作为过滤器来查看否定答案之一。我们可以看到解析器发送了一个答案“ No such name”。所有得到否定响应的请求都在请求中使用以下名称:

354XXXXX.dkr.ecr.us-east-1.amazonaws.com.ec2.internal

你们中的任何人都会偶然知道为什么将ec2.internal添加到DNS末尾吗?如果对此名称进行挖掘,它将失败。因此,似乎错误的名称被发送到服务器,并以“无此主机”作为响应。码头工人是否发送了错误的DNS名称以进行解析。

我们看到此问题间歇地发生。期待帮助。预先感谢。

预期行为

5.0.25_61: Pulling from rrg
Digest: sha256:50bbce4af6749e9a976f0533c3b50a0badb54855b73d8a3743473f1487fd223e
Status: Downloaded newer image forXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/rrg:5.0.25_61

实际行为

docker-compose up -d rrg-node-1
Creating rrg-node-1

ERROR: for rrg-node-1 Cannot create container for service rrg-node-1: Error response from daemon: Get https:/XXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/v2/: dial tcp: lookup XXXXXXXX.dkr.ecr.us-east-1.amazonaws.com on 10.5.0.2:53: no such host

重现问题的步骤

docker pull XXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/rrg:5.0.25_61

docker版本的输出:

(Docker版本18.03.1-ce,内部版本3dfb8343b139d6342acfd9975d7f1068b5b1c3d3) 码头工人信息的输出:

([ec2-user@ip-10-5-3-45 ~]$ docker info
Containers: 37
 Running: 36
 Paused: 0
 Stopped: 1
Images: 60
Server Version: swarm/1.2.5
Role: replica
Primary: 10.5.4.172:3375
Strategy: spread
Filters: health, port, containerslots, dependency, affinity, constraint
Nodes: 12

Plugins:
 Volume:
 Network:
 Log:
Swarm:
 NodeID:
 Is Manager: false
 Node Address:
Kernel Version: 4.14.51-60.38.amzn1.x86_64
Operating System: linux
Architecture: amd64
CPUs: 22
Total Memory: 80.85GiB
Name: mgr1
Docker Root Dir:
Debug Mode (client): false
Debug Mode (server): false
Experimental: false
Live Restore Enabled: false

WARNING: No kernel memory limit support)

0 个答案:

没有答案