3. 平台门户架构总览:门户集成层、租户路由层、服务网格层、基础设施层

多租户故障域隔离的实现,依赖于一套清晰分层的平台门户架构。每一层承担特定的职责,从用户接入、租户识别、流量管控到底层资源隔离,形成完整的隔离与故障切换链路。本章从宏观视角拆解四层架构的核心组件与交互关系。

3.1 四层架构总览

平台门户采用自顶向下的分层设计,每一层对上层提供抽象接口,对下层屏蔽实现细节。四层定义如下:

层级 核心职责 关键组件 故障域范围
门户集成层 统一用户入口、认证、会话管理 API Gateway、OAuth2 Proxy、Web 控制台 全局 / 区域
租户路由层 租户识别、流量分发、隔离策略注入 租户路由器、策略引擎、DNS 调度 租户级
服务网格层 服务间通信治理、熔断、重试、故障注入 Istio / Linkerd、Envoy Sidecar、mTLS 命名空间 / 服务
基础设施层 计算、存储、网络资源隔离与故障域定义 Kubernetes 集群、节点池、PV、CNI 可用区 / 集群
架构原则:每一层只依赖其直接下层,不跨层调用。故障域从下往上逐层收缩,基础设施层故障不影响上层租户路由逻辑,租户路由层故障不扩散至门户集成层。

3.2 门户集成层:统一入口与身份边界

门户集成层是用户与平台交互的第一道边界。它负责:

  • 统一认证:集成 OIDC / OAuth2 协议,支持 SSO、MFA。
  • 会话管理:维护用户登录态,生成 JWT 并注入租户上下文。
  • 请求代理:将前端请求转发至后端服务,完成协议转换与限流。
  • 审计日志:记录所有用户操作,关联租户 ID 与请求链路。

该层通常部署为多副本无状态服务,通过全局负载均衡器对外暴露。故障域为全局或区域级别,任一实例故障不影响整体可用性。

3.3 租户路由层:隔离策略的决策中枢

租户路由层是四层架构中最核心的隔离决策点。它根据请求中的租户标识,动态选择目标服务实例或集群,并注入隔离策略。

核心工作流程:

  1. 租户识别:从 JWT、Header 或 Path 中提取租户 ID。
  2. 策略匹配:查询租户策略表,获取该租户的故障域要求(如:指定可用区、专用节点池)。
  3. 路由决策:将请求转发至对应故障域内的服务实例。
  4. 故障切换:当主故障域不可用时,按策略降级至备用域。
设计要点:租户路由层必须保持无状态,路由决策结果可缓存。故障切换逻辑应支持主动探测 + 被动超时两种触发方式,避免因路由层自身故障导致不可用。

3.4 服务网格层:细粒度流量治理与故障注入

服务网格层在 Pod 级别注入 Sidecar 代理,接管所有服务间通信。它为多租户隔离提供:

  • 流量分割:基于租户标签将流量路由至指定版本或集群。
  • 熔断与重试:防止单租户故障雪崩至其他租户。
  • 故障注入测试:在预发环境模拟延迟或异常,验证隔离策略有效性。
  • 可观测性:采集全链路 Trace 与 Metrics,关联租户维度。

服务网格的故障域通常限定在命名空间或服务级别。通过 Istio 的 DestinationRule 和 VirtualService,可以为每个租户定义独立的流量策略。

3.5 基础设施层:物理与逻辑资源隔离

基础设施层提供最底层的隔离保障。典型隔离手段包括:

隔离维度 实现方式 故障域粒度
计算隔离 节点池、Kubernetes Namespace、ResourceQuota 节点 / 可用区
网络隔离 CNI 策略、NetworkPolicy、独立 VPC 子网 / VPC
存储隔离 PV 独立、StorageClass 限定可用区 存储后端 / 可用区
故障域定义 Topology Spread Constraints、PodAntiAffinity 可用区 / 集群
常见误区:仅依赖基础设施层隔离而不在上层做路由控制,会导致故障切换时流量仍可能漂移至故障域内。必须结合租户路由层的策略,才能实现用户无感知的故障切换。

3.6 四层架构交互流程(SVG)

下图展示一次完整请求在四层架构中的流转路径,以及各层故障域边界的划分:

平台门户四层架构交互流程 四层架构交互流程与故障域边界 门户集成层 API Gateway · OAuth2 Proxy · Web Console · 全局负载均衡 租户路由层 租户识别 · 策略引擎 · DNS 调度 · 故障切换决策 服务网格层 Envoy Sidecar · mTLS · 熔断 · 重试 · 故障注入 基础设施层 Kubernetes 集群 · 节点池 · PV · CNI · 可用区 故障域范围:全局/区域 → 租户级 → 命名空间/服务 → 可用区/集群

3.7 故障切换路径示例(SVG)

当主故障域(可用区 A)发生基础设施故障时,租户路由层自动将流量切换至备用故障域(可用区 B)。下图展示切换前后的流量路径变化:

故障切换路径示例 故障切换路径:主域 → 备用域 主故障域(可用区 A) 租户路由实例 服务 A (主) 服务 B (主) ❌ 故障 备用故障域(可用区 B) 租户路由实例 服务 A (备) 服务 B (备) ✅ 正常 流量切换
关键结论:四层架构中,租户路由层是故障切换的决策大脑,服务网格层提供细粒度流量控制,基础设施层保证资源物理隔离。三层协同工作,才能实现用户无感知的故障域隔离与切换。