本文发布已超过一年。较旧的文章可能包含过时的内容。请检查页面中的信息自发布以来是否已变得不正确。
每次一个 KEP,增强 Kubernetes
您知道 Kubernetes v1.24 有 46 项增强功能吗?这在一个 4 个月的发布周期中包含了大量新功能。Kubernetes 发布团队协调发布的后勤工作,从修复测试失败到发布更新的文档。这是一项繁重的工作,但他们总是能交付成果。
发布团队由大约 30 人组成,分为六个子团队 - Bug 分流、CI 信号、增强功能、发布说明、沟通和文档。每个子团队管理发布的组件。这篇文章将重点介绍增强功能子团队的作用以及您如何参与其中。
什么是增强功能子团队?
好问题。我们马上就会谈到这一点,但首先,让我们谈谈 Kubernetes 中如何管理功能。
每个新功能都需要一个 Kubernetes 增强提案 - 简称 KEP。KEP 是小型结构化设计文档,提供了一种提出和协调新功能的方法。KEP 作者描述了动机、设计(和替代方案)、风险和测试 - 然后社区成员提供反馈以达成共识。
KEP 通过 k/enhancements 存储库上的拉取请求 (PR) 工作流程提交和更新。功能从 alpha 开始,并在成熟时通过毕业过程移至 beta 和 stable。例如,这是一个关于 Windows Server 上的特权容器支持的酷 KEP。它在 Kubernetes v1.22 中以 alpha 形式引入,并在 v1.23 中毕业为 beta。
现在回到问题 - 增强功能子团队协调每个版本 KEP 的生命周期跟踪。每个 KEP 都需要满足一组要求才能被批准包含在版本中。增强功能子团队验证每个 KEP 的每个要求并跟踪状态。
在发布开始时,Kubernetes 特别兴趣小组 (SIG) 提交他们的增强功能以选择加入发布。一个典型的版本在开始时可能有 60 到 90 项增强功能。在发布过程中,许多增强功能会退出。有些不完全符合 KEP 要求,另一些则没有完成代码中的实现。大约 60%-70% 的选择加入的 KEP 将进入最终版本。
增强功能子团队做什么?
又是一个好问题,继续提问吧!增强功能团队参与每个版本中的两个关键里程碑:增强功能冻结和代码冻结。
增强功能冻结
增强功能冻结是 KEP 完成的截止日期,以便将增强功能包含在版本中。这是一个质量关,用于强制执行围绕维护和更新 KEP 的对齐。最显著的要求是 (1) 生产就绪审查 (PRR) 和 (2) KEP 文件,其中包含完整的测试计划和毕业标准。
增强功能子团队通过 Github 上 KEP 问题上的评论与每个 KEP 作者进行沟通。作为第一步,他们将验证状态并检查它是否满足要求。在满足要求后,KEP 被标记为已跟踪;否则,它被认为是存在风险。如果 KEP 在增强功能冻结生效时仍然存在风险,则该 KEP 将从版本中删除。
该周期的这一部分通常是增强功能子团队最忙的时候,因为有大量的 KEP 需要梳理,并且可能需要多次访问每个 KEP 以验证其是否满足要求。
代码冻结
代码冻结是所有增强功能的实现截止日期。如果增强功能需要代码更改或更新,则代码必须在此之前实现、审查和合并。发布的后三分之一侧重于稳定代码库 - 修复不稳定的测试、解决各种回归问题和准备文档 - 所有代码都需要在这些步骤发生之前到位。
增强功能子团队验证增强功能的所有 PR 是否已合并到 Kubernetes 代码库 (k/k)。在此期间,子团队会联系 KEP 作者以了解哪些 PR 是 KEP 的一部分,验证这些 PR 是否已合并,然后更新 KEP 的状态。如果代码在代码冻结截止日期之前未全部合并,则该增强功能将从版本中删除。
我如何参与到发布团队中?
我很高兴你问这个问题。最直接的方法是申请成为 发布团队影子。影子角色是一种实践性的学徒制,旨在为个人在发布团队中担任领导职务做好准备。许多影子角色是非技术性的,不需要事先对 Kubernetes 代码库做出贡献。
每年有 3 个 Kubernetes 版本,每个版本大约有 25 个影子,发布团队始终需要愿意做出贡献的个人。在每个发布周期之前,发布团队会开放影子计划的申请。当申请上线时,它会发布在 Kubernetes 开发邮件列表中。您可以订阅该列表的通知(或定期查看!)以关注申请何时开放。该公告通常会在 4 月中旬、7 月中旬和 12 月中旬发布 - 或者在每个发布开始前大约一个月发布。
我如何了解更多信息?
如果您对所有 Kubernetes 发布子团队的具体细节感到好奇,请查看 角色手册。手册捕获了每个子团队的后勤工作,包括子团队活动的每周分解。它是更好地了解每个团队的绝佳参考。
您还可以查看与发布相关的 Kubernetes Slack 频道 - 特别是 #release、#sig-release 和 #sig-arch。这些频道有围绕发布的许多方面的讨论和更新。