You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes集群Ingress流量流向及超时故障tcpdump抓包咨询

Kubernetes 集群 Ingress 到 Pod 完整流量流向

标准流转路径(以主流的 Nginx Ingress Controller + 负载均衡暴露场景为例)

  • 客户端发起请求,流量首先到达集群入口的四层负载均衡设备(云厂商托管集群为云LB,自建集群为自建SLB或直接指向Ingress节点公网IP),目标端口为对外暴露的80/443端口。
  • 负载均衡根据后端健康检查结果,将流量转发到运行Ingress Controller实例的节点对应端口:若Ingress Controller采用HostNetwork模式则直接转发到节点的80/443端口,采用ClusterIP+NodePort模式则转发到对应NodePort端口。
  • 流量进入Ingress Controller Pod的网络命名空间后,Controller会加载已同步的Ingress规则,根据域名、路径匹配结果,按照配置的负载均衡算法选择对应业务Service的后端Endpoint(即业务Pod IP+端口)。
  • Ingress Controller主动向选中的业务Pod IP发起请求,流量经过集群CNI网络(Overlay/Underlay)转发到业务Pod所在的工作节点。
  • 工作节点的网络栈经过iptables/ipvs规则匹配(由kube-proxy维护),将流量转发到目标业务Pod的网络命名空间,最终到达Pod内应用进程监听的端口。
  • 业务Pod处理完请求后,响应报文沿原路径反向返回给客户端。

间歇性超时问题抓包位置清单

每个环节对应抓包点和命令参考:

  • 集群入口节点/负载均衡后端节点公网网卡:验证客户端请求是否成功进入集群,参考命令:tcpdump -i <公网网卡名称> host <客户端源IP> and port 80 or port 443 -nn
  • Ingress Controller所在节点物理网卡:验证负载均衡是否正常转发流量到Ingress节点,参考命令:tcpdump -i <物理网卡名称> host <负载均衡出口IP段> and port <Ingress暴露端口> -nn
  • Ingress Controller Pod内部:验证流量是否到达Ingress Controller、Controller是否正常向后端业务Pod转发请求,参考命令:kubectl exec -it <Ingress Controller Pod名称> -n <Ingress组件所在命名空间> -- tcpdump -i eth0 host <客户端源IP> -nn
  • 业务Pod所在工作节点物理网卡:验证Ingress Controller转发的请求是否到达业务节点,参考命令:tcpdump -i <物理网卡名称> host <Ingress Controller Pod IP> and port <业务应用监听端口> -nn
  • 业务Pod内部:验证请求是否最终到达Pod、Pod是否正常返回响应,参考命令:kubectl exec -it <业务Pod名称> -n <业务所在命名空间> -- tcpdump -i eth0 port <业务应用监听端口> -nn

常见间歇性超时关联排查点

除抓包外可同步排查以下配置:

  • Ingress Controller配置的代理超时、连接超时参数是否过短
  • kube-proxy的ipvs/iptables模式下的连接超时配置
  • 集群节点、Pod之间的网络丢包率、延迟情况
  • 业务Pod本身的并发处理能力、是否存在请求堆积

内容的提问来源于stack exchange,提问作者The Noob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:45:04