proxy-pool/deploy/README.md

42 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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