当SRS遇到K8s:如何构建海量推流源站?

本文介绍了如何利用Kubernetes(K8s)构建支持海量推流的SRS(Simple Real-time Server)源站集群。通过Origin Cluster,当源站没有流时,通过RTMP302定向到其他源站,实现源站灾备、海量推流和复杂源站业务。在K8s环境中,配置了持久化卷(PV)和持久化卷声明(PVC)以处理SRS与Nginx的存储需求,并创建了源站集群、Nginx服务以及边缘服务,确保流媒体服务的稳定性和扩展性。
摘要由CSDN通过智能技术生成

Photo by Oscar Ivan Esquivel Arteaga on Unsplash

本文来自流媒体直播集群SRS的官方wiki(https://github.com/ossrs/srs/wiki/v4_CN_K8s),由SRS的创始作者杨成立授权发布。

文 / 杨成立

相关文章:当SRS遇到K8s:快速构建高并发直播集群

本章描述了基于K8s,如何构建Origin Cluster支持超多推流场景。

Origin Cluster通过配置其他源站的信息,在本源站没有流时查询到流的位置,通过RTMP302定向到指定源站,具体原理可以参考#464。主要应用场景如下:

  • 源站灾备:即使流比较少,也可以用两个源站,这样可以将流分散到不同的源站,避免源站出现问题时影响所有的流。

  • 海量推流:单源站可以支持1000到3000路流,高码率的流支持的路数更少,有DVR和HLS时支持的路更少,源站集群有多个源站同时接收推流,可以支持10k~100k推流,参考规格。

  • 复杂源站业务:源站除了支持推流和拉流,还有重要的功能是DVR、转码、转HLS,DVR和HLS涉及磁盘,转码涉及CPU,都是容易发生瓶颈的资源依赖,源站集群扩展能力更强。

在这个场景下,对比K8s和传统使用方式的差异:

对比

ECS

K8s

说明

申请ECS

手动

自动

部署时,ECS需要手动申请,K8s自动申请

安装包

脚本

镜像

Docker方式更优,版本管理,可Cache

看门狗

手动

自动

SRS异常退出由看门狗重新拉起,非K8s需要手动安装,
 K8s自动管理和拉起服务

更换ECS

手动

自动

ECS更换时,非K8s需要手动申请,修改SLB,安装服务,K8s自动迁移服务,更新SLB配置监听和保活等

配置

文件

Volume

ECS需要手动管理配置;K8s配置在ConfigMap,通过Volume挂载为配置文件,扩容时源站手动更新自动推送,边缘扩容自动更新

扩容

手动

自动

需要新开进程时,ECS需要申请部署和配置,K8s只需要修改Replicas数目即可(也可自动扩容)

发现

手动

自动

Origin变更IP时,ECS需要手动修改配置,K8s在迁移源站Pod时会保持,或自动更新

SLB

手动

自动

新增Origin时,ECS需要手动安装和更新配置,K8s自动安装,手动更新但自动推送配置

存储

手动

自动

扩容存储时,ECS需要手动安装和更新,K8s会自动更新,不影响业务

Step 1: 由于SRS和Nginx不在一个Pod可能也不在一个Node&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值