Files
yingqing/k8s/core/api-deployment.yaml
T

73 lines
1.9 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: airshelf-core-api
labels:
app: airshelf-core-api
spec:
replicas: 2
selector:
matchLabels:
app: airshelf-core-api
template:
metadata:
labels:
app: airshelf-core-api
spec:
imagePullSecrets:
- name: cr-pull-secret
containers:
- name: airshelf-core-api
image: ${CI_REGISTRY_IMAGE}/airshelf-core-api:latest
imagePullPolicy: Always
# No command override: the image ENTRYPOINT (docker-entrypoint.sh) runs
# migrate + collectstatic, then the default CMD (gunicorn) is exec'd.
ports:
- containerPort: 8000
envFrom:
- secretRef:
name: airshelf-core-env
livenessProbe:
httpGet:
path: /api/health/
port: 8000
httpHeaders:
- name: Host
value: airshelf-web.airlabs.art
initialDelaySeconds: 20
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 3
readinessProbe:
httpGet:
path: /api/health/
port: 8000
httpHeaders:
- name: Host
value: airshelf-web.airlabs.art
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
resources:
requests:
memory: "512Mi"
cpu: "250m"
limits:
# 视频导出在本容器后台线程跑 ffmpeg,编码 1080P 竖屏 + 多路输入 + 字幕/配音混音
# 内存峰值可达 1.5GB,原 768Mi 必被 OOMKill(导出卡 35%、Pod 重启)。提到 2Gi 给足空间。
memory: "2Gi"
cpu: "1500m"
---
apiVersion: v1
kind: Service
metadata:
name: airshelf-core-api
spec:
selector:
app: airshelf-core-api
ports:
- protocol: TCP
port: 8000
targetPort: 8000