kubernetes集羣在調整網絡後,其中一個 node 節點出現NotReady狀態。能夠ssh登陸到該節點,kubectl get node沒法訪問集羣的master節點,ping一下主服務器的地址也出現異常,以下:node
supermap@podc04:/etc/keepalived$ ping 10.1.1.199 connect: 無效的參數
檢查一下路由表,以下:git
supermap@podc04:/etc/keepalived$ route 內核 IP 路由表 目標 網關 子網掩碼 標誌 躍點 引用 使用 接口 default router.asus.com 0.0.0.0 UG 300 0 0 bond0 10.1.1.0 0.0.0.0 255.255.255.0 U 300 0 0 bond0 10.1.1.199 0.0.0.0 255.255.255.255 UH 300 0 0 bond0 link-local 0.0.0.0 255.255.0.0 U 1000 0 0 bond0 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
發現一個奇怪的路由記錄,集羣的apiserver地址10.1.1.199路由記錄。其它節點都是沒有的。github
刪除該路由記錄,以下:docker
sudo route del -net 10.1.1.199 netmask 255.255.255.255
再次檢查路由表,以下:api
supermap@podc04:/etc/keepalived$ route 內核 IP 路由表 目標 網關 子網掩碼 標誌 躍點 引用 使用 接口 default router.asus.com 0.0.0.0 UG 300 0 0 bond0 10.1.1.0 0.0.0.0 255.255.255.0 U 300 0 0 bond0 link-local 0.0.0.0 255.255.0.0 U 1000 0 0 bond0 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 supermap@podc04:/etc/keepalived$ ping 10.1.1.199 PING 10.1.1.199 (10.1.1.199) 56(84) bytes of data. 64 bytes from 10.1.1.199: icmp_seq=1 ttl=64 time=0.232 ms 64 bytes from 10.1.1.199: icmp_seq=2 ttl=64 time=0.210 ms 64 bytes from 10.1.1.199: icmp_seq=3 ttl=64 time=0.187 ms ^Z
獲取節點信息,通信已經恢復,以下:服務器
supermap@podc04:/etc/keepalived$ kubectl get node NAME STATUS ROLES AGE VERSION podc01 Ready master 69d v1.13.3 podc02 Ready <none> 63d v1.13.3 podc03 Ready <none> 69d v1.13.3 podc04 Ready <none> 69d v1.13.3 pods01 Ready <none> 67d v1.13.3 pods02 Ready <none> 64d v1.13.3 pods03 Ready <none> 64d v1.13.3 pods04 Ready <none> 64d v1.13.3 pods05 Ready <none> 7d1h v1.13.3
再次使用ping 10.1.1.199,徹底正常。網絡
只是不知道這個路由記錄是怎麼被加上的,由於運行正常,暫時不去管了。app
其中一個節點的Nvidia鏡像啓動失敗,提示「CNI故障」,檢查flannel服務失敗。ssh
從新運行flannel安裝程序後,恢復正常運行狀態。以下:spa
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
其中一個節點的kube-proxy服務鏡像運行失敗,爲後來新加的節點。
檢查該節點的kube-proxy的images爲1.13.1版本,該機不存在該版本的鏡像。
到Dashboard將kube-system中的服務集kube-proxy的images版本改成 1.13.4,該節點的kube-proxy服務恢復正常。