现象:
[root@k8s-master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready control-plane,master 102m v1.23.4
k8s-node02 Ready <none> 80m v1.23.4
k8s-node03 NotReady <none> 79m v1.23.4
可以看出k8s-node03节点是NotReady状态
查看节点状态kubectl describe node k8s-node03
提示:container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
顺着这个思路排查,有如下几种可能
1. CNI 插件未安装或配置不正确:
• 错误提示表明 CNI 插件的配置丢失或未正确设置。CNI 插件负责管理 Kubernetes 中的容器网络。
2. 配置文件问题:
• CNI 配置文件(通常位于 /etc/cni/net.d/)可能缺失、配置错误或格式不正确。
3. 网络插件未运行:
• 网络插件(如 Calico、Flannel、Weave 等)本身可能未运行或启动失败。
4. 权限问题:
• 可能存在权限问题,导致网络插件无法访问或写入所需的文件或目录。
解决办法:先排除基础配置问题
1、确认关闭防火墙,fstab
2、重启docker kubelet
查看node状态仍让不行,查看/etc/cni/net.d/是否有正常文件,发现确实是没有文件
那么重新load cni插件
查看demoset
发现kubeproxy少了一个,那么就是kubeproxy的问题了
再次重新加载所有插件
再次查看demonset
发现正常了,再查看node状态,就正常了