创建pod时提示错误

错误一:显示如下两种提示

[root@master ~]#kubectl get pods
NAME                         READY   STATUS             RESTARTS   AGE
net-test1-7c9c4b94d6-5mddl   1/1     Running            0          2m41s
net-test1-7c9c4b94d6-xk8jp   0/1     ImagePullBackOff   0          5s
[root@master ~]#kubectl get pods
NAME                         READY   STATUS         RESTARTS   AGE
net-test1-7c9c4b94d6-5mddl   1/1     Running        0          2m39s
net-test1-7c9c4b94d6-xk8jp   0/1     ErrImagePull   0          3s

排查问题原因

检查pod的日志,发现是无法下载pod的镜像

[root@master ~]#kubectl logs net-test1-7c9c4b94d6-xk8jp 
Error from server (BadRequest): container "net-test1" in pod "net-test1-7c9c4b94d6-xk8jp" is waiting to start: trying and failing to pull image

查看出问题的pod处于哪个节点之上,发现在node1节点上

[root@master ~]#kubectl get pods -o wide 
NAME                         READY   STATUS             RESTARTS   AGE   IP          NODE    NOMINATED NODE   R
net-test1-7c9c4b94d6-xk8jp   0/1     ImagePullBackOff   0          13s   10.10.1.7   node1   <none>           <
net-test1-7c9c4b94d6-5mddl   1/1     Running            0          14m   10.10.2.2   node2   <none>

在node1节点查看是否可以手动下载镜像,发现已经无法下载

[root@node1 ~]#docker pull alpine
Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 127.0.0.53:53: server misbehaving

检查node1节点是否能够网络通讯,发现无法进行名称解析

[root@node1 ~]#ping www.baidu.com
ping: www.baidu.com: Temporary failure in name resolution

解决问题

修改该节点的DNS,当前主机为ubuntu系统

[root@node1 ~]#vim /etc/systemd/resolved.conf 
#取消这一行注释,加入DNS解析地址
[Resolve]
DNS=8.8.8.8

在主节点上查看

[root@master ~]#kubectl get pods
NAME                         READY   STATUS    RESTARTS   AGE
net-test1-7c9c4b94d6-5mddl   1/1     Running   0          5m44s
net-test1-7c9c4b94d6-xk8jp   1/1     Running   0          3m8s

错误二:出现如下提示信息

[root@master ~]#kubectl get pods
nginx-ds-qd2ng   0/1     ImageInspectError   0          5m39s
[root@master ~]#kubectl describe pods nginx-ds-r8rzv
......
Events:
  Type     Reason             Age               From               Message
  ----     ------             ----              ----               -------
  Normal   Scheduled          48s               default-scheduler  Successfully assigned default/nginx-ds-r8rzv to k8s02
  Warning  MissingClusterDNS  6s (x6 over 48s)  kubelet, k8s02     pod: "nginx-ds-r8rzv_default(696bfe3c-b37b-11e9-9873-000c29878317)". kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to "Default" policy.
  Warning  InspectFailed      6s (x5 over 48s)  kubelet, k8s02     Failed to inspect image "nginx:1.7.9": rpc error: code = Unknown desc = Error response from daemon: readlink /data/docker/data/overlay2: invalid argument
  Warning  Failed             6s (x5 over 48s)  kubelet, k8s02     Error: ImageInspectError

删除节点上的镜像文件,重新下载

[root@node1 ~]#docker image rm 84581e99d807
Untagged: nginx:1.7.9
Untagged: nginx@sha256:e3456c851a152494c3e4ff5fcc26f240206abac0c9d794affb40e0714846c451
Deleted: sha256:84581e99d807a703c9c03bd1a31cd9621815155ac72a7365fd02311264512656
Deleted: sha256:3b35ce69ff9691cd5c266a827dd889c05666135401756e559e8bbe1ac8e7dfdb
Deleted: sha256:62811140b8ff89fb0ce776cbcc7551b2d8f227065d2af585f1bad07fb07ee307
[root@master ~]#kubectl create -f nginx-ds.yml 
[root@master ~]#kubectl get pods
NAME             READY   STATUS    RESTARTS   AGE
nginx-ds-57ttr   1/1     Running   0          10m
nginx-ds-8725r   1/1     Running   0          10m
nginx-ds-8bkdd   1/1     Running   0          10m