1. -trimpath(抹除源码绝对路径)
- Dockerfile: go build 加 -trimpath
- run.sh: 两处 go build 加 -trimpath
效果:二进制内 /app/backend/ 绝对路径命中 66 → 0(module 相对路径 sql-platform/ 仍保留,
那是 Go 的正常行为,-trimpath 只去绝对前缀)
2. 镜像
- kubernetes/deployment.yaml: opsxsql:latest → lghost/opsxsql:latest
- kubernetes/install.sh: 默认 IMAGE 改 lghost/opsxsql:latest
- 已构建并推送:lghost/opsxsql:latest (digest 70562a408cae, 25.2MB)
3. K8s 部署验证(namespace: sql)
- Deployment opsxsql 1/1 Running,0 重启
- Pod: opsxsql-695444d6b9-chrzp (node 172.19.0.161)
- Service opsxsql.sql.svc.cluster.local:80
- PVC opsxsql-data Bound 10Gi (cbs)
- Secret opsxsql-secrets 自动生成(SECRET_KEY / JWT_SECRET)
- /health → {"backend":"go","status":"ok","version":"0.4.0"}
- 首页正常,seed 完成(26 条审核规则 + LDAP 默认配置)
部署命令:bash kubernetes/install.sh
33 lines
1014 B
YAML
33 lines
1014 B
YAML
# 腾讯云 TKE 专用 Ingress 模板
|
||
#
|
||
# 与通用 ingress.yaml 的区别:
|
||
# 通用用 nginx/alb class → TKE 不支持
|
||
# TKE 用 ingressClassName: qcloud,且后端 Service 必须是 NodePort 类型
|
||
#
|
||
# 使用前:
|
||
# 1) 先创建 NodePort Service:kubectl apply -f kubernetes/service-nodeport.yaml
|
||
# 2) 把下面 host 改成你要用的域名
|
||
# 3) kubectl apply -f kubernetes/examples/ingress-tke.yaml
|
||
# 4) 在腾讯云控制台/DNS 把该域名解析到 CLB 的公网 IP
|
||
apiVersion: networking.k8s.io/v1
|
||
kind: Ingress
|
||
metadata:
|
||
name: opsxsql
|
||
namespace: sql
|
||
annotations:
|
||
cloud.tencent.com/health-check-path: /health
|
||
cloud.tencent.com/health-check-interval: "10"
|
||
spec:
|
||
ingressClassName: qcloud
|
||
rules:
|
||
- host: opsxsql.example.com # ← 改成你的域名
|
||
http:
|
||
paths:
|
||
- path: /
|
||
pathType: Prefix
|
||
backend:
|
||
service:
|
||
name: opsxsql-nodeport
|
||
port:
|
||
number: 80
|