1

使用 k3d,当 pod 尝试通过 Internet 访问 URL 时,我收到 DNS 错误。

ERROR:
getaddrinfo EAI_AGAIN DNS could not be resolved

我怎样才能克服这个错误?

4

1 回答 1

0

这取决于您的上下文、操作系统、版本。

例如,您将在k3d-io/k3dissue 209中看到各种代理问题

这可能与 k3d 创建 docker 网络的方式有关。

实际上,k3d 为每个集群创建了一个自定义的 docker 网络,当这种情况发生时,通过 docker 守护进程完成解析。
这些请求实际上被转发到您主机中配置的 DNS 服务器resolv.conf。但是通过单个 DNS 服务器(docker 的嵌入式服务器)。

这意味着如果您的 daemon.json 像我的一样,没有配置为提供额外的 DNS 服务器,它默认为 8.8.8.8,例如,它不会解析任何公司地址。

当 k3d 启动集群并在那里指定 DNS 服务器时,提供一个自定义选项会很有用

这就是为什么有“ v3/networking: --networkflag to attach to existing networks ”,指的是Networking

在那个新标志之前:

对于那些有问题的人,一个简单的解决方法是将您的设备挂载/etc/resolve.conf到集群上:

k3d cluster create --volume /etc/resolv.conf:/etc/resolv.conf
于 2022-03-01T07:34:33.957 回答