Table of Contents

端口模型

端口是网关部署的核心决策——本平台不做任何隐式端口约定:所有端口显式配置, 缺省即启动拒绝。本页给出四个端口类型的规格与网络面规划依据。

四个端口

端口 数量 网络面 鉴权 配置位置
数据口 N≥1(纯控制 CP=0) 唯一允许公网/前端暴露的面 数据面自身(路由/防护/租户) worker.json listen.port + listener 实体
管理口 0/1 内网/管理网段或 127.0.0.1——禁公网 Bearer admin.listen(ip:port)
Tier 内部口 0/1(Standalone=0) 仅集群内网——恒不公网 Tier KeyPair/传输层 raft.listen
guardian 控制口 0/1(K8s=0) 默认仅本机;远程=内网管理网 本机免鉴权;远程 Bearer guardian --bind(IPC 缺省)

数据口:一个口还是多个口

  • listen.port 声明缺省数据口(启动即监听);
  • 发布态 listener 实体驱动数据口热增删({port, address?, protocol, ...})—— 多端口拓扑=多个 listener 实体;
  • 单口模式(Standalone 兼容)=数据+管理+UI 复用同一口;严格分离必须分开。

管理口上有什么

管理口按固定链序挂载(顺序即优先级):

/healthz → /readyz → /metrics → SSE 流 → 发布进度 → /ui/* → 管理 REST 翻译层
路径 语义
/healthz liveness——恒 200(探针车道免鉴权)
/readyz 存储+raft 双确认——200/503({ready, commitIndex} 或 {ready:false, degradedReason})
/metrics Prometheus 抓取端点(Bearer 闸后)
/ui/* 内嵌管理控制台(SPA)
/api/v1/… 管理 REST(与 CLI 同一契约)
meta/openapi.json / meta/routes 管理面 OpenAPI 文档与路由投影

严格分离纪律:数据面绝不出现在管理口——分离模式下管理口对数据面路径返回 404 信封。

内外网硬规则

  1. 数据口是唯一公网面——客户端可达;其余三个口一律不暴露公网;
  2. Tier 口必须仅内网——raft 恒不与业务口复用/合流(稳定性:慢客户端不得拖累心跳; 安全:对等口必须防火墙可区分);
  3. 管理口=127.0.0.1 或管理网段;UI 随管理口,永不暴露于数据口;
  4. guardian 口默认仅本机(远程=内网管理网+系统密钥 Bearer)。

结论:需要内外分离的部署=一公网(数据口)+三内网(管理/Tier/guardian)。 当前由部署与防火墙约束保证(规范层硬规则)。

最少端口速查

形态 单节点最少 全集群最少
Standalone 单口 1 1
Standalone 严格分离 2 2
生产集群 CP(纯控制) 2(管理+Tier) CP×3 ⇒ 6
生产集群 DP 2(1 数据口+Tier) DP×1 ⇒ 2
4 台标准集群合计 — 8 个端口面

dev 环境约定

前端开发代理的事实约定端口为 5000(单口模式)——这是约定不是代码行为, 任何环境都可以换。