feat: add Go workload deployment artifacts and split Ingress routing

This commit is contained in:
2026-08-14 09:50:47 +08:00
parent ca019abb14
commit 4a8f2d56e2
13 changed files with 452 additions and 26 deletions

View File

@@ -15,10 +15,25 @@ kubectl -n zhinian create secret generic zhinian-rds-ca \
--from-file=ca.pem=./path/to/downloaded-rds-ca.pem
kubectl apply -f deploy/ack/configmap.yaml
kubectl apply -f deploy/ack/secrets.example.yaml # 仅作模板;先替换全部占位值
kubectl apply -f deploy/ack/web.yaml -f deploy/ack/worker.yaml \
kubectl apply -f deploy/ack/web.yaml -f deploy/ack/go-api.yaml \
-f deploy/ack/service.yaml -f deploy/ack/ingress.yaml
```
生产拓扑为 ADR-003 双工作负载:Next.js 只服务页面/静态资源/SSR(不持有任何
RDS/服务商凭据,仅共享会话密钥);Go 工作负载 `zhinian-go-api` 独占
`/api`、`/uploads`、`/generated-results`,内嵌 WorkerLoop(生产**不部署**
Node Worker,`worker.yaml` 已弃用保留)。Ingress 按路径分流:页面 → Web,
后端路径 → Go,`/api/internal/worker` → 无端点 deny Service。
Go 镜像构建:
```bash
docker build -f backend/Dockerfile -t REGISTRY/PROJECT/zhinian-go-api:TAG backend/
```
Go 首次启动时从 `zhinian-go-bootstrap` Secret 读取
`ZHINIAN_BOOTSTRAP_ADMIN_*`,仅当不存在任何超级管理员时创建一次。
数据库 schema 由部署负责人在发布前手工执行,**不部署迁移 Job Pod**(清单
`deploy/ack/migration-job.yaml` 已弃用保留):使用迁移角色账号依次执行
`database/migrations/0001_initial_schema.sql`、`0002_generation_lifecycle_fencing.sql`,