CNCF云原生基金会项目毕业全流程解析
📖 目录导读
- 什么是CNCF项目毕业? – 定义与意义
- CNCF项目成熟度模型 – Sandbox → Incubating → Graduated
- 毕业的硬性指标 – 代码、社区、采用度、治理四大维度
- 具体毕业流程 – TOC投票、商标检查、安全审计等关键步骤
- 已毕业项目案例分析 – Kubernetes、Prometheus等经验总结
- 常见问题FAQ – 项目方与贡献者最关心的十个问题
- 如何帮助项目走向毕业 – 从贡献者到维护者的实操建议
什么是CNCF项目毕业?
CNCF(Cloud Native Computing Foundation,云原生计算基金会)是Linux基金会旗下的云原生技术推广组织,它管理的开源项目会经历沙箱(Sandbox)→ 孵化(Incubating)→ 毕业(Graduated) 三个等级。毕业是CNCF项目的最高荣誉,意味着该项目已在生产环境中被广泛验证,社区活跃且治理成熟。

截至2025年,CNCF共有约180+个项目,其中只有不到20%成功毕业,毕业项目包括:Kubernetes、Prometheus、Envoy、CoreDNS、containerd、Flux、Jaeger等。
问答1:Q:为什么要追求毕业?
A:毕业项目会获得CNCF的背书,企业客户更信赖其稳定性;项目Logo可在官网显眼位置展示;项目维护者有机会进入TOC(技术监督委员会)席位。
CNCF项目成熟度模型
| 阶段 | 典型特征 | 最低要求 |
|---|---|---|
| 沙箱 | 初始代码提交,1~3个主要维护者 | 项目提案获得TOC批准 |
| 孵化 | 至少1个生产用户,5~10个维护者 | 通过TOC答辩,代码扫描通过 |
| 毕业 | 3个以上独立生产用户,社区自治理 | 通过全面审计,TOC投票通过 |
过渡时间经验值:从沙箱到孵化通常需要6~18个月;从孵化到毕业则需要至少12个月,部分项目(如Kubernetes)用了3年。
毕业的硬性指标
根据CNCF官方文档(github.com/cncf/toc),毕业项目必须满足以下四大维度:
🔧 代码与架构
- 已通过CII 最佳实践徽章(Silver级别)
- 有完整的API规范文档
- 依赖的开源组件已明确安全审计
👥 社区健康度
- 至少来自3个以上组织的维护者
- 过去6个月内至少有10个以上的独立贡献者
- 有明确的贡献指南、行为准则
📊 采用度证明
- 至少3个不同组织的生产环境部署案例
- 每个案例需提供书面证明(如Case Study)
- 在GitHub上有300+个Star(非硬性但常见)
🏛️ 治理结构
- 有TOC批准的治理委员会
- 已签署CNCF商标许可协议
- 核心贡献者来自至少2个国家
问答2:Q:如果项目只有一家公司在维护能毕业吗?
A:不能,CNCF明确要求“多样性”,毕业项目必须证明没有单点故障,例如2019年某容器调度项目因仅由同一企业贡献者主导而被打回孵化。
具体毕业流程(2025年最新版)
- 发起PR:在cncf/toc仓库提交毕业提案,包含所有证明文档。
- 安全审计:必须由CNCF指定的第三方(如Trail of Bits)完成代码安全审计。
- CII检查:获取CII Silver徽章(需通过100+条检查项)。
- 商标合规:确认项目命名不侵犯他人商标权。
- TOC答辩:在月度TOC会议上用30分钟进行PPT演示。
- 投票周期:TOC成员在2周内投票,需要66%以上同意。
- 公告发布:CNCF在官网发布博客,项目Logo加入“Graduated”标签。
整个流程从PR提交到官网更新平均耗时4~6个月。
已毕业项目案例分析
Kubernetes(2018年毕业)
- 成功关键:形成CNI、CSI、CRI等标准接口;有超过4000个贡献者
- 教训:早期治理文档缺失,导致2017年曾因API变更引发社区分裂
Prometheus(2018年毕业)
- 成功关键:专注于“监控”单一场景;与Kubernetes深度集成
- 教训:需控制维护者疲劳度,一度出现响应缓慢(平均PR合并需45天)
containerd(2019年毕业)
- 成功关键:核心代码由Docker团队贡献,但有AWS、阿里云等独立维护者
- 教训:需要保证“核心模块”与“扩展模块”的明确分界
问答3:Q:毕业失败的项目常见问题是什么?
A:最常见的是“仅有1个生产用户”、“维护者流失严重”、“安全审计未通过”(如发现未修复的CVE漏洞)。
常见问题FAQ(问与答)
Q1:项目刚进入沙箱,如何规划毕业路线?
A:第一步确保至少有2个组织贡献者;第二步开始撰写CII文档(可参考envoy的治理模型),建议在GitHub建立ROADMAP.md。
Q2:是否需要商业化公司背书才能毕业?
A:不需要,但需要真实的用户案例,例如个人开发者或学校也可作为用户证明。
Q3:毕业后的项目有什么额外福利?
A:可获得CNCF提供的免费云资源(如Google Cloud credit)、在KubeCon大会上的同传席位。
Q4:如果项目维护者少于5人,还有机会毕业吗?
A:概率极低,建议先通过CNCF的“导师项目”招募新维护者。
Q5:毕业项目的商标归谁?
A:归Linux基金会旗下CNCF所有,项目方需签署商标授权协议。
Q6:CII Silver徽章的具体要求?
A:包括代码必须经过静态工具扫描、已知安全漏洞必须在特定时间内修复、需设置issue模板等,具体可查看bestpractices.coreinfrastructure.org。
Q7:TOC投票中,如果某成员反对会怎么样?
A:反对者必须给出书面理由(例如安全漏洞未修复),项目方需根据反馈修改后再申请。
Q8:毕业项目可以降级吗?
A:可以,如果项目长期不维护,TOC有权将之降回孵化甚至沙箱。
Q9:毕业项目是否必须绑定CNCF的CI/CD工具?
A:不强制,但建议使用CNCF提供的测试基础设施(如Prow)。
Q10:个人开发者如何支持喜欢的项目走向毕业?
A:贡献代码、撰写用户案例、参加TOC会议聆听讨论,所有活跃贡献者都有可能获得CNCF的“社区贡献奖”。
如何帮助项目走向毕业:实操建议
如果你是项目维护者或贡献者,可以按以下步骤行动:
- 建立贡献者阶梯:从“good first issue”到“maintainer”的清晰晋升路径。
- 启动生产用户案例收集:联系你的用户,写一篇200字的案例(用他们的话说)。
- 每周跨时区代码审查:确保即使亚洲时间的提交也有人review。
- 注册CII徽章:接受100+条检查项,这本身就是一次健康度审计。
- 参加CNCF SIG会议:向TOC成员展示项目活跃度(如每周的SIG-Contributor Experience会议)。
记住毕业不是终点,而是新的起点,像Kubernetes至今仍在迭代其毕业后的治理模型。
参考来源:CNCF官方文档(github.com/cncf/toc)、KubeCon历年演讲实录、CNCF项目毕业案例库。