Abd*_*sit 7 docker kubernetes docker-compose webrtc docker-swarm
我使用janus-gateway作为用于群组视频通话的 webrtc 媒体服务器。以前我使用 docker-compose 将它部署在单个节点中,但现在我希望能够水平扩展它。为此,我正在尝试使用 kubernetes,但我面临两个问题:
1:指定要为媒体服务器公开的端口范围。由于媒体服务器需要一个端口范围才能运行,我可以在 docker-compose 中使用以下代码进行操作
janus-gateway:
build: ./gateway
image: janus-gateway-image
restart: always
ports:
- 8088:8088
- 8188:8188
- 7088:7088
- "10000-10200:10000-10200/udp"
networks:
- back-tier
Run Code Online (Sandbox Code Playgroud)
但是我无法在 kubernetes 中找到任何替代方案。如何使用 kubernetes 公开端口范围。
2:如何从我的 nodejs 应用程序连接到网关的特定实例。所以假设网关的两个实例正在运行,现在当用户连接到应用程序时,我将它连接到正在运行的两个实例之一并将其保存在 redis 中,并确保来自该用户的任何请求都传递到该特定实例. 如何从节点连接到特定副本?还获取副本列表?
我已经在 kuebernetes 上检查过这个问题,但它仍然没有解决。有什么解决方法吗?
小智 5
如何使用 kubernetes 公开端口范围。
简短的回答:你不能。
再详细一点,正如Yorgos Saslis在这里提到的。
问题是 - 鉴于 Docker 的当前状态 - 似乎您甚至不应该尝试公开大量端口。由于大端口范围涉及的开销,建议您无论如何都使用主机网络。(它既增加了延迟,又消耗了大量资源——例如参见https://www.percona.com/blog/2016/02/05/measuring-docker-cpu-network-overhead/)
我认为 VoIP 不应该用 Kubernetes 来实现。媒体服务器是有状态的,需要动态打开新连接,而 Kubernetes 大多是*无状态的。
这在很大程度上取决于您想要的实际架构。但我假设您想公开一个端口并让 K8s 使用本地平衡进行缩放和路由。如果需要端口连接的状态性,K8s 不是可以使用的解决方案。
归档时间: |
|
查看次数: |
2378 次 |
最近记录: |