k8s node间通信问题排除

昨天iaas把我的k8s测试迁移了,需要重新恢复一下服务。在恢复的时候发现一个问题。

104节点上的pod,不能上外网。另外一个105节点上的pod正常。

在104节点上启动buybox测试,ping 105节点上的pod 。发现不通。

coredns pod在105节点上。

但是在105节点的pod上,ping104节点上的pod都是没有问题。给我造成一个假象就是以为是104节点的问题,跟105没关系 。

所以浪费很多时间在排除104节点问题。一直没有啥突破性进展和线索

最后在105节点上的pod上做 traceroute 104节点pod的ip

[root@centos-6f64dc8859-f925z /]# tracepath -n 10.254.56.24
 1?: [LOCALHOST]                                         pmtu 1450
 1:  10.254.34.1                                           0.159ms
 1:  10.254.34.1                                           0.046ms
 2:  10.254.56.0                                           0.594ms
 3:  10.254.56.24                                          0.443ms reached
     Resume: pmtu 1450 hops 3 back 3

整个正常的traceroute 通过。 并且能够看出 数据包从pod发出以后,
第一个经过的是docker0接口地址10.254.34.1 。
第二个经过是路由到104节点上的flannel接口地址10.254.56.0 。
第三个就已经到达104节点上pod 地址10.254.56.24。

反过来我们看在104节点上的pod 做traceroute到 105 pod的ip

[root@centos2-758779f9db-nlltq /]# tracepath -n 10.254.34.3
 1?: [LOCALHOST]                                         pmtu 1450
 1:  10.254.56.1                                           0.238ms
 1:  10.254.56.1                                           0.073ms
 2:  10.254.1.0                                            0.734ms
 3:  no reply
 4:  no reply

第一个经过104节点上的docker0地址10.254.56.1 这个没问题
第二个经过是路由到105节点上flannel接口地址。 但是10.254.1.0 这个是神马鬼! 这是那里来的?

[root@t4 ~]# etcdctl --endpoints http://t4.dc.com:2379 ls /k8s/network/subnets/
/k8s/network/subnets/10.254.65.0-24
/k8s/network/subnets/10.254.56.0-24
/k8s/network/subnets/10.254.34.0-24

etcd中也没有这个地址段。

通过ip addr show 看flannel.1 接口上竟然有三个地址 。

24: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default
    link/ether d2:8c:fd:0c:63:0c brd ff:ff:ff:ff:ff:ff
    inet 10.254.1.0/32 scope global flannel.1
       valid_lft forever preferred_lft forever
    inet 10.254.59.0/32 scope global flannel.1
       valid_lft forever preferred_lft forever
    inet 10.254.34.0/32 scope global flannel.1
       valid_lft forever preferred_lft forever
    inet6 fe80::d08c:fdff:fe0c:630c/64 scope link
       valid_lft forever preferred_lft forever

先吧不正确的地址段干掉。

ip addr del 10.254.1.0/32 dev flannel.1
ip addr del 10.254.59.0/32 dev flannel.1

删除以后再次traceroute

[root@centos2-758779f9db-nlltq /]# tracepath -n 10.254.34.3
 1?: [LOCALHOST]                                         pmtu 1450
 1:  10.254.56.1                                           0.158ms
 1:  10.254.56.1                                           0.045ms
 2:  10.254.34.0                                           0.964ms
 3:  no reply
 4:  no reply
 5:  no reply
 6:  no reply

已经可以正确到达105节点上的flannel 接口地址了。然后还是没有到pod里。
这个时候就非常直接的怀疑内核路由转发参数没有生效。

net.ipv4.ip_forward = 1

重启一下服务器,然后再次启动服务一切正常了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 组件版本和配置策略 组件版本: Kubernetes 1.10.4 Docker 18.03.1-ce Et...
    Anson前行阅读 11,103评论 0 11
  • Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubern...
    devabel阅读 11,501评论 0 13
  • 1.Pod Pod是k8s的最基本的操作单元,包含一个或多个紧密相关的容器,类似于豌豆荚的概念。一个Pod可以被一...
    jony456123阅读 12,197评论 0 5
  • 同感共情,泛指咨询师能够准确体察把握来访者的内心感受,而同感共情力,则是咨询师对同感共情的把握能力,同感共情力即是...
    息县心协沐风f阅读 3,496评论 0 1
  • (旧文,原作于2010-08-23) 脉脉此情天意何? 为君倾城不朽歌! 恍然看见这一句,没由来的心跳停歇, 经年...
    摩尔沫儿2017阅读 1,823评论 0 0

友情链接更多精彩内容