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

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

1、问题发现

在部署一个replicas:4的nginx deployment以后在master节点经过curl + podIP + 端口的形式测试时,发现两次访问不到,两次能够访问获得。html

2、问题排查

一、经过ping pod的ip地址,发现node1节点的pod全都ping不通,问题颇有可能就出在node1节点上node

二、经过ip a查看node1节点发现flannel.1没有ip地址,可能缘由就出如今这。nginx

三、刚开始觉得是iptables规则可能致使节点flannel网络没起来,因而就把iptables规则全清了,重启了kubelet后发现仍是没有flannel网络。shell

四、而后在master节点经过kubectl logs -f -n kube-system kube-flannel的Pod来查看对应node1的flannel Pod的日志发现一个错误日志,仍是网络down掉了bash

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

五、尝试将node1节点的flannel.1网络删除,在node1节点上执行app

ip link delete flannel.1

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

七、将node1的网卡重启ide

systemctl restart network

八、在master节点上删掉flannel的Pod,从新启动flannel的yaml文件测试

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

九、经过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

十、在master节点ping node1节点上的Pod发现能够ping通,经过kubectl exec -it dep-with-healthycheck-55f68fd487-d /bin/bash 命令进入其中的一个pod使用

curl -I 10.244.2.90命令测试与其余Pod通不通,发现也是通的。

[root@master test]# kubectl exec -it dep-with-healthycheck-55f68fd487-df2xm /bin/bash
root@dep-with-healthycheck-55f68fd487-df2xm:/# curl -I 10.244.2.90
HTTP/1.1 200 OK
Server: nginx/1.19.1
Date: Sun, 02 Aug 2020 14:54:11 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 07 Jul 2020 15:52:25 GMT
Connection: keep-alive
ETag: "5f049a39-264"
Accept-Ranges: bytes

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

相关文章
相关标签/搜索