在Kubernetes从节点运行的Pod处于ContainerCreating状态

时间:2018-06-28 08:08:50

标签: amazon-ec2 kubernetes kubeadm

我能够成功设置Kubernetes master。 我通过安装Docker和kubelet(使用kubeadm)创建了Kubernetes从节点。运行join命令后,从属节点将加入集群。我能够从主节点验证这一点。但是在从属节点中部署的Pod始终处于ContainerCreating状态。 除了docker和kubelet之外,还需要在从属节点上安装其他任何工具?

kubectl的状态显示remote_runtime.go:运行时服务中的RunPodSandBox失败:rpc错误:code = DeadlineExceeded

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

在这种情况下,我通常会通过使用以下命令检查kube系统名称空间中pod的状态来开始对群集进行故障排除:

$ kubectl get pods --all-namespaces -o wide

应该在每个节点上运行与网络相关的多个Pod,例如:

NAMESPACE     NAME                    READY     STATUS    RESTARTS   AGE       IP               NODE
kube-system   calico-node-2rpns       2/2       Running   0          2h        10.154.0.5       kube-node1
kube-system   calico-node-cn6cl       2/2       Running   0          2h        10.154.0.6       kube-master
kube-system   calico-node-fr7v5       2/2       Running   1          2h        10.154.0.7       kube-node2

全套网络容器取决于所使用的Kubernetes网络解决方案。

接下来,我检查是否有一些吊舱处于“未就绪”状态,并检查描述中的错误:

$ kubectl describe pod not-ready-pod-name

如果出现与图像拉出或容器创建有关的错误,我检查节点上的kubelet日志以获取更多详细信息:

$ journalctl -u kubelet

或尝试手动拉出图像以确保图像可用并可以拉出:

$ docker pull <image>

如果pod多次重启,我要检查pod的容器日志:

$ kubectl logs ${POD_NAME} ${CONTAINER_NAME}

或先前崩溃的容器的日志:

$ kubectl logs --previous ${POD_NAME} ${CONTAINER_NAME}

我的下一步取决于先前的结果。

如果将结果添加到问题中,则可能会告诉您更多有关此案件的信息。