devperf/k8s/backend-deployment.yaml
zyc 43f885e22a feat: MySQL 远程数据库 + CI/CD 流水线 + K8s 部署配置
数据库迁移:
- SQLite → MySQL (mysql-8351f937d637-public.rds.volces.com)
- Schema 从 drizzle-orm/sqlite-core 改为 drizzle-orm/mysql-core
- 全量数据迁移完成(13 张表 525 条记录)

CI/CD 流水线:
- .gitea/workflows/deploy.yaml(airlabs 分支触发)
- 前后端分别构建镜像推到火山引擎 CR internal 命名空间
- 自动部署到内部 K3s 集群

K8s 配置:
- backend-deployment.yaml(Bun 3200 端口 + MySQL 私网连接)
- web-deployment.yaml(Nginx 80 端口 + SPA fallback)
- backend-ingress.yaml(devperf-api.airlabs.art + TLS)
- web-ingress.yaml(devperf.airlabs.art + TLS)
- cert-manager-issuer.yaml(Let's Encrypt)

其他:
- 前端 Dockerfile 支持 VITE_API_BASE_URL 构建参数
- 后端 Dockerfile 改为直接运行源码(兼容 mysql2)
- 侧边栏/全局样式优化 + Git 图表修复

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 13:48:54 +08:00

86 lines
2.0 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: devperf-backend
labels:
app: devperf-backend
spec:
replicas: 1
selector:
matchLabels:
app: devperf-backend
template:
metadata:
labels:
app: devperf-backend
spec:
imagePullSecrets:
- name: cr-pull-secret
containers:
- name: devperf-backend
image: ${CI_REGISTRY_IMAGE}/backend:latest
imagePullPolicy: Always
ports:
- containerPort: 3200
env:
- name: PORT
value: "3200"
- name: JWT_SECRET
value: "devperf-jwt-secret-prod-2026"
# MySQL (私网地址)
- name: MYSQL_HOST
value: "mysql8351f937d637.rds.ivolces.com"
- name: MYSQL_PORT
value: "3306"
- name: MYSQL_USER
value: "zyc"
- name: MYSQL_PASSWORD
value: "Zyc188208"
- name: MYSQL_DATABASE
value: "devperf"
# Gitea
- name: GITEA_BASE_URL
value: "https://gitea.airlabs.art"
- name: GITEA_API_TOKEN
value: "5d37e09cab2735055f3fc1498931206f666f0539"
- name: GITEA_ORG
value: "zyc"
# CORS
- name: CORS_ORIGINS
value: "https://devperf.airlabs.art"
livenessProbe:
httpGet:
path: /api/health
port: 3200
initialDelaySeconds: 15
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 3
readinessProbe:
httpGet:
path: /api/health
port: 3200
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 3
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "500m"
---
apiVersion: v1
kind: Service
metadata:
name: devperf-backend
spec:
selector:
app: devperf-backend
ports:
- protocol: TCP
port: 3200
targetPort: 3200