一、故障现象
集群节点建立后,status提示NotReady
[root@jdmaster ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
jdmaster NotReady control-plane,master 3m34s v1.23.6
jdnode-1 NotReady none> 106s v1.23.6
jdnode-2 NotReady none> 106s v1.23.6
二、故障排查
最终解决:响应速度较慢,耐心等待3分钟左右恢复。
1、检查节点的状态详细信息:
kubectl describe node jdmaster
kubectl describe node jdnode-1
kubectl describe node jdnode-2
上述命令将提供关于节点详细信息的输出,可以查看其中的事件和条件,以获取有关节点状态的更多信息。
2、检查 Flannel 日志:
可以查看 Flannel 容器的日志,以确定是否有任何与网络设置有关的问题。运行以下命令:
kubectl logs -n kube-system kube-flannel-ds-POD_ID> -c kube-flannel
替换 为实际的 Pod ID。检查是否有关于 Flannel 初始化或配置的错误。
3、检查 kubelet 日志:
kubelet 是节点上负责与 Kubernetes API 通信的组件。查看 kubelet 的日志,以查找任何潜在的问题。
journalctl -u kubelet
4、检查网络插件是否正常运行:
确保 Flannel 或选择的网络插件正常运行,且没有错误。
kubectl get pods -n kube-system
确保所有的 kube-flannel-ds
Pods 处于运行状态。
5、检查网络配置:
确保 Flannel 或者选择的网络插件的配置与你的集群网络环境相匹配。特别是,检查 Flannel 是否使用了正确的网络 CIDR。
6、检查防火墙设置:
确保节点之间的网络通信没有被防火墙规则阻止。
7、检查 kube-proxy 配置:
如果使用了自定义的 kube-proxy 配置,确保它与网络插件和集群环境兼容。
8、重新启动 kubelet 和 Docker:
尝试重新启动 kubelet 和 Docker 服务,有时这可以解决一些临时的问题。
systemctl restart kubelet
systemctl restart docker
9、检查硬件资源:
确保节点有足够的硬件资源(CPU、内存)来运行 Kubernetes 组件。
10、检查节点联通性:
确保节点之间的网络连接是正常的,可以尝试在节点之间进行 ping 测试。