直接说结论:原因是服务器的/opt/cni/bin/目录中没有flannel插件,安装flannel 到/opt/cni/bin/目录下即可。具体步骤往下看。
[root@K8SMaster ~]# journalctl -f -u kubelet.service
先看下报错,发现我一直显示NotReady的原因是由于
[failed to find plugin "flannel" in path [/opt/cni/bin]]
因此,安装flannel 到/opt/cni/bin/目录下即可
去github找到插件
Release CNI plugins v0.8.6 · containernetworking/plugins · GitHub
下载好后上传到服务器然后解压
[root@K8SMaster ~]# tar -xvf cni-plugins-linux-amd64-v0.8.6.tgz
得到flannel插件后将其复制到/opt/cni/bin/目录下后重新 运行kubectl apply -f kube-flannel.yml即可解决结点状态为NotFound的问题。
剩下的两个结点服务器也是因为/opt/cni/bin/目录中没有flannel插件,按照上面的操作将flannel插件安装到/opt/cni/bin/目录下即可。
最后的碎碎念:我是真的服了,查了一晚上,基本全都是一些毫无价值的东西,一个有用的都没有,我这篇文章应该是第一个摸索出解决方法的,由于搞了太久,因此只能简单的将博客写下来,但是基本的解决思路和方法都写清楚了,希望能帮大家少走些坑。