proxy-pool/deploy
2026-08-07 18:02:27 +08:00
..
config feat: run compose control plane with mtls 2026-08-07 16:35:11 +08:00
docker build: include checker in deployment image 2026-07-31 22:35:58 +08:00
grafana feat: observe gateway request durations 2026-08-07 17:12:57 +08:00
haproxy feat: add proxy pool design and core architecture 2026-07-28 20:10:54 +08:00
kubernetes feat: add development kubernetes mtls overlay 2026-08-07 18:02:27 +08:00
prometheus feat: alert on gateway p99 latency 2026-08-07 17:14:54 +08:00
tools/configcheck feat: add ephemeral proxy activity pool 2026-07-29 12:51:18 +08:00
ci_test.go feat: add development kubernetes mtls overlay 2026-08-07 18:02:27 +08:00
compose_test.go feat: alert on gateway p99 latency 2026-08-07 17:14:54 +08:00
docker-compose.test.yml test: isolate postgres integration fixture 2026-07-29 21:53:33 +08:00
docker-compose.yml feat: run compose control plane with mtls 2026-08-07 16:35:11 +08:00
kubernetes_overlay_test.go feat: add development kubernetes mtls overlay 2026-08-07 18:02:27 +08:00
README.md feat: add development kubernetes mtls overlay 2026-08-07 18:02:27 +08:00

部署拓扑模板

本目录描述 Proxy Pool 的部署拓扑,覆盖 Compose、HAProxy、Prometheus、 Grafana 与 Kubernetes。镜像会构建 proxy-controllerproxy-gatewayproxy-checkerController 已装配 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: falsekubernetes/overlays/development-mtls 启用单副本 Controller/Gateway/Checker mTLS 拓扑,挂载三组外部 TLS Secret并固定 gateway-achecker-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 会解析两类资产并拒绝 不存在的指标与禁止标签,指标改名或新增面板时必须同步更新该契约。