当前位置: 首页 > news >正文

k8s部署srs服务

k8s部署srs服务

  • 项目需要把srs纳入k8s进行管理,需要通过k8s来部署srs服务
  • 然后原本的srs可以支持rtmp与webrtc两种,官网查了部署方式,k8s只有最基本的部署方式
  • 于是开始研究k8s部署能够正常推拉流的webrtc版本的srs

  • 首先肯定是去官网查有无相关资料https://ossrs.net/lts/zh-cn/docs/v5/doc/getting-started-k8s

  • 在这里插入图片描述

  • 选择通用k8s的配置,点开srs.yaml的配置

apiVersion: v1
kind: ConfigMap
metadata:name: srs-config
data:srs.conf: |-listen              1935;max_connections     1000;daemon              off;http_api {enabled         on;listen          1985;}http_server {enabled         on;listen          8080;}vhost __defaultVhost__ {http_remux {enabled     on;}hls {enabled         on;hls_dispose     30;}}---apiVersion: apps/v1
kind: Deployment
metadata:name: srs-deploymentlabels:app: srs
spec:replicas: 1selector:matchLabels:app: srstemplate:metadata:labels:app: srsspec:volumes:- name: config-volumeconfigMap:name: srs-configcontainers:- name: srsimage: ossrs/srs:4ports:- containerPort: 1935- containerPort: 1985- containerPort: 8080volumeMounts:- name: config-volumemountPath: /usr/local/srs/conf---apiVersion: v1
kind: Service
metadata:name: srs-service
spec:type: LoadBalancerselector:app: srsports:- name: srs-service-1935-1935port: 1935protocol: TCPtargetPort: 1935- name: srs-service-1985-1985port: 1985protocol: TCPtargetPort: 1985- name: srs-service-8080-8080port: 8080protocol: TCPtargetPort: 8080
  • 可以看到包含三个基础配置ConfigMap,srs-deployment,srs-service
  • 但如果只是使用rtmp传输,自然是毫无问题,但是如果还需要使用webrtc功能,那只开这些端口是不够的,因为webrtc还需要有8000的udp端口,然后还有webrtc需要的https,配置文件也需要改成webrtc的
端口需要增加,版本也切换为srs5.0
spec:containers:- image: 'ossrs/srs:5'imagePullPolicy: IfNotPresentname: srsports:- containerPort: 1935protocol: TCP- containerPort: 1985protocol: TCP- containerPort: 8080protocol: TCP- containerPort: 8088protocol: TCP- containerPort: 8000protocol: UDP- containerPort: 1990protocol: TCP
然后service的端口也需要增加,然后再按照对外映射的端口来连通就可以了ports:- name: srs-service-1935-1935nodePort: 31935port: 1935protocol: TCPtargetPort: 1935- name: srs-service-1985-1985nodePort: 31985port: 1985protocol: TCPtargetPort: 1985- name: srs-service-8080-8080nodePort: 31080port: 8080protocol: TCPtargetPort: 8080- name: srs-service-1990-1990nodePort: 31990port: 1990protocol: TCPtargetPort: 1990- name: srs-service-8000-8000nodePort: 31800port: 8000protocol: UDPtargetPort: 8000- name: srs-service-8088-8088nodePort: 31808port: 8088protocol: TCPtargetPort: 8088selector:app: srssessionAffinity: Nonetype: LoadBalancer
  • 启动完毕后,就可以通过31808端口打开页面

  • 在这里插入图片描述

  • 贴一下yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:name: srs-deploymentnamespace: wzhlabels:app: srs
spec:replicas: 1selector:matchLabels:app: srstemplate:metadata:labels:app: srsspec:volumes:- name: config-volumeconfigMap:name: srs-config- name: ssl-volumepersistentVolumeClaim:claimName: ssl-pvccontainers:- name: srsimage: ossrs/srs:5ports:- containerPort: 1935- containerPort: 1985- containerPort: 8080- containerPort: 8088- containerPort: 8000protocol: UDP- containerPort: 1990         volumeMounts:- name: config-volumemountPath: /usr/local/srs/conf- name: ssl-volumemountPath: /homenodeSelector:wzh: master
apiVersion: v1
kind: Service
metadata:name: srs-servicenamespace: wzh
spec:type: LoadBalancerselector:app: srsports:- name: srs-service-1935-1935nodePort: 31935port: 1935protocol: TCPtargetPort: 1935- name: srs-service-1985-1985nodePort: 31985port: 1985protocol: TCPtargetPort: 1985- name: srs-service-8080-8080nodePort: 31080port: 8080protocol: TCPtargetPort: 8080- name: srs-service-1990-1990nodePort: 31990port: 1990protocol: TCPtargetPort: 1990- name: srs-service-8000-8000nodePort: 31800port: 8000protocol: UDPtargetPort: 8000- name: srs-service-8088-8088nodePort: 31808port: 8088protocol: TCPtargetPort: 8088
  • 还有config的配置文件
listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;http_api {enabled         on;listen          1985;https {enabled on;listen 1990;key /home/server.key;cert /home/server.crt;}    
}
stats {network         0;
}
http_server {enabled         on;listen          8080;dir             ./objs/nginx/html;https {enabled on;listen 8088;key /home/server.key;cert /home/server.crt;}
}
rtc_server {enabled         on;listen 8000; # UDP port# @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#config-candidatecandidate       192.168.30.7:31800;
}
vhost __defaultVhost__ {hls {enabled         on;}http_remux {enabled     on;mount       [vhost]/[app]/[stream].flv;}rtc {enabled     on;# @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtmp-to-rtcrtmp_to_rtc on;# @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtc-to-rtmprtc_to_rtmp on;}
}
http://www.lryc.cn/news/221800.html

相关文章:

  • 使用Java分割PDF文件
  • LLM时代中的分布式AI
  • Zinx框架-游戏服务器开发003:架构搭建-需求分析及TCP通信方式的实现
  • 如何使用Pyarmor保护你的Python脚本
  • 【c++】搜索二叉树的模拟实现
  • Kubeadm - K8S1.20 - 高可用集群部署(博客)
  • 515. 在每个树行中找最大值
  • 基于springboot+vue的图书馆管理系统
  • 诊断刷写流程中使用到的诊断服务
  • pytorch 中 nn.Conv2d 解释
  • 漏刻有时百度地图API实战开发(2)文本标签显示和隐藏的切换开关
  • Flink往Starrocks写数据报错:too many filtered rows
  • python-re模块
  • SSM之spring注解式缓存redis
  • jmeter压测问题分析
  • threejs CSS3DRenderer添加标签并设置朝向摄像机
  • 基于若依的ruoyi-nbcio流程管理系统仿钉钉流程json转bpmn的flowable的xml格式(简单支持发起人与审批人的流程)续
  • 虚幻引擎:如何进行关卡切换?
  • 工具类xxxUtil从application.properties中读取参数
  • 三国志14信息查询小程序(历史武将信息一览)制作更新过程05-后台接口的编写及调用
  • 时序预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost时间序列预测
  • useEffect和useLayoutEffect的区别
  • [科研图像处理]用matlab平替image-j,有点麻烦,但很灵活!
  • Node.js |(五)包管理工具 | 尚硅谷2023版Node.js零基础视频教程
  • 【ES专题】ElasticSearch集群架构剖析
  • Kafka与Flink的整合 -- sink、source
  • 小鱼ROS
  • 简单讲讲RISC-V跳转指令基于具体场景的实现
  • 第13章 Java IO流处理(一) File类
  • 测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)