树莓派搭建K8s集群后Worker Node状态为NotReady求助
排查树莓派K8s集群工作节点NotReady问题
我之前在树莓派上搭建K8s集群时也碰到过一模一样的情况,给你几个实用的排查方向:
检查kubelet运行状态
在工作节点上执行:sudo systemctl status kubelet看看kubelet有没有正常启动,日志里有没有连接失败、镜像拉取错误这类提示。树莓派是ARM架构,很多默认的K8s镜像可能不兼容,要是碰到镜像拉取失败,得手动替换成ARM适配的镜像(比如用
arm64v8前缀的镜像)。验证容器网络插件状态
回到主节点,执行:kubectl get pods -n kube-system确认calico、flannel这类网络插件的Pod都处于
Running状态。如果网络插件没部署成功或者Pod异常,工作节点没法和集群建立网络通信,必然会显示NotReady。重新生成并执行join命令
有时候join用的token可能过期了,在主节点重新生成命令:kubeadm token create --print-join-command把输出的完整命令复制到工作节点重新执行一遍,确保参数里的主节点IP、token和hash都是正确的。
检查防火墙与端口开放情况
树莓派默认的ufw防火墙可能挡住了K8s需要的端口,临时关闭防火墙测试:sudo ufw disable如果关闭后节点状态变成Ready,就需要手动开放必要端口:6443(主节点API)、10250(kubelet通信)、以及你用的网络插件对应的端口(比如calico需要的4789、5473)。
查看kubelet详细日志
在工作节点实时查看kubelet日志,定位具体错误:journalctl -u kubelet -f比如如果日志里出现
container runtime not ready,那大概率是containerd或者Docker的配置有问题,得检查容器运行时是否正常安装并启动。
内容的提问来源于stack exchange,提问作者joesan
相关产品推荐
相关产品推荐

