【问题标题】:Imagepull back off : Kubernetes mongo deployment图像拉回退:Kubernetes mongodb 部署
【发布时间】:2022-10-31 16:36:07
【问题描述】:

我尝试使用连接到虚拟盒的 minikube 集群创建部署。但它导致下面提到的 Imagepullbackoff 错误(在 Windows powershell-admin 权限上传递命令) 我尝试使用 docker 作为驱动程序,但结果相同。帮帮我!

PS C:\Windows\system32>kubectl 获取 pod 名称 就绪 状态 重新开始 年龄 mongo-express-98c6ff4b4-l7jmn 0/1 ImagePullBackOff 0 116m mongodb-deployment-67dcfb9c9f-mfvxr 0/1 ImagePullBackOff 0 116m

PS C:\Windows\system32> kubectl describe pod
Name:         mongo-express-98c6ff4b4-l7jmn
Namespace:    default
Priority:     0
Node:         minikube/192.168.59.113
Start Time:   Thu, 30 Jun 2022 19:10:41 +0530
Labels:       app=mongo-express
              pod-template-hash=98c6ff4b4
Annotations:  <none>
Status:       Pending
IP:           172.17.0.4
IPs:
  IP:           172.17.0.4
Controlled By:  ReplicaSet/mongo-express-98c6ff4b4
Containers:
  mongo-express:
    Container ID:
    Image:          mongo-express
    Image ID:
    Port:           8081/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME:  <set to the key 'mongo-root-username' in secret 'mongodb-secret'>  Optional: false
      ME_CONFIG_MONGODB_ADMINPASSWORD:  <set to the key 'mongo-root-password' in secret 'mongodb-secret'>  Optional: false
      ME_CONFIG_MONGODB_SERVER:         <set to the key 'database_url' of config map 'mongodb-configmap'>  Optional: false
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-lp9nk (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  kube-api-access-lp9nk:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                  From               Message
  ----     ------     ----                 ----               -------
  Normal   Scheduled  60m                  default-scheduler  Successfully assigned default/mongo-express-98c6ff4b4-l7jmn to minikube
  Warning  Failed     58m (x6 over 59m)    kubelet            Error: ImagePullBackOff
  Normal   Pulling    58m (x4 over 59m)    kubelet            Pulling image "mongo-express"
  Warning  Failed     58m (x4 over 59m)    kubelet            Failed to pull image "mongo-express": rpc error: code = Unknown desc = Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 10.0.2.3:53: no such host
  Warning  Failed     58m (x4 over 59m)    kubelet            Error: ErrImagePull
  Warning  Failed     29m (x2 over 36m)    kubelet            Failed to pull image "mongo-express": rpc error: code = Unknown desc = context deadline exceeded
  Normal   BackOff    19m (x141 over 59m)  kubelet            Back-off pulling image "mongo-express"


Name:         mongodb-deployment-67dcfb9c9f-mfvxr
Namespace:    default
Priority:     0
Node:         minikube/192.168.59.113
Start Time:   Thu, 30 Jun 2022 19:10:32 +0530
Labels:       app=mongodb
              pod-template-hash=67dcfb9c9f
Annotations:  <none>
Status:       Pending
IP:           172.17.0.3
IPs:
  IP:           172.17.0.3
Controlled By:  ReplicaSet/mongodb-deployment-67dcfb9c9f
Containers:
  mongodb:
    Container ID:
    Image:          mongo
    Image ID:
    Port:           27017/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Environment:
      MONGO_INITDB_ROOT_USERNAME:  <set to the key 'mongo-root-username' in secret 'mongodb-secret'>  Optional: false
      MONGO_INITDB_ROOT_PASSWORD:  <set to the key 'mongo-root-password' in secret 'mongodb-secret'>  Optional: false
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-ft77v (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  kube-api-access-ft77v:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                  From               Message
  ----     ------     ----                 ----               -------
  Normal   Scheduled  60m                  default-scheduler  Successfully assigned default/mongodb-deployment-67dcfb9c9f-mfvxr to minikube
  Warning  Failed     58m (x6 over 60m)    kubelet            Error: ImagePullBackOff
  Normal   Pulling    58m (x4 over 60m)    kubelet            Pulling image "mongo"
  Warning  Failed     58m (x4 over 60m)    kubelet            Failed to pull image "mongo": rpc error: code = Unknown desc = Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 10.0.2.3:53: no such host
  Warning  Failed     58m (x4 over 60m)    kubelet            Error: ErrImagePull
  Warning  Failed     34m                  kubelet            Failed to pull image "mongo": rpc error: code = Unknown desc = context deadline exceeded
  Normal   BackOff    19m (x134 over 60m)  kubelet            Back-off pulling image "mongo"

【问题讨论】:

  • 您的节点无法与注册表通信,请检查 Virtual box 网络设置。
  • 我尝试更改虚拟盒子上的互联网设置 - 它适用于 nginx 部署和示例“Hello minikube 部署”。但是仅使用 mongodb 部署,我再次收到错误为“Crashloopoff/Imagepullbackoff” - @Sam

标签: mongodb powershell kubernetes deployment virtualbox


【解决方案1】:

尝试先拉图像,然后创建部署。

minikube image pull mongo

UPD: 有时甚至image pull 也无济于事。 minikube 开发者说,你可以 curl 来检查你是否可以连接到 repo。也可能存在 ISP 问题。临时将我的 ISP 更改为移动数据并安装所需的 Pod 对我有用。

【讨论】:

    【解决方案2】:

    错误context deadline exceeded 表示 minikube 无法在预期的时间范围内拉取 mongo-express 图像。

    您可以通过在创建部署之前使用以下命令直接拉取映像来解决此问题。

    minikube image pull mongo-express
    

    【讨论】:

      【解决方案3】:

      我从 elver answer 和 this github discussion 获得灵感。

      确实是因为你要拉的镜像太大,而默认拉镜像的时间设置比较短。因此,您应该首先通过以下示例命令将此图像拉到本地,然后重新创建您的部署:

      minikube ssh docker pull mongo

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-25
        • 2020-02-25
        • 1970-01-01
        • 2019-11-26
        • 2018-08-24
        相关资源
        最近更新 更多