Files
cube/apps/video2slides/k8s/all.yaml
T

101 lines
2.4 KiB
YAML
Raw Normal View History

apiVersion: v1
kind: Namespace
metadata:
name: cube-video2slides
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: video2slides
namespace: cube-video2slides
labels:
app: video2slides
spec:
replicas: 1
# 用了 hostPath + 单副本,重建时先杀旧的再起新的,避免两个 pod 抢同一目录
strategy:
type: Recreate
selector:
matchLabels:
app: video2slides
template:
metadata:
labels:
app: video2slides
spec:
imagePullSecrets:
- name: registry-creds
containers:
- name: video2slides
image: registry.famzheng.me/mochi/video2slides:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
name: http
env:
- name: VIDEO2SLIDES_DATA_DIR
value: "/data"
- name: VIDEO2SLIDES_DIST_DIR
value: "/dist"
volumeMounts:
- name: data
mountPath: /data
readinessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 1
periodSeconds: 5
livenessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 5
periodSeconds: 15
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
# ffmpeg 抽帧 + image 解码比较吃 CPU/内存,给足
cpu: "2"
memory: 1Gi
volumes:
- name: data
hostPath:
# 上传的视频 + 抽出的帧落在节点本地盘,pod 重启不丢(单节点 k3s)
path: /var/lib/cube/video2slides
type: DirectoryOrCreate
---
apiVersion: v1
kind: Service
metadata:
name: video2slides
namespace: cube-video2slides
spec:
selector:
app: video2slides
ports:
- name: http
port: 80
targetPort: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: video2slides
namespace: cube-video2slides
spec:
ingressClassName: traefik
rules:
- host: video2slides.famzheng.me
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: video2slides
port:
number: 80