And*_*rew 7 webrtc kubernetes rtcpeerconnection
我想构建一个网络应用程序来处理来自用户网络摄像头的视频。看起来 WebRTC 是这个项目的理想选择。但是,我很难在用户的机器和 Kubernetes 集群中的 pod 之间创建对等连接。你将如何连接这两个对等点?
Server Fault 上的这个问题讨论了我遇到的问题:WEBRTC MCU/SFU inside kubernetes - Port Ranges。WebRTC 想要打开一堆端口,以便用户可以创建与服务器的对等连接,但 Kubernetes 默认关闭端口。这是我的问题的重新表述:如何创建 RTCPeerConnections 将多个用户连接到托管在 Kubernetes 集群中的应用程序?网络端口应该如何设置?
我最接近找到解决方案的是使用 WebRTC 编排 GPU 加速的流媒体应用程序,它们的代码可在GitHub上找到。我不完全理解他们的方法,我相信这取决于Istio。
您链接到的文档很有帮助,使用 WebRTC 编排 GPU 加速的流媒体应用程序
他们所做的RTCPeerConnection
是:
使用两个单独的节点池(节点组):
Ingress
和负载均衡器STUN/TURN 服务是网络绑定的并部署到专用节点。它在节点池中的每个节点上部署了一个实例。这可以使用DaemonSet在 Kubernetes 上完成。此外,该服务应使用主机网络,例如所有节点都具有可从 Internet 访问的端口。在您的 PodTemplate 中激活主机网络DaemonSet
:
hostNetwork: true
Run Code Online (Sandbox Code Playgroud)
他们使用coturn作为 STUN/TURN 服务器。
STUN/TURN 服务在 TURN 节点池的每个节点上作为 DaemonSet 运行。coTURN 进程需要分配一个固定的端口块绑定到主机 IP 地址,以便正确地为中继流量提供服务。单个 coTURN 实例可以根据机器配置为数千个并发 STUN 和 TURN 请求提供服务。
他们网络图的这一部分显示了一些服务是通过https和入口网关提供的,而 STUN/TURN 服务是通过不同的连接使用dtls/rtp连接到通过主机网络公开的节点。
归档时间: |
|
查看次数: |
1668 次 |
最近记录: |