Kubernetes-Pod仍处于ContainerCreating状态

Goi*_*nas 6 kubernetes weave kubectl

我对Kubernetes的所有事物都是陌生的,因此仍然有很多东西需要学习。

已经创建了两个节点的Kubernetes集群,并且两个节点(主节点和工作节点)都准备好进行工作,这很好:

[monkey@k8s-dp1 nginx-test]# kubectl get nodes
NAME      STATUS    ROLES     AGE       VERSION
k8s-dp1   Ready     master    2h        v1.9.1
k8s-dp2   Ready     <none>    2h        v1.9.1
Run Code Online (Sandbox Code Playgroud)

此外,所有Kubernetes Pod看起来都不错:

[monkey@k8s-dp1 nginx-test]# kubectl get pods --all-namespaces
NAMESPACE     NAME                              READY     STATUS    RESTARTS   AGE
kube-system   etcd-k8s-dp1                      1/1       Running   0          2h
kube-system   kube-apiserver-k8s-dp1            1/1       Running   0          2h
kube-system   kube-controller-manager-k8s-dp1   1/1       Running   0          2h
kube-system   kube-dns-86cc76f8d-9jh2w          3/3       Running   0          2h
kube-system   kube-proxy-65mtx                  1/1       Running   1          2h
kube-system   kube-proxy-wkkdm                  1/1       Running   0          2h
kube-system   kube-scheduler-k8s-dp1            1/1       Running   0          2h
kube-system   weave-net-6sbbn                   2/2       Running   0          2h
kube-system   weave-net-hdv9b                   2/2       Running   3          2h
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试在集群中创建新的部署,则会创建该部署,但是其pod无法进入适当的RUNNING状态。例如

[monkey@k8s-dp1 nginx-test]# kubectl apply -f https://k8s.io/docs/tasks/run-application/deployment.yaml
deployment "nginx-deployment" created

[monkey@k8s-dp1 nginx-test]# kubectl get pods --all-namespaces
NAMESPACE     NAME                                READY     STATUS              RESTARTS   AGE
default       nginx-deployment-569477d6d8-f42pz   0/1       ContainerCreating   0          5s
default       nginx-deployment-569477d6d8-spjqk   0/1       ContainerCreating   0          5s
kube-system   etcd-k8s-dp1                        1/1       Running             0          3h
kube-system   kube-apiserver-k8s-dp1              1/1       Running             0          3h
kube-system   kube-controller-manager-k8s-dp1     1/1       Running             0          3h
kube-system   kube-dns-86cc76f8d-9jh2w            3/3       Running             0          3h
kube-system   kube-proxy-65mtx                    1/1       Running             1          2h
kube-system   kube-proxy-wkkdm                    1/1       Running             0          3h
kube-system   kube-scheduler-k8s-dp1              1/1       Running             0          3h
kube-system   weave-net-6sbbn                     2/2       Running             0          2h
kube-system   weave-net-hdv9b                     2/2       Running             3          2h
Run Code Online (Sandbox Code Playgroud)

我不确定如何找出问题所在,但是例如kubectl get ev,如果执行a ,则可以看到以下可疑事件:

<invalid>   <invalid>    1         nginx-deployment-569477d6d8-f42pz.15087c66386edf5d   Pod
             Warning   FailedCreatePodSandBox   kubelet, k8s-dp2        Failed create pod sandbox.
Run Code Online (Sandbox Code Playgroud)

但是我不知道从这里去哪里。我还可以看到,nginx docker映像本身从未出现在中docker images

我如何查找有关该问题的更多信息?我是否在kubernetes设置中缺少基本知识?

-新信息-

有关背景信息以防万一...

Kubernetes节点在Windows 10 hyper-v上托管的CentOS 7 VM上运行。

-新信息-

正在运行kubectl describe pods显示以下警告:

Warning  NetworkNotReady         1m                             kubelet, k8s-dp2  network is not ready: [runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized]
Run Code Online (Sandbox Code Playgroud)

-新信息-

在白天工作时间结束后的夜晚关闭了运行Kubernetes的Hyper-v VM,今天早晨我回到办公室后,我再次打开Kubernetes VM的电源以继续运行,并执行了大约15分钟的命令:

kubectl get pods --all-namespaces仍显示ContainerCreating与昨天相同的Nginx Pod,但现在,该命令现在显示所有Pod Running包括Nginx Pod ...即,在完全重新启动主节点VM和工作节点VM之后,问题得以解决。

现在,我再次进行了一次完全重新引导,所有pod均显示为Running,这很好。

Lev*_*sov 18

使用kubectl describe pod <name>以查看更多信息


Anu*_*nuj 10

使用kubectl describe pod将显示所有事件。在某些情况下,部署可能仍在从远程拉取 docker 镜像,因此状态仍会显示为ContainerCreating


her*_*ger 10

只是分享这个命令对找出我的 ContainerCreating Status 问题有很大帮助:

kubectl get events --sort-by=.metadata.creationTimestamp
Run Code Online (Sandbox Code Playgroud)


Goi*_*nas 5

对同时运行Kubernetes主节点和Kubernetes工作节点的两个VM进行完全重启,所有Pod都显示为Running(注意:第一次重启后,所涉及的Pod进入Running状态大约需要15-20分钟,并且,在随后的重新启动过程中,相关的Pod进入Running状态的速度相对要快得多(3-5分钟)。