kubernetes 无法registry-1.docker.io从WSL2上的Kind群集节点访问www.example.com

lb3vh1jj  于 2023-01-29  发布在  Kubernetes
关注(0)|答案(2)|浏览(167)

我正在WSL2设置上使用kind部署设置和airflow k8s群集。当我执行标准helm install $RELEASE_NAME apache-airflow/airflow --namespace $NS时失败。进一步调查显示群集工作节点无法连接到registry-1.docker.io。
一个图像提取的错误日志

Failed to pull image "redis:6-buster": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/library/redis:6-buster": failed to resolve reference "docker.io/library/redis:6-buster": failed to do request: Head "https://registry-1.docker.io/v2/library/redis/manifests/6-buster": dial tcp: lookup registry-1.docker.io on 172.19.0.1:53: no such host

我可以从此节点访问所有其他网站,例如www.example.com、www.example.com和www.example.com等;甚至www.example.com也可以访问。此问题是registry-1.docker.io特有的。 google.com , yahoo.com merriam-webster.com etc. ; even docker.com works. This issue is very specific to registry-1.docker.io.
所有的搜索和链接似乎都是围绕着一般的互联网连接问题。

    • 当前解决方案:**如果我手动更改kind worker节点上的/etc/resolv.conf,使其指向WSL2 Debian主IP地址/etc/resolv.conf中的IP地址,那么它就可以工作。

但是,这是一个动态的群集和节点,我不能每次都这样做。我目前正在寻找一种方法,如何使它成为群集配置的一部分。某种方法,使它的工作只是说kind create cluster和一个应该能够使用kubectlhelm默认情况下。
然而,我更感兴趣的是找出为什么这个网络设置失败,特别是注册表1.docker.io.有没有一些配置,可以做,以避免改变DNS主机IP或谷歌DNS?因为目前的网络配置似乎工作几乎为互联网的其余部分.
我已经记录了所有的步骤和调查细节,包括github repositroy上的一些网络配置细节。如果你需要任何进一步的信息来帮助解决这个问题,请告诉我。我会继续更新github文档,因为我有进展。

    • 设置:**

Windows 11与WSL2没有任何Docker桌面
WSL2图像:Debian bullseye(11),在Linux上带有Docker引擎
Docker版本:20.10.2
种类版本:0.11.1
种类映像:最好的/节点:v1.20.7@sha256:cbeaf907fc78ac97ce7b625e4bf0de16e3ea725daf6b04f930bd14c 67c671ff9

xcitsw88

xcitsw881#

我不确定这是否是一个答案。在花了2天时间试图找到解决方案后。我想改变节点映像版本。在Kind release page上,它说1.21是0.11.1版本的最新镜像。2我用1.21甚至启动集群都有问题。3 1.20面对这个奇怪的DNS镜像。4所以用1.23。这一切都工作得很好,因此形象。
然而,令我惊讶的是,当我将集群配置更改回1.20时,DNS问题消失了。所以,我不知道由于映像的切换而发生了什么变化,但我不能再次重现这个问题!也许它会帮助其他人

zc0qhyus

zc0qhyus2#

我发现我已经找到了此错误的正确解决方案:将IPTables切换到传统模式已为我修复了此问题。
https://github.com/docker/for-linux/issues/1406#issuecomment-1183487816

相关问题