iptables snat规则缺失,kubernetes集群问题node上所有容器无法ping通外网

栏目: 编程工具 · 发布时间: 5年前

内容简介:Kubernetes集群的一个node出现问题,该问题node上所有的容器不能ping外网IP。网络方案是flannel,kube-proxy使用ipvs的方式。选择集群外的一台机器作为目标机器,在问题机器的容器内ping目标机器,容器的IP是

现象

Kubernetes集群的一个node出现问题,该问题node上所有的容器不能ping外网IP。

网络方案是flannel,kube-proxy使用ipvs的方式。

调查

选择集群外的一台机器作为目标机器,在问题机器的容器内ping目标机器,容器的IP是 10.12.9.139 ,目标机器地址是 10.10.64.58

在目标机器上抓包:

[root@10.10.64.58 lxcfs]# tcpdump -n -i eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
11:51:40.167453 IP 10.12.9.139 > 10.10.64.58: ICMP echo request, id 31744, seq 115, length 64
11:51:40.167560 IP 10.10.64.58 > 10.12.9.139: ICMP echo reply, id 31744, seq 115, length 64
11:51:41.167434 IP 10.12.9.139 > 10.10.64.58: ICMP echo request, id 31744, seq 116, length 64
11:51:41.167561 IP 10.10.64.58 > 10.12.9.139: ICMP echo reply, id 31744, seq 116, length 64
11:51:42.167453 IP 10.12.9.139 > 10.10.64.58: ICMP echo request, id 31744, seq 117, length 64
11:51:42.167581 IP 10.10.64.58 > 10.12.9.139: ICMP echo reply, id 31744, seq 117, length 64

目标机器收到了容器内发出的请求包,并且做了回应,但在问题机器上抓包,没有抓到目标机器的回应包。

查看目标机器上抓到的报文情况,发现 源IP是容器的IP(10.12.9.139) 。这是有问题的,因为目标机器不是kubernetes中的机器,压根不能访问容器的IP,它看到IP应当是 容器所在的node的IP

解决方法

问题应该出iptables上,容器的报文被送离node时没有做snat。

对比问题node的iptables规则和正常node的iptables规则,发现问题node上缺失了一条iptables规则:

-A POSTROUTING -s 10.12.9.138/26 ! -o docker0 -j MASQUERADE

将这条规则添加上以后,状况消失(注意-s指定的是node分配的虚拟网段):

iptables -t nat -A POSTROUTING -s 10.12.9.138/26 ! -o docker0 -j MASQUERADE

为什么会缺了一条iptables规则?需要继续尝试复现。2019-02-15 13:13:18

Kubernetes使用过程中遇到问题汇总

iptables snat规则缺失,kubernetes集群问题node上所有容器无法ping通外网


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Head First jQuery

Head First jQuery

Ryan Benedetti , Ronan Cranley / O'Reilly Media / 2011-9 / USD 39.99

Want to add more interactivity and polish to your websites? Discover how jQuery can help you build complex scripting functionality in just a few lines of code. With Head First jQuery, you'll quickly g......一起来看看 《Head First jQuery》 这本书的介绍吧!

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具