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

Kubernetes中无法拉取Mongo镜像问题求助

解决Kubernetes中MongoDB镜像拉取超时问题

问题场景

Deployment清单

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongodb-deployment
  labels: 
    app: mongodb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mongodb
  template:
    metadata:
      labels:
        app: mongodb
    spec:
      containers:
      - name: mongodb
        image: mongo
        ports:
        - containerPort: 27017
        env: 
        - name: MONGO_INITDB_ROOT_USERNAME
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-root-username
        - name: MONGO_INITDB_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-root-password

错误信息

Failed to pull image "mongo": rpc error: code = Unknown desc = context deadline exceeded
  Warning  Failed     13s    kubelet            Error: ErrImagePull
  Normal   BackOff    13s    kubelet            Back-off pulling image "mongo"
  Warning  Failed     13s    kubelet            Error: ImagePullBackOff

排查与解决步骤

  • 验证节点网络连通性
    登录到Kubernetes集群的工作节点,执行以下命令测试Docker Hub的连通性:

    curl -I https://registry-1.docker.io
    

    再尝试手动拉取镜像,确认是否是网络问题:

    docker pull mongo
    

    如果手动拉取也超时,说明节点无法正常访问Docker Hub,需要解决网络连通问题(比如检查防火墙、代理配置)。

  • 更换国内镜像源
    由于Docker Hub在国内访问可能不稳定,修改Deployment中的image字段为国内可信镜像源,比如阿里云镜像:

    image: registry.cn-hangzhou.aliyuncs.com/google_containers/mongo:latest
    

    修改后重新应用Deployment:

    kubectl apply -f your-deployment-file.yaml
    
  • 配置节点镜像加速
    在K8s工作节点上配置Docker镜像加速,编辑/etc/docker/daemon.json文件(如果不存在则创建):

    {
      "registry-mirrors": ["https://<你的阿里云镜像加速地址>.mirror.aliyuncs.com"]
    }
    

    重启Docker和kubelet服务:

    systemctl restart docker
    systemctl restart kubelet
    
  • 检查节点资源状态
    查看节点是否有足够的CPU、内存资源来拉取和运行镜像:

    kubectl describe node <节点名称>
    

    如果节点资源不足,需要释放资源或扩容节点。

  • 确认镜像拉取Secret(若使用私有仓库)
    如果你的镜像仓库是私有仓库,需要创建对应的imagePullSecret,并在Deployment的spec.template.spec中添加:

    imagePullSecrets:
      - name: <你的镜像拉取Secret名称>
    

内容的提问来源于stack exchange,提问作者Leon Mahbub

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:24:49