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

MicroK8s中ErrImagePull/ImagePullBackOff问题排查求助

MicroK8s中ErrImagePull/ImagePullBackOff问题排查求助

大家好,我最近在跟着《Microservices in .NET second edition》这本书的第三章内容,在本地用MicroK8s搭建集群部署购物车Web服务,结果遇到了镜像拉取的问题:Pod状态先是ImagePullBackOff,过段时间就变成了ErrImagePull,完全没法正常启动,想请各位帮忙分析下问题出在哪。

先说明下我的环境:开发系统是Manjaro Linux,用的是.NET 7,而书中的示例是基于.NET 5的,不知道版本差异会不会有影响。

我的Kubernetes配置文件(shopping-cart.yaml)

kind: Deployment
apiVersion: apps/v1
metadata:
  name: shopping-cart
spec:
  replicas: 1
  selector:
    matchLabels:
      app: shopping-cart
  template:
    metadata:
      labels:
        app: shopping-cart
    spec:
      containers:
      - name: shopping-cart
        image: your_unique_registry_name.azurecr.io/shopping-cart:1.0.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: shopping-cart
spec:
  type: LoadBalancer
  ports:
  - name: shopping-cart
    port: 5000
    targetPort: 80
  selector:
    app: shopping-cart

执行的命令

我先执行了部署命令:

kubectl apply -f shopping-cart.yaml

然后用kubectl get all查看资源状态,输出如下:

NAME                                 READY   STATUS             RESTARTS   AGE
pod/shopping-cart-784b775b94-v5ddl   0/1     ImagePullBackOff   0          25m
pod/shopping-cart-6bd7897fd5-bnlvh   0/1     ImagePullBackOff   0          36m

NAME                    TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/kubernetes      ClusterIP      10.152.183.1     <none>        443/TCP          13d
service/shopping-cart   LoadBalancer   10.152.183.254   <pending>     5000:32238/TCP   36m

NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/shopping-cart   0/1     1            0           36m

NAME                                       DESIRED   CURRENT   READY   AGE
replicaset.apps/shopping-cart-6bd7897fd5   1         1         0       36m
replicaset.apps/shopping-cart-784b775b94   1         1         0       25m

Pod详情信息

我又用kubectl describe pod shopping-cart查看了具体的Pod状态细节,输出如下:

Name:             shopping-cart-784b775b94-v5ddl
Namespace:        default
Priority:         0
Service Account:  default
Node:             dso-z68xud5b3/192.168.1.9
Start Time:       Sat, 31 Dec 2022 11:37:04 +0200
Labels:           app=shopping-cart
                  pod-template-hash=784b775b94
Annotations:      cni.projectcalico.org/containerID: 2f73bffa63650fc7bf3497b7255172f8d80f7834de0a7e2738e26579006261c2
                  cni.projectcalico.org/podIP: 10.1.59.225/32
                  cni.projectcalico.org/podIPs: 10.1.59.225/32
Status:           Pending
IP:               10.1.59.225
IPs:
  IP:           10.1.59.225
Controlled By:  ReplicaSet/shopping-cart-784b775b94
Containers:
  shopping-cart:
    Container ID:
    Image:          your_unique_registry_name.azurecr.io/shopping-cart:1.0.0
    Image ID:
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-6cghz (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  kube-api-access-6cghz:
    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
  ----     ------             ----                  ----     -------
  Warning  MissingClusterDNS  3m32s (x71 over 18m)  kubelet  pod: "shopping-cart-784b775b94-v5ddl_default(1e24b5d3-d921-45a1-b5ec-2edc35e651e4)". kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to "Default" policy.

Name:             shopping-cart-6bd7897fd5-bnlvh
Namespace:        default
Priority:         0
Service Account:  default
Node:             dso-z68xud5b3/192.168.1.9
Start Time:       Sat, 31 Dec 2022 11:26:03 +0200
Labels:           app=shopping-cart
                  pod-template-hash=6bd7897fd5
Annotations:      cni.projectcalico.org/containerID: a859a48851ce4eecb8311318cc71b6057fab2ad2c74e5e41b1bff419d3f210ae
                  cni.projectcalico.org/podIP: 10.1.59.224/32
                  cni.projectcalico.org/podIPs: 10.1.59.224/32
Status:           Pending
IP:               10.1.59.224
IPs:
  IP:           10.1.59.224
Controlled By:  ReplicaSet/shopping-cart-6bd7897fd5
Containers:
  shopping-cart:
    Container ID:
    Image:          shopping-cart
    Image ID:
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-hcmnb (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  kube-api-access-hcmnb:
    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
  ----     ------             ----                  ----     -------
  Warning  MissingClusterDNS  3m24s (x71 over 18m)  kubelet  pod: "shopping-cart-6bd7897fd5-bnlvh_default(5309b220-a258-4930-bf64-9b1cf0cbafc7)". kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to "Default" policy.

另外,书中的完整示例代码对应第三章内容,是作者公开的代码仓库里的章节内容。

麻烦大家帮我看看这个问题该怎么解决,感谢!

备注:内容来源于stack exchange,提问作者Dragno

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 08:52:34