天天看點

node節點flannel網絡問題導緻該node上的pod與其他node節點網絡不通的排查思路與解決

k8s node節點flannel網絡問題導緻該node上的pod與其他node節點網絡不通的排查思路與解決方法

一、問題發現

在部署一個replicas:4的nginx deployment之後在master節點通過curl + podIP + 端口的形式測試時,發現兩次通路不到,兩次可以通路得到。

二、問題排查

1、通過ping pod的ip位址,發現node1節點的pod全都ping不通,問題很有可能就出在node1節點上

2、通過ip a檢視node1節點發現flannel.1沒有ip位址,可能原因就出現在這。

3、剛開始以為是iptables規則可能導緻節點flannel網絡沒起來,于是就把iptables規則全清了,重新開機了kubelet後發現還是沒有flannel網絡。

4、然後在master節點通過kubectl logs -f -n kube-system kube-flannel的Pod來檢視對應node1的flannel Pod的日志發現一個錯誤日志,還是網絡down掉了

failed to add vxlanRoute (10.244.0.0/24 -> 10.244.0.0): network is down

5、嘗試将node1節點的flannel.1網絡删除,在node1節點上執行

ip link delete flannel.1           

6、在 /etc/sysctl.conf 中 設定 net.ipv4.ip_forward=1,開啟路由功能。

7、将node1的網卡重新開機

systemctl restart network           

8、在master節點上删掉flannel的Pod,重新啟動flannel的yaml檔案

kubectl delete -f kube-flannel.yml
kubectl apply -f kube-flannel.yml           

9、通過ip a檢視node1節點的IP,發現flannel.1果然有IP位址了

flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default

link/ether ce:86:ca:01:e0:3f brd ff:ff:ff:ff:ff:ff

inet 10.244.1.0/32 scope global flannel.1

valid_lft forever preferred_lft forever

至此,問題解決,記錄一下,以作參考

下一篇: Django指令