2.3 KiB
2.3 KiB
LPT Infrastructure
Kubernetes 部署清单,按环境隔离。
├── traefik/
│ └── dynamic.yml
├── dev/
│ ├── deployment-lpt-fe.yaml
│ ├── deployment-lpt-be.yaml
│ ├── deployment-lpt-ai.yaml
│ ├── service-lpt-fe.yaml
│ ├── service-lpt-be.yaml
│ ├── service-lpt-ai.yaml
│ └── configmap.yaml
├── prod/
│ ├── deployment-lpt-fe.yaml
│ ├── deployment-lpt-be.yaml
│ ├── deployment-lpt-ai.yaml
│ ├── service-lpt-fe.yaml
│ ├── service-lpt-be.yaml
│ ├── service-lpt-ai.yaml
│ └── configmap.yaml
└── README.md
首次部署
1. 创建 namespace
kubectl create namespace lpt-dev
kubectl create namespace lpt-prod
2. 创建 Secret(仅一次,由 CI/CD 自动管理)
# dev
kubectl create secret generic lpt-secrets \
--from-literal=llm-api-key=sk-xxx \
--from-literal=mysql-root-password=xxx \
-n lpt-dev
kubectl create secret docker-registry regcred \
--docker-server=192.168.123.199:5000 \
--docker-username=admin \
--docker-password=xxx \
-n lpt-dev
# prod
kubectl create secret generic lpt-secrets \
--from-literal=llm-api-key=sk-xxx \
--from-literal=mysql-root-password=xxx \
-n lpt-prod
kubectl create secret docker-registry regcred \
--docker-server=192.168.123.199:5000 \
--docker-username=admin \
--docker-password=xxx \
-n lpt-prod
3. Apply 全部配置
kubectl apply -f dev/
kubectl apply -f prod/
日常更新
cd ~/lpt-infra
git pull
kubectl apply -f dev/
kubectl apply -f prod/
Traefik
Traefik 以 Docker 容器运行在宿主机,通过 file provider 加载路由规则,转发到 K8s NodePort。
更新路由
# 将最新配置复制到 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 |
验证
kubectl get pods -n lpt-dev
kubectl get pods -n lpt-prod