2. 控制平面与租户边界基本概念:定义控制平面、租户、租户边界,以及它们在 Multi-Cluster 中的角色
在 Multi-Cluster 架构中,控制平面与租户边界是定义资源所有权、调度策略与安全隔离的基石。理解这两个概念及其交互关系,是设计跨集群接口的前提。
2.1 控制平面(Control Plane)
控制平面是集群或联邦系统中负责维护期望状态、执行调度策略、处理 API 请求的逻辑组件集合。在 Multi-Cluster 语境下,控制平面分为两个层级:
| 层级 | 典型组件 | 职责 |
|---|---|---|
| 单集群控制平面 | kube-apiserver, kube-controller-manager, kube-scheduler, etcd | 管理单个集群内的 Pod、Service、ConfigMap 等资源;维护集群本地状态。 |
| 联邦/全局控制平面 | Karmada API Server, KubeFed Controller, Cluster API Provider | 跨集群资源分发、策略编排、故障迁移;维护全局资源视图与调度策略。 |
关键原则:全局控制平面不应直接操作单集群的 etcd 或 kubelet,而是通过单集群的 API Server 进行间接管理,保持控制平面之间的松耦合。
2.2 租户(Tenant)
租户是资源隔离与配额管理的基本单位。在 Multi-Cluster 架构中,一个租户可以跨越多个集群,拥有统一的身份、配额和策略。租户通常映射为组织中的团队、项目或产品线。
- 逻辑边界:租户拥有独立的命名空间集合、RBAC 角色、网络策略和资源配额。
- 跨集群一致性:同一租户在不同集群中应保持相同的身份标识(如 Tenant ID)和基础策略,但允许按集群特性调整资源规格。
- 资源归属:租户是资源计费、审计和监控的聚合维度。
实践建议:在 Multi-Cluster 环境中,建议使用
tenant-id 标签(Label)标记所有跨集群资源,便于全局控制平面进行策略匹配和资源聚合。
2.3 租户边界(Tenant Boundary)
租户边界定义了租户之间、租户与控制平面之间的交互规则与隔离范围。它既包含逻辑隔离(命名空间、RBAC),也包含网络隔离(NetworkPolicy)和资源配额隔离(ResourceQuota)。
| 边界类型 | 隔离机制 | Multi-Cluster 扩展 |
|---|---|---|
| 身份边界 | RBAC、OIDC、ServiceAccount | 全局控制平面维护租户身份映射,跨集群同步角色绑定 |
| 资源边界 | Namespace、ResourceQuota、LimitRange | 全局配额策略按集群分发,支持集群级配额叠加 |
| 网络边界 | NetworkPolicy、CiliumClusterwideNetworkPolicy | 跨集群网络策略需考虑集群间通信与网关路由 |
| 数据边界 | PV/PVC 访问模式、存储类选择 | 租户数据在集群间迁移时需保持一致性校验 |
2.4 Multi-Cluster 中的角色关系
下图展示了全局控制平面、单集群控制平面与租户之间的分层交互关系:
2.5 控制平面与租户边界的交互模式
在 Multi-Cluster 架构中,控制平面与租户边界的交互遵循以下模式:
- 策略下发:全局控制平面根据租户定义(Tenant CRD)生成集群级策略(如 ResourceQuota、NetworkPolicy),通过 Sync Controller 推送到目标集群。
- 资源上报:单集群控制平面定期汇总租户资源使用量,上报至全局控制平面,用于配额审计和调度决策。
- 边界校验:全局控制平面在调度工作负载时,校验目标集群是否满足租户的隔离要求(如专用节点池、存储类白名单)。
- 故障隔离:当某个集群的控制平面发生故障时,租户边界确保故障不扩散至其他集群中的同一租户资源。
常见误区:不要将租户边界等同于命名空间。命名空间是单集群内的隔离单元,而租户边界是跨集群的逻辑实体。一个租户可以在多个集群中各占一个或多个命名空间,但命名空间本身不具备跨集群身份。
2.6 概念对比总结
| 概念 | 作用域 | 核心职责 | Multi-Cluster 角色 |
|---|---|---|---|
| 控制平面 | 单集群 / 全局 | 维护期望状态、调度、API 处理 | 全局控制平面负责跨集群编排;单集群控制平面负责本地执行 |
| 租户 | 跨集群 | 资源归属、身份、配额聚合 | 作为策略匹配和资源计费的统一维度 |
| 租户边界 | 跨集群 | 隔离、安全、策略执行 | 定义全局控制平面与单集群控制平面之间的交互约束 |