我们如何获取 Kubernetes 集群中 NodePort 服务的 NodePort 的 tcpdump?

Jar*_*aws 5 docker kubernetes kubectl

我想要一个指向 Kubernetes 集群中 pod 的 NodePort 服务的节点端口(如 30034)的 tcpdump。该节点端口服务映射到路径下的入口资源内。当我使用 ingress 内配置的主机访问 ingress 时,我收到来自目标 pod 的响应,但 tcpdump 没有跟踪任何内容。(入口-->NodePortService->NodePort--[tcpdump]->pod)

我尝试过: sudo tcpdump -i any port 30034 -w tcp-dump.pcap 但它没有捕获任何内容。

您能在这里建议一下吗?当流量通过入口控制器传入时 tcpdump 未捕获任何内容的原因是什么?但是,如果我直接点击节点https://node-ip:30034:/service;我收到了 tcpdump。

谢谢。

cod*_*ger 1

大多数入口控制器实际上绕过 kube-proxy 层并直接使用端点 IP,因此这似乎可能是相关的。一般来说,由于存在过多的虚拟网络和时髦的 iptables 规则,在容器系统中获取数据包跟踪可能很困难。