45 lines
2.5 KiB
Markdown
45 lines
2.5 KiB
Markdown
# 部署拓扑模板
|
||
|
||
本目录描述 Proxy Pool 的部署拓扑,覆盖 Compose、HAProxy、Prometheus、
|
||
Grafana 与 Kubernetes。镜像会构建 `proxy-controller`、`proxy-gateway` 与
|
||
`proxy-checker`;Controller 已装配 Redis BASIC 检查任务,Checker 可通过认证
|
||
控制面执行 HTTP/HTTPS BASIC 探测。
|
||
|
||
Compose 使用 `config/local.yaml` 启用 Controller、两个 Gateway 和一个 Checker 的
|
||
mTLS 控制面。`generate-local-controlplane-certs.ps1` 为三个固定工作负载生成不同的
|
||
SPIFFE URI 证书,私钥只写入被忽略的 `deploy/.control-plane-tls/`。运行前先执行:
|
||
|
||
```powershell
|
||
./scripts/generate-local-controlplane-certs.ps1
|
||
docker compose -f deploy/docker-compose.yml up -d --build
|
||
```
|
||
|
||
Kubernetes Base 仍保持 `controlPlane.enabled: false`。`kubernetes/overlays/development-mtls`
|
||
启用单副本 Controller/Gateway/Checker mTLS 拓扑,挂载三组外部 TLS Secret,并固定
|
||
`gateway-a`、`checker-a` 身份。具体创建 Secret 和部署步骤见
|
||
[development mTLS overlay](kubernetes/overlays/development-mtls/README.md)。生产 Overlay
|
||
必须为每个弹性 Gateway/Checker 工作负载配置唯一身份与证书轮换,不能复用固定开发证书。
|
||
|
||
当前可执行验证:
|
||
|
||
```powershell
|
||
docker compose -f deploy/docker-compose.yml config --quiet
|
||
docker compose -f deploy/docker-compose.test.yml config --quiet
|
||
kubectl kustomize deploy/kubernetes/base | Out-Null
|
||
kubectl kustomize deploy/kubernetes/overlays/development-mtls | Out-Null
|
||
go run ./deploy/tools/configcheck deploy/config/local.yaml
|
||
```
|
||
|
||
`docker-compose.test.yml` 为 Redis 与 PostgreSQL 18 提供互相独立的本地集成测试
|
||
服务。两者只绑定回环地址;Redis 禁止持久化,PostgreSQL 使用
|
||
`/var/lib/postgresql` tmpfs。`test-redis.ps1` 通过专属 Compose 项目只启动 Redis;
|
||
PostgreSQL Adapter 和对应执行脚本完成前,不把数据库契约记为通过。
|
||
|
||
发布前仍须通过 `production-readiness.md` 中的一致性、安全、恢复、竞态与容量门禁,
|
||
并完成代表性集群容量验证。
|
||
|
||
Grafana Overview 与 Prometheus 规则只引用代码已注册的低基数指标。它们覆盖 Gateway
|
||
请求/端到端时延/Outcome、Controller 容量、Provider、Extraction、Checker 和 Drain;不按 Proxy、IP、
|
||
Client、Upstream、Worker、Session 或完整 URL 聚合。`go test ./deploy` 会解析两类资产并拒绝
|
||
不存在的指标与禁止标签,指标改名或新增面板时必须同步更新该契约。
|