Files
streaming/gemini-k8s-mediamtx.yaml

106 lines
2.3 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: mediamtx-deployment
namespace: streaming
spec:
replicas: 1
selector:
matchLabels:
app: mediamtx
template:
metadata:
labels:
app: mediamtx
spec:
containers:
- name: mediamtx-server
image: bluenviron/mediamtx:latest # Immagine ufficiale, non serve buildare nulla!
env:
- name: MTX_RTSPTRANSPORTS
value: "tcp,udp"
- name: MTX_HLSSERVER_ADDRESS
value: ":8888"
- name: MTX_RTMPSERVER_ADDRESS
value: ":1935"
- name: MTX_SRTSERVER_ADDRESS
value: ":8890"
ports:
- containerPort: 8888 # HLS
- containerPort: 1935 # RTMP
- containerPort: 8890 # SRT (TCP)
- containerPort: 8890
protocol: UDP # SRT (UDP)
---
# Servizi interni per raggiungere il pod
apiVersion: v1
kind: Service
metadata:
name: mediamtx-hls-service
namespace: streaming
spec:
type: ClusterIP
selector:
app: mediamtx
ports:
- name: http-hls
port: 8888
targetPort: 8888
---
apiVersion: v1
kind: Service
metadata:
name: mediamtx-rtmp-service
namespace: streaming
spec:
type: ClusterIP
selector:
app: mediamtx
ports:
- name: rtmp
port: 1935
targetPort: 1935
---
apiVersion: v1
kind: Service
metadata:
name: mediamtx-srt-service
namespace: streaming
spec:
type: ClusterIP
selector:
app: mediamtx
ports:
- name: srt
port: 8890
targetPort: 8890
protocol: TCP
---
# Ingress per la distribuzione HLS via HTTP (SSL gestito esternamente)
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: mediamtx-hls-ingress
namespace: streaming
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
nginx.ingress.kubernetes.io/custom-http-errors: "404"
nginx.ingress.kubernetes.io/default-backend: custom-404-service
spec:
ingressClassName: nginx
defaultBackend:
service:
name: custom-404-service
port:
number: 80
rules:
- host: tv.giaco.net
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: mediamtx-hls-service
port:
name: http-hls