【问题标题】:Pods running in Kubernetes slave node are in ContainerCreating state在 Kubernetes 从节点中运行的 Pod 处于 ContainerCreating 状态
【发布时间】:2018-12-07 05:40:59
【问题描述】:

我成功地设置了 Kubernetes master 。 我通过安装 Docker 和 kubelet(使用 kubeadm)创建了 Kubernetes 从节点。运行 join 命令后,从节点加入集群。我能够从主节点验证这一点。但是部署在从节点中的 pod 始终处于 ContainerCreating 状态。 slave节点除了docker和kubelet还有什么需要安装的吗??

kubectl 的状态显示 remote_runtime.go: RunPodSandBox from runtime service failed : rpc error : code= DeadlineExceeded

感谢您的帮助。

【问题讨论】:

  • PodSandBox 几乎总是 CNI 故障——您使用的是 SDN,如果是,kubeadm 是否在该节点上正确配置了它?

标签: amazon-ec2 kubernetes kubeadm


【解决方案1】:

在这种情况下,我通常会通过使用以下命令检查 kube-system 命名空间中的 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 网络解决方案。

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

$ 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}

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

如果你将你的结果添加到问题中,就有可能告诉你更多关于这个案例的信息。

【讨论】:

    猜你喜欢
    • 2018-02-28
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    • 2019-12-08
    • 2018-10-11
    • 2017-12-13
    • 2018-11-17
    • 2021-08-17
    相关资源
    最近更新 更多