You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Janus在Kubernetes中ICE连接失败,Docker环境下正常运行求助

解决Kubernetes中Janus ICE连接失败及媒体端口映射问题

核心问题分析

你的问题本质是Janus生成的SDP中携带了Pod内部IP(外部无法访问),且RTP/RTCP媒体端口未在K8s中正确暴露,导致ICE协商失败。Docker环境正常是因为端口直接映射到宿主机,Janus能自动识别宿主机公网/局域网IP,而K8s的Pod网络是隔离的,需要手动配置NAT穿透和端口范围映射。


1. 修正Janus的NAT穿透配置

仅配置nat_1_1不足以让Janus生成正确的ICE候选,需要补充以下参数到Janus的主配置文件janus.jcfg:

[nat]
# 直接指定Nginx/LB的公网IP
nat_1_1 = "x.x.x.x"
# 用你的域名作为ICE候选的主机名(可选,优先于IP)
ice_hostname = "your-domain-name.com"
# 配置STUN服务器辅助ICE协商(可选但推荐)
stun_server = "stun.l.google.com"
stun_port = 19302

[media]
# 定义Janus使用的媒体端口范围,后续K8s配置要和这个范围一致
port_range = "10000-20000"

修改后重启Janus Pod,查看日志确认ICE候选地址已替换为公网IP/域名,而非Pod内部IP。


2. Kubernetes中暴露RTP媒体端口范围

K8s支持Service的端口范围映射,无需逐个配置端口,以下两种方式任选:

方式一:NodePort Service(适合无云LB的场景)

默认NodePort范围是30000-32767,如果要映射10000-20000,需要先调整集群的kube-apiserver配置:

  • 修改kube-apiserver的启动参数,添加--service-node-port-range=10000-32767
  • 重启kube-apiserver组件

然后创建媒体流专用的NodePort Service:

apiVersion: v1
kind: Service
metadata:
  name: janus-media
spec:
  type: NodePort
  selector:
    app: janus  # 匹配你的Janus Pod标签
  ports:
  - name: rtp-udp-range
    protocol: UDP
    port: 10000
    targetPort: 10000
    nodePort: 10000
    endPort: 20000

方式二:LoadBalancer Service(适合云厂商集群)

云厂商的负载均衡器(如AWS ALB、GCP LB)支持UDP端口范围映射,直接创建如下Service:

apiVersion: v1
kind: Service
metadata:
  name: janus-media
spec:
  type: LoadBalancer
  selector:
    app: janus  # 匹配你的Janus Pod标签
  ports:
  - name: rtp-udp-range
    protocol: UDP
    port: 10000
    targetPort: 10000
    endPort: 20000

创建完成后,云LB会分配一个公网IP,外部客户端的RTP流量会直接转发到Janus Pod的对应端口。


3. 架构调整说明

  • Nginx仅负责代理Janus的HTTP/HTTPS API(/janus/info等接口),无需处理UDP媒体流,媒体流直接通过上述Service暴露的端口与Janus Pod通信。
  • 确保Janus配置中的ice_hostname或nat_1_1指向的是媒体Service的公网IP/域名(如果用LB就是LB的IP,用NodePort就是节点公网IP)。

4. 验证步骤

  1. 查看Janus Pod日志,搜索ICE candidate,确认输出的是公网IP/域名而非Pod IP。
  2. 用kubectl exec -it <janus-pod-name> -- janus-pp命令检查Janus的配置生效情况。
  3. 在客户端浏览器中查看SDP内容,确认c=字段的地址是公网可访问的IP/域名。

内容的提问来源于stack exchange,提问作者Ravi Srivastava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 03:33:36