k8s部署ffmpeg
【代码】k8s部署ffmpeg。
·
程序每天凌晨会自动重启
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: ffmpeg
name: ssx-ffmpeg-dm
namespace: ssx
spec:
replicas: 1
selector: #标签选择器,与上面的标签共同作用
matchLabels: #选择包含标签app:mysql的资源
app: ffmpeg
template: #这是选择或创建的Pod的模板
metadata: #Pod的元数据
labels: #Pod的标签,上面的selector即选择包含标签app:mysql的Pod
app: ffmpeg
spec: #期望Pod实现的功能(即在pod中部署)
hostAliases: #给pod添加hosts网络
- ip: "192.168.0.101"
hostnames:
- "node101"
- ip: "192.168.0.102"
hostnames:
- "node102"
- ip: "192.168.0.103"
hostnames:
- "node103"
containers: #生成container,注意此pod部署了zookeeper和kafka.因为后者依赖前者。逻辑上来说需要有启动顺序,如果kafka启动报错未连接到zk,但是kebernetes会重启kafka容器
- name: ssx-ffmpeg-c
image: jrottenberg/ffmpeg #配置阿里的镜像,直接pull即可
imagePullPolicy: IfNotPresent
volumeMounts: # zipkin默认不会持久化数据的,默认保存在内存中
- mountPath: /etc/localtime #时间同步
name: c-v-path-lt
- mountPath: /ssxtmp #视频存储位置
name: c-v-path-video
command: ["bash"]
args: ["-c","export date1=`date -d tomorrow +%Y%m%d` && export date2=`date +%s -d $date1` && export date3=`date +%s` && export dateend=`expr $date2 - $date3` && /usr/local/bin/ffmpeg -v info -t $dateend -i 'rtsp://admin:AGXXZI@192.168.0.105:554/h264/ch1/sub/av_stream' -force_key_frames 'expr:gte(t,n_forced*1)' -hls_time 60 -threads 1 -hls_list_size 0 -hls_segment_filename /ssxtmp/index_${date3}_%20d.ts /ssxtmp/index_${date3}.m3u8 || exit 1"] # 此配置会覆盖dockerFile的CMD参数,这里ffmpeg参数指定1,还有使用低码率的源视频流,都是为了降低cpu的转码率。目前大概在15%,如果使用默认的配置是200% 高清视频地址rtsp://admin:AGXXZI@192.168.0.105:554/h264/ch1/main/av_stream
volumes:
- name: c-v-path-lt
hostPath:
path: /etc/localtime #时间同步
- name: c-v-path-video
hostPath:
path: /home/app/apps/k8s/for_docker_volume/nginx/static-pages/nas/ffmpeg/current_video
nodeSelector: #把此pod部署到指定的node标签上
kubernetes.io/hostname: node101
更多推荐
已为社区贡献1条内容
所有评论(0)