You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法从ACR拉取镜像到Minikube VM,容器创建停滞求助

排查Minikube Pod卡在ContainerCreating(镜像拉取)的问题

针对你在Azure VM上的Minikube环境,Pod一直处于Pending状态、卡在拉取ACR镜像的情况,我整理了几个常见的排查方向和解决方法:

1. 先验证Minikube节点的网络连通性

首先得确认Minikube节点能正常访问你的ACR:

  • 进入Minikube节点:minikube ssh
  • 尝试ping你的ACR域名:ping healthcareakscicdacr.azurecr.io,如果无法解析或超时,说明Azure VM的DNS配置、NSG出站规则可能限制了网络访问
  • 再用curl测试HTTPS连接:curl -v https://healthcareakscicdacr.azurecr.io/v2/,如果返回401 Unauthorized是正常的(因为需要认证),但如果是连接超时/拒绝,那肯定是网络层面的问题

2. 确认ACR拉取Secret的正确性

虽然你按文档创建了Secret,但细节容易出错:

  • 检查Secret是否存在于Pod所在的命名空间:kubectl get secrets -n <你的命名空间>
  • 解密验证Secret内容:kubectl get secret <你的Secret名称> -o jsonpath='{.data.\.dockerconfigjson}' | base64 -d,查看里面的ACR域名、用户名(就是你的ACR名称)、访问密钥是否和Azure门户里的一致
  • 关键:确保你的Pod YAML里已经配置了imagePullSecrets,比如:
    spec:
      containers:
      - name: login-functionality
        image: healthcareakscicdacr.azurecr.io/loginfunctionality:latest
      imagePullSecrets:
      - name: <你的Secret名称>
    
    没加这个配置的话,Minikube根本不会用你创建的Secret去拉取私有镜像。

3. 手动在Minikube节点拉取镜像测试

直接在Minikube节点里手动拉取镜像,能快速定位是认证还是网络问题:

docker pull healthcareakscicdacr.azurecr.io/loginfunctionality:latest

如果拉取失败,终端会给出明确的错误提示:比如unauthorized说明认证有问题,timeout说明网络不通,manifest not found说明镜像不存在。

4. 检查Azure VM的网络限制

  • 查看Azure VM的NSG出站规则,确保允许**HTTPS(443端口)**的出站流量,ACR镜像拉取必须用443端口
  • 如果VM在虚拟网络里,还要检查是否有防火墙或路由规则阻止了对ACR的访问

5. 确认ACR的镜像和权限

  • 登录Azure门户,进入你的ACR,在「存储库」里确认loginfunctionality:latest镜像确实存在
  • 检查创建Secret时用的ACR账号,是否在ACR的「访问控制(IAM)」里被分配了AcrPull角色,没有这个权限的话也会拉取失败

先从手动拉取镜像这一步开始排查,能最快缩小问题范围,再根据错误提示针对性解决。

内容的提问来源于stack exchange,提问作者Sormita Chakraborty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 10:32:34