4、架构分层模型概述:基础设施层、集群管理层、租户控制层、应用负载层、安全策略层
多租户隔离集群的架构并非单一平面,而是通过清晰的分层模型将不同职责的组件解耦,从而在共享资源与严格隔离之间取得平衡。本章将自上而下解析五层核心架构:基础设施层、集群管理层、租户控制层、应用负载层和安全策略层。每一层都承担特定的隔离职责,并向上层提供标准化接口。
核心原则:分层模型遵循“下层提供资源与能力,上层定义策略与边界”的设计哲学。任何一层都不应越权访问下层内部状态,从而保证故障域与安全域的独立。
4.1 五层架构总览
下表概括了每一层的核心职责、关键组件及隔离粒度,帮助建立全局认知:
| 层级 | 核心职责 | 关键组件 | 隔离粒度 |
|---|---|---|---|
| 基础设施层 | 提供计算、存储、网络物理/虚拟资源 | 物理机、VM、SDN、分布式存储 | 物理/虚拟节点 |
| 集群管理层 | Kubernetes 集群自身运维与资源调度 | kube-apiserver、scheduler、controller-manager | 集群级 Namespace |
| 租户控制层 | 多租户身份、配额、策略的集中管控 | 租户 CRD、配额管理、RBAC 模板 | 租户级 |
| 应用负载层 | 业务应用的部署、服务发现与流量治理 | Deployment、Service、Ingress、Service Mesh | 应用/工作负载 |
| 安全策略层 | 跨层安全边界、网络策略、审计与合规 | NetworkPolicy、OPA/Gatekeeper、Pod Security Admission | 策略级 |
4.2 分层架构关系图
下图展示了五层之间的依赖与交互关系。箭头方向表示“上层依赖下层提供的服务”,同时安全策略层以横切方式作用于所有层级。
4.3 各层详细解析
4.3.1 基础设施层
作为整个集群的物理与虚拟化底座,基础设施层负责提供可伸缩的计算、网络和存储资源。在多租户场景下,该层通常通过节点标签、拓扑域和资源池实现物理隔离或超售隔离。
- 计算隔离:使用节点亲和性将敏感租户绑定到专属节点池,避免 CPU/内存争抢。
- 网络隔离:通过 VPC、Calico 网络策略或 Cilium 的 eBPF 实现租户级网络微分段。
- 存储隔离:为每个租户分配独立的 StorageClass 或 PV,支持加密卷。
4.3.2 集群管理层
该层是 Kubernetes 控制面的核心,负责集群自身的运维与资源调度。在多租户架构中,集群管理层需要支持分层 Namespace 和资源配额分层,防止租户资源滥用影响控制面稳定性。
最佳实践:在集群管理层启用
ResourceQuota 和 LimitRange,并配合 PriorityClass 保障系统组件优先级高于租户负载。
4.3.3 租户控制层
这是多租户架构的策略中枢。租户控制层通过自定义资源(CRD)定义租户模型,并管理租户的生命周期、配额模板、RBAC 角色绑定以及网络策略模板。该层通常由租户控制器或平台工程团队维护。
- 租户 CRD:定义租户标识、管理员列表、配额预设、允许的集群特性。
- 配额模板:为不同 tier(如金/银/铜)租户预设 CPU、内存、存储上限。
- RBAC 模板:自动为租户管理员绑定
admin角色,为开发者绑定edit角色。
4.3.4 应用负载层
该层承载实际业务应用,包括 Deployment、StatefulSet、Service、Ingress 等标准 Kubernetes 资源。在多租户环境下,应用负载层必须遵循租户控制层下发的命名空间边界和网络策略,不能跨租户访问。
常见陷阱:应用负载层中,如果 Service 或 Ingress 未显式绑定到租户命名空间,可能导致服务意外暴露给其他租户。务必使用
namespaceSelector 和 podSelector 严格限定流量范围。
4.3.5 安全策略层
安全策略层是横切关注点,贯穿所有层级。它通过声明式策略引擎(如 OPA/Gatekeeper、Kyverno)和原生安全机制(Pod Security Admission、NetworkPolicy)实现合规自动化和安全基线。
| 安全机制 | 作用层级 | 典型策略示例 |
|---|---|---|
| NetworkPolicy | 应用负载层 | 禁止租户 A 访问租户 B 的 Pod |
| Pod Security Admission | 集群管理层 | 强制所有 Pod 以非 root 用户运行 |
| OPA/Gatekeeper | 租户控制层 | 禁止创建未绑定租户标签的 Namespace |
| 审计日志 | 基础设施层 | 记录所有 API 操作并归档到外部存储 |
4.4 分层隔离的典型流程
以下流程展示了一个新租户从申请到应用部署的完整分层协作过程:
- 基础设施层预置节点池和存储类。
- 集群管理层创建集群并配置默认资源配额。
- 租户控制层接收租户申请,创建租户 CRD 实例,自动生成租户命名空间、RBAC 绑定和配额。
- 安全策略层验证新命名空间是否符合策略(如标签合规、禁止特权容器)。
- 应用负载层在租户命名空间内部署业务应用,通过 Service Mesh 实现东西向流量加密。
关键洞察:分层模型的核心价值在于职责分离——平台团队管理基础设施和集群,租户管理员控制租户策略,业务开发者只关注应用负载。每一层的变化都不应影响其他层的稳定性。