Kubernetes SIG Multicluster 核心术语指南:About API、MCS、ClusterSet 与 Work API 全解析
【免费下载链接】communityKubernetes Community Documentation项目地址: https://gitcode.com/GitHub_Trending/com/community
导读
多集群(Multi-cluster)是 Kubernetes 生态中最复杂、术语也最容易混淆的领域之一:ClusterClaim、ClusterProperty、About API、MCS、ClusterSet、Work API……这些名词之间既有演进关系,又有语义差异。本文以 Kubernetes Community 仓库中 SIG Multicluster 的官方术语表(sig-multicluster/terminology.md)为骨架,结合该 SIG 的 README、Charter、Namespace Sameness 立场声明 以及历年年度报告,逐一厘清每个术语的定义、曾用名、别名及其在仓库子项目中的落点。读完本文,你将能够准确区分六大核心术语,读懂多集群相关 KEP、文档与代码讨论,不再被"同名不同义"的 API 名称误导。
一、为什么需要一份多集群术语表
Kubernetes 官方把"集群边界"视为资源模型的宇宙边缘,多集群场景缺乏统一的标准模式,这导致社区内各项目对同一概念常常使用不同叫法(见 Namespace Sameness 立场声明 的 Context 部分)。术语表文件的存在正是为了缓解这一混乱:
- 记录当前通用术语(terms in common use);
- 记录这些术语的别名(aliases),即过去或现在可能被使用的其他叫法;
- 通过"Also known as / Previously known as"字段显式标注演进关系,避免读者在新旧文档间迷失。
这份术语表不是孤立的,它与 SIG Multicluster 的六个子项目一一对应:about-api、cluster-inventory-api、mcs-api、multicluster-runtime、sig-multicluster-site、work-api(见 sig-multicluster/README.md 的 Subprojects 小节)。下面逐一展开。
二、About API:集群"自我介绍"的标准接口
术语定义:About API 是 SIG Multicluster 用于描述集群自身信息的 API。术语表明确标注了它的两个关键别名:
| 关系 | 名称 |
|---|---|
| 当前名称 | About API |
| Also known as(别名) | ClusterProperty |
| Previously known as(前身) | ClusterClaim API |
这一组"曾用名 → 别名 → 现名"的演进非常典型:早期该能力以ClusterClaim命名,社区讨论后更名为ClusterProperty,最终在 about-api 子项目中以 About API 的形式落地。
从仓库证据看其演进轨迹:
- 2022 年度报告 提到"Developed the About API for ClusterSets",即 About API 最初服务于 ClusterSet 的集群身份标识;
- 2023 年度报告 记录 "About API KEP in beta",即相关 KEP 进入 Beta 阶段;
- 2025 年度报告 记录 "About API v1beta1 CRD released",并提及社区正在讨论"well-known cluster properties"(建议的通用集群属性集合)与属性阶梯(property ladder)。
技术落点:About API 对应子项目about-api,其 OWNERS 文件位于仓库根目录 sigs.yaml 所引用的外部仓库。在阅读多集群相关 KEP 时,遇到ClusterProperty应理解为 About API 体系内的资源对象,遇到ClusterClaim则需意识到这是历史命名。
三、ClusterProfile API:集群清单与连接信息
术语定义:ClusterProfile API 是集群清单(Cluster Inventory)体系中的核心资源,用于描述集群的概要信息与连接凭据。术语表中它与 ClusterSet、About API 并列,是 SIG Multicluster 中较新的 API。
从仓库证据看其演进:
- 2024 年度报告 记录 "KEP 4322 renamed to 'ClusterProfile API'"(原 Cluster Inventory API 更名为 ClusterProfile API),并澄清了 ClusterProfile、ClusterSet 与 cluster inventory 三者的关系;
- 2025 年度报告 记录了多项 ClusterProfile 进展:ClusterProfile 凭据通过插件(plugin)管理(KEP 5339)、ClusterProfile CR 改为 namespace 作用域、新增集群专属认证信息字段、基于 extensions 的按集群插件配置等。
技术落点:ClusterProfile API 对应子项目cluster-inventory-api(该子项目于 2023 年度报告 中作为新子项目加入,当时 ClusterInventory API 正处于"active discussion and provisional"状态)。该 API 与 PlacementDecision API(多集群调度决策,见 2025 年度报告)共同构成集群清单体系。
四、ClusterSet:集群的逻辑分组单位
术语定义:ClusterSet 是"一组在逻辑上被当作一个整体对待的集群"的概念,是多集群服务、命名空间一致性等能力的组织单位。
从仓库证据看其定位:
- 2022 年度报告 记录 KEP 2149 "ClusterID for ClusterSet Identification" 于 v1.24 进入 alpha,为 ClusterSet 中的集群提供稳定 ClusterID;
- 2023 年度报告 记录该 KEP 于 v1.28 进入 Beta;
- 同样在 2022 年度报告 中,About API 最初正是"for ClusterSets",即用集群自身属性来标识其所属的 ClusterSet。
技术落点:ClusterSet 是跨多个 API(About API、MCS API、ClusterProfile API)的顶层抽象:MCS 的服务合并以 ClusterSet 为范围,About API 提供集群属性、ClusterID 用于识别 ClusterSet 成员(对应 KEP 2149)。阅读多集群文档时,遇到"ClusterSet"应理解为受同一权威治理、预期协同工作的一组集群。
五、Multicluster Services API(MCS / MCS API):跨集群服务发现与访问
术语定义:Multicluster Services API(简称 MCS 或 MCS API)是 SIG Multicluster 为跨集群服务发现与流量访问制定的标准 API 规范。术语表给出:
| 关系 | 名称 |
|---|---|
| 当前名称 | Multicluster Services API |
| Also known as(别名) | MCS、MCS API |
从仓库证据看其成熟度:
- 2022 年度报告 记录 KEP 1645(MCS API)"progress to beta",且"now with conformance tests";
- 2024 年度报告 记录 KEP 1645 毕业到 beta 的关键剩余工作是 ServiceImport 的 spec/status 字段合并到 root,且已实现配套的 conformance 套件(位于 mcs-api 仓库 conformance 目录),CI 与 presubmit 作业也已接入 test-infra;
- 2025 年度报告 记录 MCS 版本演进到 0.2.0 和 0.3.0,新增 IP 家族(dual-stack)策略、端口冲突规则、流量分布与内部流量策略字段、ServiceExport/ServiceImport 条件(conditions)等,并围绕 MCS 与 Gateway API 的对齐开展了大量工作。
技术落点:MCS API 对应子项目mcs-api。结合 Namespace Sameness 立场声明 的 Example 3 可以看出其设计取向:MCS 的跨集群服务合并默认不开启,实现思路包括 opt-in(服务必须被显式 export 才能跨集群合并)、opt-out(服务或命名空间可退出合并)、差异化发现(合并服务与"原始"服务使用不同名称或发现机制)。该 API 通常围绕ServiceExport/ServiceImport两个核心资源展开(这也是 MCS 讨论与 KEP 中出现频率最高的两个对象)。
六、Namespace Sameness:命名空间一致性的规范性立场
术语定义:Namespace Sameness 不是某个 API,而是 SIG Multicluster 对"多集群中命名空间语义"的规范性声明,是该 SIG 最早发布的立场文件之一(namespace-sameness-position-statement.md,发布于 2020/04,状态 RELEASED)。
其核心立场原文为:
For a set of related clusters governed by a single authority, all namespaces of a given name are considered to be the same namespace. A single namespace should have a consistent owner across the set of clusters.(对于由单一权威治理的一组相关集群,所有同名命名空间被视为同一个命名空间;单个命名空间在整个集群集合中应有一致的所有者。)
这一立场文件用三个假设性例子阐明了含义:
- 命名空间创建(Example 1):若 foo 团队在集群 A 中申请了名为 "database" 的命名空间,则其他团队不得再在集群 B 中申请同名 "database"——该名字在全部集群范围内被占用。命名空间名的分配与授权(如自服务门户、准入控制器强制团队前缀等)属于创新空间;
- RBAC 同步(Example 2):LDAP 到 RBAC 的同步流程可以假定每个集群中 "metrics" 命名空间应获得相同的 RBAC 规则,并可针对特定集群(如欧盟集群更严格)做特化;
- 多集群服务(Example 3):即使两个集群中同名命名空间满足 Sameness,跨集群服务合并仍不应默认开启,以免集群 A 的客户端意外访问到集群 B 的同类服务。
技术落点:Namespace Sameness 是 MCS、About API、ClusterProfile 等所有"跨集群行为规范化"工作的语义基石,在 Charter 定义的 SIG 范围内为后续 API 设计提供理论支撑。
七、Work API:跨集群工作负载调度的探索
术语定义:Work API 是 SIG Multicluster 对"跨集群工作负载管理"的探索性 API,用于将工作负载(Workload)分发并执行到多个集群。
从仓库证据看其定位:
- 2022 年度报告 明确将 work API 与"cross-cluster workload management""multicluster controllers"并列,作为 SIG 正在探索的方向之一;
- 2023 年度报告 将 work-api 列为"Continuing"子项目;
- 2025 年度报告 同样将 work-api 列为继续存在的子项目。
技术落点:Work API 对应子项目work-api。需要注意,从 2022 年度报告 的措辞看,该 API 尚处于探索阶段,SIG 明确表示"需要更多人分享具体用例、过往实现尝试与关切,才能提出普遍有用的解决方案"——因此在使用与引用时不应将其描述为已 GA 的稳定标准。
八、术语速查表与进阶阅读
速查表
| 术语 | 别名/曾用名 | 对应子项目 | 一句话定位 |
|---|---|---|---|
| About API | ClusterProperty(别名)、ClusterClaim API(曾用名) | about-api | 描述集群自身属性的标准 API |
| ClusterProfile API | 原 Cluster Inventory API(KEP 4322 更名) | cluster-inventory-api | 集群清单与连接凭据 |
| ClusterSet | — | 跨 API 的顶层抽象 | 逻辑上协同工作的一组集群 |
| Multicluster Services API | MCS、MCS API | mcs-api | 跨集群服务发现与访问规范(KEP 1645) |
| Namespace Sameness | — | 立场文件 | 同名命名空间跨集群语义一致性声明 |
| Work API | — | work-api | 跨集群工作负载调度的探索性 API |
进阶阅读路径
- 了解 SIG 整体范围与治理:SIG Multicluster README、Charter;
- 深入理解多集群命名空间语义:Namespace Sameness 立场声明;
- 追踪各 API 演进:2022、2023、2024、2025 年度报告;
- 检索全部 SIG 定义与子项目 OWNERS 信息:sigs.yaml。
使用建议:在阅读多集群相关 KEP、博客或代码时,若遇到ClusterProperty,请与 About API 关联;遇到ClusterClaim,请意识到那是历史命名;遇到MCS,请与 Multicluster Services API 关联。这份术语表正是社区为了消除这类歧义而维护的权威索引。
【免费下载链接】communityKubernetes Community Documentation项目地址: https://gitcode.com/GitHub_Trending/com/community
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考