在部署一個replicas:4的nginx deployment以後在master節點經過curl + podIP + 端口的形式測試時,發現兩次訪問不到,兩次能夠訪問獲得。html
一、經過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