k8s集群node節點一直NotReady, 且node節點(並非master)的kubelet報錯:Unable to update cni config: No networks found in /etc/cni/net.d


若要轉載本文,請務必聲明出處:https://www.cnblogs.com/zhongyuanzhao000/p/11401031.html

問題:

集群搭建的過程中,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 kubeletjournalctl -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插件的安裝。
​ (該方法有取巧的嫌疑,但解決了我的問題)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM