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
相关产品推荐
相关产品推荐

