2.5 KiB
部署拓扑模板
本目录描述 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/。运行前先执行:
./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。生产 Overlay
必须为每个弹性 Gateway/Checker 工作负载配置唯一身份与证书轮换,不能复用固定开发证书。
当前可执行验证:
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 会解析两类资产并拒绝
不存在的指标与禁止标签,指标改名或新增面板时必须同步更新该契约。