106 lines
2.3 KiB
Markdown
106 lines
2.3 KiB
Markdown
# 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
|
|
```bash
|
|
kubectl create namespace lpt-dev
|
|
kubectl create namespace lpt-prod
|
|
```
|
|
|
|
### 2. 创建 Secret(仅一次,由 CI/CD 自动管理)
|
|
```bash
|
|
# 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 全部配置
|
|
```bash
|
|
kubectl apply -f dev/
|
|
kubectl apply -f prod/
|
|
```
|
|
|
|
## 日常更新
|
|
|
|
```bash
|
|
cd ~/lpt-infra
|
|
git pull
|
|
kubectl apply -f dev/
|
|
kubectl apply -f prod/
|
|
```
|
|
|
|
|
|
## 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
|
|
kubectl get pods -n lpt-dev
|
|
kubectl get pods -n lpt-prod
|
|
```
|