TimeBye / kubeadm-ha

kubeadm-ha 使用 kubeadm 进行高可用 kubernetes 集群搭建,利用 ansible-playbook 实现自动化安装,既提供一键安装脚本,也可以根据 playbook 分步执行安装各个组件。
Other
607 stars 298 forks source link

离线安装模式下安装k8s 1.21.4 + flannel + docker的组合下,cni plugin没有安装,网络故障,节点NotReady状态。 #107

Closed Taoup closed 2 years ago

Taoup commented 2 years ago

节点状态: image-20220530143141445

查看节点kubelet日志: image-20220530143612411

查看了下生成的flannel配置,和原本的flannel配置,发现生成的配置和原本的配置相比少了下面这一节:

image

看起来这个像是根因,不知道是不是作者有意去除这节配置的?

目前我只能通过手动去下载cni plugin然后放到节点相应目录下,来让节点回到Ready状态,请问下作者有没有更好地办法?

TimeBye commented 2 years ago

这里安装并没有进行修改,默认安装版本为 0.14.0,配置文件为:

https://github.com/flannel-io/flannel/blob/v0.14.0/Documentation/kube-flannel.yml

这里我也再测试一下,貌似并没有遇到过这个问题

TimeBye commented 2 years ago
image

我本地做测试,没有复现,请问有什么其他线索吗

Taoup commented 2 years ago

找到进一步的原因了,貌似在第三步安装k8s组件的时候其实cni-plugins的包已经下载好,正常情况下会解压安装到/opt/cni/bin目录下,我在本机虚拟机上运行的时候就安装好了。但是在另一套环境上虽然cni-plugins下载好了,但是并没有安装上去,应该是那套环境出了什么问题。

image

image

我在那套环境上使用apt命令直接安装了下kubernetes-cni这个包,还是没有把相应的插件打包到/opt/cni/bin目录。只有用dpkg命令安装才安装好。

实在是没头绪那个环境可能出了啥问题。

Taoup commented 2 years ago

大概是找到问题根因了,那个环境多次安装、卸载k8s,大概是kubernetes-cni没有卸载干净,导致再次安装的时候apt认为kubernetes-cni已经安装了,所以出现的问题。