使用kubectl get node -owide時一個節點notready,然後使用sudo systemctl status kubelet,輸出如下:
(base) supermap@openbox00:~/openthings/kubernetes-tools$ sudo systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/kubelet.service.d
└─10-kubeadm.conf
Active: active (running) since Fri 2021-04-09 22:30:35 CST; 3 weeks 1 days ago
Docs: https://kubernetes.io/docs/home/
Main PID: 2657 (kubelet)
Tasks: 17 (limit: 18741)
Memory: 182.0M
CGroup: /system.slice/kubelet.service
└─2657 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=systemd --net>
5月 02 18:49:13 openbox00 kubelet[2657]: {
5月 02 18:49:13 openbox00 kubelet[2657]: "type": "portmap",
5月 02 18:49:13 openbox00 kubelet[2657]: "capabilities": {
5月 02 18:49:13 openbox00 kubelet[2657]: "portMappings": true
5月 02 18:49:13 openbox00 kubelet[2657]: }
5月 02 18:49:13 openbox00 kubelet[2657]: }
5月 02 18:49:13 openbox00 kubelet[2657]: ]
5月 02 18:49:13 openbox00 kubelet[2657]: }
5月 02 18:49:13 openbox00 kubelet[2657]: : [failed to find plugin "flannel" in path [/opt/cni/bin] failed to find plugin "portmap" in path [/opt/cni/bin]]
5月 02 18:49:13 openbox00 kubelet[2657]: W0502 18:49:13.163614 2657 cni.go:239] Unable to update cni config: no valid networks found in /etc/cni/net.d
[4]+ 已停止 sudo systemctl status kubelet
大概的意思是cni出問題了。
檢查/opt/cni/bin,發現裏面目錄是空的,不應該。
ls -l /opt/cni/bin
重新安裝kubernetes cni,過程中發現kubelet和kubeadm也被卸載了,重新安裝:
sudo apt remove kubernetes-cni
sudo apt install kubernetes-cni kubelet kubeadm
然後使用sudo systemctl status kubelet和kubectl get node -owide查看服務和節點的狀態,恢復了正常。
不過,該節點以前是正常運行的,不清楚什麼原因導致了這個問題。