现象:

[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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

可以看出k8s-node03节点是NotReady状态

查看节点状态kubectl describe node k8s-node03

k8s-node节点一直not ready排查思路及解决办法_配置文件

提示: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.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

解决办法:先排除基础配置问题

1、确认关闭防火墙,fstab

2、重启docker kubelet

查看node状态仍让不行,查看/etc/cni/net.d/是否有正常文件,发现确实是没有文件

k8s-node节点一直not ready排查思路及解决办法_配置文件_02

那么重新load cni插件

k8s-node节点一直not ready排查思路及解决办法_配置文件_03

查看demoset

k8s-node节点一直not ready排查思路及解决办法_权限问题_04

发现kubeproxy少了一个,那么就是kubeproxy的问题了

再次重新加载所有插件

再次查看demonset

k8s-node节点一直not ready排查思路及解决办法_权限问题_05

发现正常了,再查看node状态,就正常了

k8s-node节点一直not ready排查思路及解决办法_权限问题_06