kubernetes(k8s) pod到pod之间无法通信

開開新新 发表于: 2021-03-19   最后更新时间: 2021-03-19 16:45:33   2,579 游览

pod

pod

这个是我新建的一个集群(二进制部署),我使用官方提供的配置创建了一个coredns(只有一个在node1上)。

pod

我测试pod in pod之间的通信时发现,如果两个pod都放到node1上,那么通信正常,pod也可以解析外部域名。

但是只要有一个pod在node2上就没法通信,也没法解析外部域名。

我开了coredns的日志,发现在node2上的pod请求外部域名时,coredns都没有记录,说明请求没有到达coredns。

我查了 kube-proxy产生的日志,每当我在node2上的pod中请求时,就有一条iptables [-w -S KUBE-PROXY-CANARY -t mangle]产生。

下一步如何排查呢?

发表于 2021-03-19
添加评论

1、到node2节点上,测试该物理节点是否可以正常解析(容器是基于该节点进行的递增),默认是在/etc/resolv.conf
2、coreDNS没有装成功,一般k8s的dns是安装在命名空间kube-system下,可以通过 kubectl get pods -n kube-system查看,确保安装成功,通过kubectl logs确认。

開開新新 -> 半兽人 3年前

你说的这两个都没问题,我按照官方文档中的debug dns方法都走了一遍,结果都是正确的。 coredns应该是没问题的,因为 在node2上的pod发出的请求都没有到达coredns。

我也检查了kube-proxy的cidr与controller cidr也是一致的。

半兽人 -> 開開新新 3年前

解决了吗?

你的答案

查看kubernetes相关的其他问题或提一个您自己的问题