abundant-magician-17307
05/14/2026, 7:45 AMtall-airline-16756
05/14/2026, 7:45 AMtall-airline-16756
05/14/2026, 7:45 AMabundant-magician-17307
05/14/2026, 7:47 AMtall-airline-16756
05/14/2026, 7:47 AMabundant-magician-17307
05/14/2026, 7:48 AMtall-airline-16756
05/14/2026, 7:48 AMabundant-magician-17307
05/14/2026, 7:49 AMtall-airline-16756
05/14/2026, 7:49 AMabundant-magician-17307
05/14/2026, 7:51 AMtall-airline-16756
05/14/2026, 7:51 AMlivekit:
config:
enable_beta_regions: true
cluster_id: "k8s-cluster-1"
node_id: "${NODE_NAME}" # 用 downward API 填 pod 名称或唯一 id
region: "us-east-1"
redis:
address: "redis:6379"
routing:
router: "redis"
routing_layer:
worker: true
webrtc:
tcp_candidate: true
port_range_start: 50000
port_range_end: 60000
tls_cert_file: /certs/tls.crt
tls_key_file: /certs/tls.key
Kubernetes 部署要点
1. 部署 Redis(或 Redis 集群 / Sentinel)为共享状态总线;生产建议多副本/HA。
2. 在 LiveKit Deployment/StatefulSet 中通过 Downward API 注入唯一 `NODE_ID`(如 pod 名称)。
3. 用 Service/Ingress/ExternalIP 暴露每个区域的 LiveKit 服务,确保其它节点能通过域名/IP 互相访问。
4. 在 NetworkPolicy 或云网络中允许 Pod 间 TCP(signaling/HTTP)与 UDP(webrtc 媒体端口范围)流量。
5. 配置资源与监控(CPU/带宽),注意跨节点转发会消耗节点间带宽。
验证步骤
1. 在不同 region/节点各启动一个客户端并加入同一 room。
2. 确认 room 中发布者的 track 在远端节点被订阅且有媒体流(audio/video)。
3. 查看 LiveKit 日志,确认有 routing/peer 相关的健康上报与转发记录。
4. 在 Redis 中检查会话/participant 状态同步是否正常(可用 redis-cli 查看键和值)。
常见问题与注意
• 如果 Redis 配置错误或不可达,节点间状态不同步,导致房间无法跨节点协作。
• 确保 NAT/防火墙不会阻断 UDP 媒体端口;若网络受限可允许 TCP 候选。
• 生产建议至少 3 节点 Redis 或使用托管 Redis Cluster 以保证高可用。
我可以接着做:
• 给出完整的 Helm values.yaml 示例并标注每个字段含义;
• 帮你生成 Deployment 的 Downward API 示例以注入 `NODE_ID`;
• 或根据你现有的 values.yaml/Deployment 文件检查并指出需要调整的地方。
你想先要哪个示例?
Sources: How we built a globally distributed mesh network to scale WebRTC | LiveKit | Why WebRTC beats WebSockets for realtime voice AI | LiveKit, with interactive elementsabundant-magician-17307
05/14/2026, 7:56 AMtall-airline-16756
05/14/2026, 7:56 AMabundant-magician-17307
05/14/2026, 7:58 AMabundant-magician-17307
05/14/2026, 7:58 AM