[转帖]k8s集群node节点一直NotReady, 且node节点(并非master)的kubelet报错:Unable to update cni config: No networks found in /etc/cni/net.d

k8s集群node节点一直NotReady, 且node节点(并非master)的kubelet报错:Unable to update cni config: No networks found in /etc/cni/net.d

集群搭建的过程中,master节点初始化成功,但 node节点加入集群时却一直显示NotReady状态,如下:

img

使用kubeclt describe node xxxx 命令,发现报错:

KubeletNotReady runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

进入node节点,执行 systemctl status kubelet 和 journalctl -xeu kubelet 命令,发现报错:

Unable to update cni config: No networks found in /etc/cni/net.d

原因:

该错误意思是 CNI插件还未安装,所以状态会是NotReady。

解决:

方法一:

? 编辑 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf文件(有的是/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf文件),
? 删除最后一行里的$KUBELET_NETWORK_ARGS 即可。
? (该方法治标不治本,没能解决我的问题)

方法二:

? 考虑到node节点的kubelet报错Unable to update cni config: No networks found in /etc/cni/net.d,并且master节点的/etc/cni/net.d目录里拥有10-flannel.conflist文件,
? 我们可以把该文件从master节点复制到node节点的对应目录中,然后重启kubelet服务即可。
? (该方法亡羊补牢,对我的问题也没用)

方法三:

? 注意到master节点的/etc/cni/net.d/10-flannel.conflist文件是经过 安装flannel插件 才生成的,而node节点则是在master节点安装完flannel插件后才加入集群的, ? 所以,我们不妨 先加入node节点,再执行 flannel插件的安装。 ? (该方法有取巧的嫌疑,但解决了我的问题)

猜你喜欢

转载自www.cnblogs.com/jinanxiaolaohu/p/12204861.html