有没有办法在 Kubernetes 中保留传出流量的源端口?

Is there a way to preserve the source port for outgoing traffic in Kubernetes?

在大多数 TCP client/server 通信中,客户端使用随机的通用端口号进行传出流量。但是,我的客户端应用程序位于 Kubernetes 集群中 运行,必须使用特定的端口号进行传出流量;这是由于服务器的要求。

当应用程序在 运行 外部时,这通常工作正常,但在 Kubernetes 集群内时,源端口在从 pod 到工作节点的途中某处被修改(在工作节点上使用 tcpdump 验证).

对于上下文,我正在使用 LoadBalancer 服务对象。集群是 运行 Iptables 模式下的 kube-proxy。

所以我发现我可以通过在 pod 的规范中将 hostNetwork 字段设置为 true 来实现这一点。

不是理想的解决方案,但可以完成工作。