node节点flannel网络问题导致该node上的pod与其他node节点网络不通的排查思路与解决

node节点flannel网络问题导致该node上的pod与其他node节点网络不通的排查思路与解决方法

一、问题发现

在部署一个replicasc ) K `:4的nginx deployment之后在master% z Z b O J 7节点通过curl + podIP + 端口的形式测试时,发现[ C j l两次访问不到,两次可以访问得到。

二、问题排查

1I t 2、通过ping pod的i. 7 ` t np地址,发现no= j Q m ] Q .de1节点的pod全都ping不@ 7 V :通,问题很有可能就出在node1节点上

2、通过ip a查看nod~ n L P A %e1节点发现flannel.1没有ip地址,可能原因就出现在这。

3、刚开D 0 p N $ # Q6 m } j以为是iptables规则可能导致节点flannef + ; 0 M d $ 5 ,l网络没起来,于是就把iptables规则全清了,重启了kubelet后发现还是没有flannel网络。

4、然后在master节点通过kubectl logs -f -n kube-system kube-flaA d u ~nnel的Pod来查看对应node1的flannel Pod的日志发现一个错误日志,还是网络down掉了

failed to add vxlanRoute (10.244.0.0/t s , W24 -> 10.244.0.0): network is down

5、尝试将 # a & + snode1节点的flannel.1网络删除,在node1节点上执行

ip link del! H 0 N + dete flannel.1

6、在 /etc/sysctl.conf 中 设置 net.ipv4.ip_forward=1,开启路由功能。

7、将node1的网卡S ? ,重启

systemctl restart network

8、在maste* $ wr节点上删掉flannel的Pod,重新启动flannel的yaml文件

kubectD v , 7 L - ( C Ll delete -f kube-flannel.yml
kubectl apply -f kube-flannel.yml

9、通过ip a查- & C P g D看node1节点的IP,发现flannel.1果m + % h x $ 8然有IP地址了

flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNO5 J [ ) 2 ) Y [ NWN 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 preferr= d ked_lft forever

10、在master节点ping node1节点上的Pod发现可以ping通,通过kubectl exec -it dep-with-healthh q q ( Y z ] j 7ych, 4 q )eck-55f68fd487-d /bin/bash 命令进入其中的一个pod使用

curl@ Z ^ Q o -I 10.244.2u @ s R , L ) ] %.90命令测试与其他Pod通不通,发现也是通的。

[root@maL % ~ N 6 N Y % dsterj s _ & 9 = l ! & test]# kubectl exec -it dep-with-healthycheck-55f68fd487-df2xm /bin/bash
root@dep-with-healthyM & I w icheck-55f68fd487-df2xm:/# curl -I 10.244.2.90
HTT: / r U * K e ~P/1.1 200 OK
Server: nginx/1.19.1
Date: Sun, 02 Aug 2020 14p ? s U:54:11 GMT
Content-Type: text/html
ContV ? { H y Xent-Length: 612
LX ` S ? m gast-Modified: Tue, 07 Jul 2020 15:52:25 GMT
Connem 1 $ction: keep-alive
ETag: "5f049a39-264"
AG ! W .ccept-Ranges: bytes

至此,问题解决,记录一下,以作参考