3

我正在尝试设置 AntMedia Server 的集群(GKE,但如果需要,我可以更改为其他提供商)。

根据 doc 1,服务器需要从外部访问,具有广泛的端口,基本上所有的 UDP 端口:UDP:5000-65000 (WebRTC)

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

我该怎么做才能将这个范围的端口暴露给外界?

4

2 回答 2

5

WebRTC 软件通常不打算在负载均衡器后面使用。您可以使用公共 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 来查看它是如何进行的。

于 2020-04-12T10:39:52.690 回答
3

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

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

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

于 2020-04-14T13:38:52.663 回答