1.1 多租户隔离概述

1.1.1 多租户概念

多租户(Multi-Tenancy)是指单个软件或平台实例同时服务多个独立用户群体(租户)的架构模式。在 Kubernetes 语境下,每个租户通常对应一个团队、项目、业务线或客户,共享同一套控制平面与数据平面资源,但彼此在网络、存储、计算、权限层面互不感知、互不干扰。

核心特征:逻辑隔离而非物理隔离;资源复用最大化;租户间操作边界清晰。

1.1.2 隔离必要性

缺乏隔离的多租户集群会面临以下风险:

风险维度 具体表现 影响等级
安全 恶意 Pod 逃逸后窃取其他租户数据 严重
性能 租户 A 的突发流量挤占租户 B 的 CPU/内存 高
稳定性 租户 C 的异常 Pod 导致节点 NotReady,波及全局 高
合规 审计日志混杂,无法追溯租户级操作 中
运维 误操作删除其他租户的 Namespace 或 CRD 中
关键认知:隔离不是“一刀切”的物理拆分,而是根据业务风险等级选择不同隔离深度。过度隔离会降低资源利用率,不足隔离则埋下故障隐患。

1.1.3 常见隔离模型:软隔离 vs 硬隔离

Kubernetes 社区与生产实践将多租户隔离归纳为两大模型:软隔离(Soft Multi-Tenancy)与硬隔离(Hard Multi-Tenancy)。两者在资源边界、安全假设、运维复杂度上存在本质差异。

对比维度 软隔离 硬隔离
共享范围 共享控制平面 + 共享数据平面 共享控制平面 + 独立数据平面
租户边界 Namespace + RBAC + NetworkPolicy 虚拟集群(vCluster)或独立节点池
安全假设 租户间相互信任或低敏感 租户间不可信,需强隔离
资源争抢 依赖 ResourceQuota / LimitRange 节点级 cgroup 或物理隔离
运维成本 低,原生 API 即可实现 高,需额外组件或集群虚拟化
典型场景 内部开发环境、测试集群 金融、医疗、SaaS 生产环境
选型建议:80% 的企业内部场景使用软隔离即可满足需求;只有面对强监管、多级安全域或外部客户数据隔离时,才需要引入硬隔离方案。

1.1.4 隔离模型对比架构图

下图从控制平面与数据平面两个维度,直观展示软隔离与硬隔离的架构差异:

软隔离 vs 硬隔离 架构对比 软隔离(Soft Multi-Tenancy) 共享控制平面(API Server / Scheduler / Controller) 租户 A Namespace: ns-a RBAC + NetworkPolicy ResourceQuota 租户 B Namespace: ns-b RBAC + NetworkPolicy ResourceQuota 共享数据平面(同一节点池) 硬隔离(Hard Multi-Tenancy) 共享控制平面(API Server / Scheduler / Controller) 租户 A vCluster / 独立节点池 Pod Security Admission 节点级 cgroup 隔离 租户 B vCluster / 独立节点池 Pod Security Admission 节点级 cgroup 隔离 独立节点池 A 独立节点池 B 软隔离:逻辑边界,资源复用率高,运维简单;硬隔离:物理/节点级边界,安全性强,资源开销大

1.1.5 隔离模型选择决策流程

在实际项目中,选择软隔离还是硬隔离需要结合业务需求、安全等级与运维能力综合判断。以下决策流程可帮助团队快速定位:

  1. 评估租户信任度:租户之间是否完全不可信?是 → 考虑硬隔离;否 → 软隔离即可。
  2. 评估合规要求:是否存在金融、医疗等强监管场景?是 → 硬隔离;否 → 继续评估。
  3. 评估资源利用率目标:是否要求 80% 以上节点利用率?是 → 优先软隔离 + 精细化配额;否 → 硬隔离可接受。
  4. 评估运维能力:团队是否有能力维护 vCluster 或独立节点池?是 → 硬隔离可行;否 → 软隔离更稳妥。
  5. 最终决策:综合以上因素,选择隔离模型并制定对应的资源模型与性能调优策略。
实战建议:推荐采用“软隔离为主,硬隔离兜底”的混合策略。日常开发测试使用软隔离,核心生产租户或高敏感业务单独分配硬隔离节点池,兼顾效率与安全。