Files
cube/apps/video2slides/k8s/all.yaml
T
Fam Zheng 4ee9b6ce78
deploy articulate / build-and-deploy (push) Successful in 1m1s
deploy cube / build-and-deploy (push) Successful in 1m22s
deploy karaoke / build-and-deploy (push) Successful in 56s
deploy llm-proxy / build-and-deploy (push) Successful in 1m47s
deploy music / build-and-deploy (push) Successful in 2m14s
deploy notes / build-and-deploy (push) Successful in 1m41s
deploy simpleasm / build-and-deploy (push) Successful in 1m15s
deploy webgl / build-and-deploy (push) Successful in 1m5s
deploy video2slides / build-and-deploy (push) Successful in 2m3s
deploy werewolf / build-and-deploy (push) Successful in 1m8s
deploy write / build-and-deploy (push) Successful in 1m25s
video2slides: 新 app — 长视频抽帧 + 逐帧差异 + 拖阈值挑幻灯片
Rust + axum + cube-core,前端纯静态单页。ffmpeg 每 N 秒抽一帧(限宽
1280),image crate 逐帧灰度 MAE 算差异;前端拖阈值实时把相近帧变灰、
关键变化高亮,悬停出彩色大图,分页 + toolbar 常驻。按 X-Client-Id 分目录
隔离,存储走 hostPath。镜像非 scratch:debian-slim + ffmpeg + musl binary。
2026-06-14 21:29:47 +01:00

101 lines
2.4 KiB
YAML

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