我能够成功设置Kubernetes master。 我通过安装Docker和kubelet(使用kubeadm)创建了Kubernetes从节点。运行join命令后,从属节点将加入集群。我能够从主节点验证这一点。但是在从属节点中部署的Pod始终处于ContainerCreating状态。 除了docker和kubelet之外,还需要在从属节点上安装其他任何工具?
kubectl的状态显示remote_runtime.go:运行时服务中的RunPodSandBox失败:rpc错误:code = DeadlineExceeded
感谢您的帮助。
答案 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}
我的下一步取决于先前的结果。
如果将结果添加到问题中,则可能会告诉您更多有关此案件的信息。