背景:我们有一个容器化服务,可以处理多达 20 个流,监听 20 个不同的 udp 端口。我们在 GKE 上运行它,流源位于同一内部网络但在集群外部。流需要发送到一个恒定的 IP 地址。因此,如果有 30 个流需要处理,理想情况下,我们会使用内部负载均衡器启动 2 个 pod,每个 pod 在第一个打开 20 个端口,第二个打开另外 10 个端口。
限制:GKE 的内部负载均衡器最多允许每个转发规则打开 5 个端口。这意味着启动更多容器来处理相同数量的流。例如,要处理上面的 30 个流,我们需要启动 6 个 Pod,而不是 2 个,因此也需要 6 个负载均衡器。运行额外负载均衡器的成本可能会迅速增加。此外,如果一个流需要打开额外的端口来处理,这将进一步减少可以传递到 pod 的流的数量。
问题:是否有另一种方法可以按照所述方式将 pod 暴露给源?别名 IP 可以在这里发挥作用吗?任何其他建议,即使它涉及重新设计?