方案1: docker-compose 双容器(原有,不变) 方案2: 二进制部署(go:embed 前端嵌入) - 修复 SPA fallback(c.FileFromFS 301 → c.Data 直接返回) - 二进制 22MB,内存 21.5MB - 支持全部 CLI 参数(--db-host --redis-host --port 等) 方案3: K8s 部署(hostNetwork + 外部 MySQL/Redis) - devops 声明空间 - embed 单容器 Deployment + NodePort Service - 健康检查改为 /version(/health 尚未实现) - hostNetwork 解决 K8s pod 网络到外部 MySQL 的连通性 新增: Dockerfile.embed, docker-compose.embed.yml, deploy/binary/
40 lines
1.3 KiB
YAML
40 lines
1.3 KiB
YAML
# ingress.yaml — Ingress 入口路由 (nginx-ingress)
|
|
# ----------------------------------------------------------------------------
|
|
# 路由规则 (embed 模式: 所有流量 → aiops:8080):
|
|
# /api/* -> aiops:8080 (后端 API)
|
|
# /ws/* -> aiops:8080 (WebSocket 长连接)
|
|
# / -> aiops:8080 (go:embed 前端 SPA)
|
|
#
|
|
# 前提: 集群已安装 nginx Ingress Controller。
|
|
# 部署前请修改 host (aiops.local) 与 ingressClassName 为实际值。
|
|
# 部署: kubectl apply -f ingress.yaml
|
|
# ----------------------------------------------------------------------------
|
|
---
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
name: aiops-ingress
|
|
namespace: devops
|
|
labels:
|
|
app.kubernetes.io/name: aiops
|
|
annotations:
|
|
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
|
|
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
|
|
nginx.ingress.kubernetes.io/proxy-body-size: "100m"
|
|
nginx.ingress.kubernetes.io/configuration-snippet: |
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
spec:
|
|
ingressClassName: nginx
|
|
rules:
|
|
- host: aiops.local
|
|
http:
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: aiops
|
|
port:
|
|
number: 8080
|