feat: add Traefik dynamic config — fix prod Bad Gateway (wrong NodePorts)
This commit is contained in:
@@ -3,7 +3,8 @@
|
||||
Kubernetes 部署清单,按环境隔离。
|
||||
|
||||
```
|
||||
lpt-infra/
|
||||
├── traefik/
|
||||
│ └── dynamic.yml
|
||||
├── dev/
|
||||
│ ├── deployment-lpt-fe.yaml
|
||||
│ ├── deployment-lpt-be.yaml
|
||||
@@ -73,9 +74,29 @@ kubectl apply -f dev/
|
||||
kubectl apply -f prod/
|
||||
```
|
||||
|
||||
## CI/CD
|
||||
|
||||
各服务仓库的 Gitea Actions 负责 build + push 镜像,并通过 `kubectl set image` 更新 Deployment。`regcred` 由 workflow 自动 create/update,`lpt-secrets` 需手动创建一次后保持不变。
|
||||
## Traefik
|
||||
|
||||
Traefik 以 Docker 容器运行在宿主机,通过 file provider 加载路由规则,转发到 K8s NodePort。
|
||||
|
||||
### 更新路由
|
||||
|
||||
```bash
|
||||
# 将最新配置复制到 Traefik 挂载目录
|
||||
sudo cp traefik/dynamic.yml /etc/traefik/dynamic/k8s-lpt.yml
|
||||
|
||||
# Traefik 自动检测文件变更,无需重启
|
||||
# 或手动验证
|
||||
sudo docker exec traefik cat /etc/traefik/dynamic/k8s-lpt.yml
|
||||
```
|
||||
|
||||
### 端口对照
|
||||
|
||||
| 服务 | dev NodePort | prod NodePort |
|
||||
|------|-------------|---------------|
|
||||
| lpt-fe | 30080 | 30180 |
|
||||
| lpt-be (api) | 30082 | 30182 |
|
||||
| lpt-ai | ClusterIP | ClusterIP |
|
||||
|
||||
## 验证
|
||||
```bash
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
http:
|
||||
routers:
|
||||
lpt-fe-dev:
|
||||
rule: "Host(`lpt-dev.cat-shark.xyz`)"
|
||||
entrypoints: websecure
|
||||
tls:
|
||||
certResolver: le
|
||||
service: lpt-fe-dev
|
||||
lpt-api-dev:
|
||||
rule: "Host(`lpt-dev.cat-shark.xyz`) && PathPrefix(`/api`)"
|
||||
entrypoints: websecure
|
||||
tls:
|
||||
certResolver: le
|
||||
middlewares:
|
||||
- strip-api-prefix
|
||||
service: lpt-api-dev
|
||||
lpt-fe-prod:
|
||||
rule: "Host(`lpt.cat-shark.xyz`)"
|
||||
entrypoints: websecure
|
||||
tls:
|
||||
certResolver: le
|
||||
service: lpt-fe-prod
|
||||
lpt-api-prod:
|
||||
rule: "Host(`lpt.cat-shark.xyz`) && PathPrefix(`/api`)"
|
||||
entrypoints: websecure
|
||||
tls:
|
||||
certResolver: le
|
||||
middlewares:
|
||||
- strip-api-prefix
|
||||
service: lpt-api-prod
|
||||
|
||||
middlewares:
|
||||
strip-api-prefix:
|
||||
stripPrefix:
|
||||
prefixes:
|
||||
- "/api"
|
||||
|
||||
services:
|
||||
lpt-fe-dev:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://192.168.123.199:30080"
|
||||
lpt-api-dev:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://192.168.123.199:30082"
|
||||
lpt-fe-prod:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://192.168.123.199:30180"
|
||||
lpt-api-prod:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://192.168.123.199:30182"
|
||||
Reference in New Issue
Block a user