Kubernetes LoadBalancer:开放大范围(千)端口

Kubernetes LoadBalancer: open a wide range (thousands) of port

我正在尝试搭建一个 AntMedia Server 的集群(GKE,但如果需要我可以换成其他供应商)。

根据文档1,服务器需要可以通过广泛的端口从外部访问,基本上是所有 UDP 端口:UDP:5000-65000 (WebRTC)

我试图在 LoadBalancer 服务中声明所有端口,但 GKE 似乎允许每个服务最多 100 个端口。

如何才能将这个范围的端口暴露给外界?

WebRTC 软件通常不打算在负载平衡器后面使用。您可以使用 public VM 实例和应用程序级负载平衡而不是云负载平衡。

可能非常昂贵的解决方法是使用相同的 IP 创建大量 LoadBalancer 服务:

spec:
  loadBalancerIP: <Your_LB_IP>

只是不要忘记在所有 LB 之前创建保留的静态 IP

gcloud compute addresses create antmedia-lb --global --project=$PROJECT_ID

也许您可以在 AntMedia 设置中将 UDP 端口范围限制配置为 200 或 300 个端口而不是 60000 个端口,并使用 2-3 个 LB 看看效果如何。

Alex 的回答有一些见解,但即使由于 NodePort 端口的数量有限而无法创建大量 LB 服务(是的,LB 需要 NodePort 才能使用,或者至少 GKE 是这么告诉我的)

目前的解决方案是使用 DaemonSet,启用 hostNetworking 以便(每个 pod 只有一个容器)可以直接在主机的网络接口上侦听。

如果需要,我们可以从那里创建一个外部 LB,以将所有端口转发到节点。