AKS拉取ACR中service-jenkins镜像报ImagePullBackOff及rpc错误求助
AKS拉取ACR自定义镜像报错解决方案
Warning Failed 0s (x2 over 31s) kubelet Failed to pull image "XXX.azurecr.io/service-jenkins:latest": [rpc error: code = Unknown desc = failed to pull and unpack image "XXX.azurecr.io/service-jenkins:latest": failed to extract layer sha256:XXX: unexpected EOF: unknown, rpc error: code = Unknown desc = failed to pull and unpack image "XXX.azurecr.io/service-jenkins:latest": failed to resolve reference "XXX.azurecr.io/service-jenkins:latest": failed to authorize: failed to fetch anonymous token: unexpected status: 401 Unauthorized]
结合已完成的排查步骤,按以下优先级逐一验证修复:
- 排查仓库级细粒度权限问题:你已验证ACR全局拉取权限正常、拉取密钥匹配无误,且公共镜像可正常拉取,说明权限问题出在单仓库隔离配置。确认当前使用的SP或镜像拉取Secret是否对
service-jenkins仓库单独配置了拉取权限,ACR支持仓库级权限隔离,全局权限不会自动继承到所有私有仓库。 - 排查镜像层损坏问题:本地可正常拉取运行不代表ACR中存储的镜像层完整,重新推送
service-jenkins镜像到ACR,避免推送过程中网络丢包导致的镜像层损坏,触发拉取时解压EOF报错。 - 排查节点侧拉取限制:登录AKS工作节点手动执行
docker pull XXX.azurecr.io/service-jenkins:latest复现拉取操作,确认节点到ACR的网络是否存在限流、丢包,以及节点临时存储剩余容量是否足够容纳该镜像的所有层。 - 排查标签冲突问题:
latest标签存在多次覆盖更新的可能,给镜像打固定版本标签重新推送拉取,避免节点缓存的旧标签元数据和ACR最新内容不匹配导致的权限校验失败。 - 排查容器运行时配置问题:确认AKS节点的containerd/docker配置是否存在针对特定镜像前缀/标签的拦截规则,避免自定义配置拦截了该镜像的拉取请求。
内容的提问来源于stack exchange,提问作者Parth
相关产品推荐
相关产品推荐

