首页 > 解决方案 > 无法拉取映像“mcr.microsoft.comoss/calico/pod2daemon-flexvol:v3.18.1(缺少“/”)

问题描述

执行摘要

几个星期以来,我们偶尔会在所有 AKS Kubernetes 集群上看到以下错误:

Failed to pull image "mcr.microsoft.comoss/calico/pod2daemon-flexvol:v3.18.1

显然在“mcr.microsoft.com”之后缺少一个“/”。将集群从 1.17 升级到 1.20 后,问题开始出现。

这个拼写错误来自哪里?我们能做些什么吗?


一些细节

完整的错误是:

Failed to pull image "mcr.microsoft.comoss/calico/pod2daemon-flexvol:v3.18.1": rpc error: code = Unknown desc = failed to pull and unpack image "mcr.microsoft.comoss/calico/pod2daemon-flexvol:v3.18.1": failed to resolve reference "mcr.microsoft.comoss/calico/pod2daemon-flexvol:v3.18.1": failed to do request: Head https://mcr.microsoft.comoss/v2/calico/pod2daemon-flexvol/manifests/v3.18.1: dial tcp: lookup mcr.microsoft.comoss on 168.63.129.16:53: no such host

在 50% 的情况下,还会记录以下内容:

Pod 'calico-system/calico-typha-685d454c58-pdqkh' triggered a Warning-Event: 'FailedMount'. Warning Message: Unable to attach or mount volumes: unmounted volumes=[typha-ca typha-certs calico-typha-token-424k6], unattached volumes=[typha-ca typha-certs calico-typha-token-424k6]: timed out waiting for the condition

除了警告之外,似乎对集群健康没有可衡量的影响——我在任何服务中都看不到相关的错误。

我们没有找到导致该行为的触发器。它似乎与我们所做的任何更改(部署、扩展……)无关。

似乎也没有关于频率的模式。有时几天都没有问题,然后我们每天弹出10次错误。

另一个观察结果是 calico-kube-controller 和几个 pod 被重新启动。副本集和部署没有改变。

重启时间

由于 daemonset 的所有 pod 最终都在运行,因此问题似乎在一段时间后自行解决。

标签: azure-aks

解决方案


您是否在防火墙后面,并使用此链接进行设置

https://docs.microsoft.com/en-us/azure/aks/limit-egress-traffic

如果是这样,将 HTTP 添加到 mcr.microsoft.com,看起来 MS 最近在更新中错过了“s”

保罗


推荐阅读