![azure kubernetes 服务 - 无法从 ACR 中提取图像 - 连接被拒绝 - 不一致](https://linux22.com/image/779996/azure%20kubernetes%20%E6%9C%8D%E5%8A%A1%20-%20%E6%97%A0%E6%B3%95%E4%BB%8E%20ACR%20%E4%B8%AD%E6%8F%90%E5%8F%96%E5%9B%BE%E5%83%8F%20-%20%E8%BF%9E%E6%8E%A5%E8%A2%AB%E6%8B%92%E7%BB%9D%20-%20%E4%B8%8D%E4%B8%80%E8%87%B4.png)
这个问题突然出现了,我们并没有做任何明显的改变。突然之间,我们的 AKS(Kubernetes 版本 1.23.8)集群的部署会随机失败,并出现以下错误。据我了解,这意味着在我们的 Azure 容器注册表中找不到应该部署的映像 - 即使它们确实存在那里。
failed to do request: Head "https://XXX.azurecr.io/v2/XXX/manifests/5510":
dial tcp: lookup acrobherazueuw1bscdev001.azurecr.io on [::1]:53:
read udp [::1]:40545->[::1]:53: read: connection refused, rpc error:
code = Unknown desc = failed to pull and unpack image "XXX.azurecr.io/XXX:5510":
failed to resolve reference "XXX.azurecr.io/XXX:5510": failed to do request:
Head "https://XXX.azurecr.io/v2/XXX/manifests/5510": dial tcp:
lookup XXX.azurecr.io on [::1]:53: read udp [::1]:52124->[::1]:53: read: connection refused]
这肯定不是防火墙问题,我 100% 确信该映像存在。更有趣的是,任何随机映像实际上都有 20% 的机会可以工作并部署。但是,当使用两个副本部署时,也有可能其中一个会部署,而另一个会产生该错误。部署之前已经成功部署的映像并不能保证成功部署。
我现在真的陷入困境了——我在网上找不到任何好的帮助来解决这个特定问题。以前有其他人遇到过这个问题吗?
最好的,马蒂亚斯
答案1
Azure 中的服务中断 - 安装了自动节点更新的 k8s 节点获得的 ubuntu 版本存在 DNS 解析问题。因此无法解析容器注册表的 DNS 名称。
解决方案是手动将节点回滚到以前的 ubuntu 版本