这篇文章已经一年多了,较旧的文章可能包含过时的内容。请检查从发表以来,页面中的信息是否变得不正确。
聚焦 SIG etcd
在这篇 SIG etcd 聚焦访谈中,我们与 James Blair、 Marek Siarkowicz、Wenjia Zhang 和 Benjamin Wang 进行了交流, 以更深入了解这个 Kubernetes 特别兴趣小组。
认识 SIG etcd
Frederico:你好,感谢接受采访!我们先从自我介绍开始,可以请你讲讲你自己、你的角色,以及你是如何参与 Kubernetes 的吗?
Benjamin: 大家好,我是 Benjamin。我是 SIG etcd 的 Tech Lead,也是 etcd 维护者之一。 我在 VMware 工作,VMware 属于 Broadcom 集团。 我参与 Kubernetes、etcd 和 CSI (Container Storage Interface) 既是因为工作需要,也因为我对开源有很强热情。 从 2020 年起,我一直在 Kubernetes、etcd(以及 CSI)相关领域工作。
James: 大家好,我是 James,是 SIG etcd 的联合主席,也是 etcd 维护者。 我在 Red Hat 担任 Specialist Architect,帮助大家采用云原生技术。 我在 2019 年开始参与 Kubernetes 生态。 到 2022 年底,我注意到 etcd 社区和项目需要更多支持,于是开始尽可能多地贡献。 我们社区里有句话:“为技术而来,为人而留”。 对我来说这句话完全真实,这一路是非常棒的旅程,我也很期待继续支持社区向前发展。
Marek: 大家好,我是 Marek,SIG etcd 的负责人。 在 Google,我负责 GKE 的 etcd 团队,确保所有 GKE 用户都能获得稳定可靠的体验。 我在 Kubernetes 的旅程开始于 SIG Instrumentation, 在那里我创建并主导了 Kubernetes Structured Logging 计划。 我目前仍是 Kubernetes Metrics Server 的主要项目负责人,为 Kubernetes 自动扩缩提供关键信号。 我是在大约 3 年前开始参与 etcd,也就是 3.5 版本发布前后。 我们经历过一些挑战,但我非常高兴看到 etcd 现在在可扩展性和可靠性方面都达到了历史最佳, 同时贡献数量也达到了项目历史最高点。 我对分布式系统、极限编程和测试很有热情。
Wenjia: 大家好,我叫 Wenjia,是 SIG etcd 的联合主席,也是 etcd 维护者之一。 我在 Google 担任工程经理,负责 GKE(Google Kubernetes Engine)和 GDC(Google Distributed Cloud)相关工作。 从 Kubernetes v1.10 和 etcd v3.1 发布开始,我就一直在开源 Kubernetes 与 etcd 领域工作。 我最初因工作接触 Kubernetes,但让我持续投入的是容器编排技术本身的魅力, 更重要的是这个出色的开源社区。
成为 Kubernetes 特别兴趣小组(SIG)
Frederico:非常好,谢谢。我们从 SIG 本身的起源谈起:SIG etcd 是一个比较新的 SIG, 你能简要介绍它的成立背景和原因吗?
Marek: 当然可以!SIG etcd 成立的原因是 etcd 是 Kubernetes 的关键组件, 承担其数据存储职责。 但 etcd 当时面临维护者流动、可靠性等挑战。 成立专门的 SIG 让我们能够聚焦解决这些问题,改进开发和维护流程, 并确保 etcd 与云原生生态的演进保持同步。
Frederico:成为 SIG 之后,效果是否符合预期?换句话说, 你刚才提到的这些动机现在解决得怎么样了,进展到什么程度?
Marek: 总体来看,这是非常积极的变化。 成为 SIG 之后,etcd 的开发过程有了更强的结构化和透明度。 我们采用了 Kubernetes 的流程,比如 KEP (Kubernetes Enhancement Proposals) 和 PRR(Production Readiness Reviews), 这提升了我们的特性开发和发布周期质量。
Frederico:除了这些之外,你会把哪一点视为“成为 SIG 后最大的收益”?
Marek: 对我来说最大的收益是采用了 Kubernetes 的测试基础设施, 比如 Prow 和 TestGrid。 对于 etcd 这样的大型项目,这些工具相比默认 GitHub 工具有明显优势。 这些成熟、易用、清晰的工具对 etcd 是非常大的加成, 它们让 Kubernetes 贡献者也更容易参与 etcd。
Wenjia: 完全同意。虽然挑战依然存在,但 SIG 结构为解决这些问题提供了坚实基础, 也有助于确保 etcd 继续作为 Kubernetes 生态关键组件取得成功。
我还想强调一个关键方面:它对社区带来的积极影响。 Kubernetes 的 SIG 机制为 etcd 贡献者创造了更友好的环境, 也让更广泛的 Kubernetes 社区参与度明显提升。 我们和多个 SIG 的协作都在加强,包括 SIG API Machinery、 SIG Scalability、 SIG Testing、 SIG Cluster Lifecycle 等。
这种协作有助于确保 etcd 的发展与整个 Kubernetes 生态需求保持一致。 由 SIG etcd 与 SIG Cluster Lifecycle 共同推动成立的 etcd Operator Working Group 就是一个典型例子,体现了这种成功协作,也体现了双方对改进 etcd 在 Kubernetes 中运维能力的共同承诺。
Frederico:既然你提到协作,那在最近几个月里, 你们是否观察到贡献者规模和社区参与度的变化?
James: 有的。正如我们的 独立 PR 作者数据 所显示,最近在 3 月我们达到了历史最高点,而且趋势仍在向好:

另外,从 etcd 项目所有仓库的整体贡献数据 来看,我们也观察到了积极趋势,显示 etcd 项目活跃度正在回升:

未来之路
Frederico:这些数据很有说服力,谢谢。那在近期,SIG etcd 的优先事项是什么?
Marek: 可靠性始终是第一优先级,我们必须确保 etcd 足够稳健。 我们也在持续改进 etcd 的可用性和可运维性,让运维人员更容易使用和管理。 此外,我们也在推动 etcd 成为基础设施管理领域可独立使用的方案,而不仅仅服务于 Kubernetes。 当然还有扩展性,我们需要确保 etcd 能承载云原生世界不断增长的需求。
Benjamin: 我同意,可靠性必须始终是我们的首要原则。 我们不仅要确保正确性,也要确保兼容性。 此外,我们还要持续提升 etcd 的可理解性和可维护性。 我们的重点应当放在解决社区最关心的痛点上。
Frederico:你们是否会和某些 SIG 保持特别紧密的协作?
Marek: 首先肯定是 SIG API Machinery。 他们负责 etcd 所存储数据的结构定义,所以我们一直在紧密合作。 另外是 SIG Cluster Lifecycle,etcd 是 Kubernetes 集群的关键组成, 所以我们也在新成立的 etcd operator Working Group 上协同推进。
Wenjia: 除了 Marek 刚提到的 SIG API Machinery 和 SIG Cluster Lifecycle, 我们也和 SIG Scalability 以及 SIG Testing 保持紧密合作。
Frederico:更广义地看,在不断演进的云原生环境中, 你会如何概括 SIG etcd 面临的关键挑战?
Marek: 当你处理关键数据时,可靠性永远都是挑战。 而云原生世界发展非常快,持续扩展以满足新需求也是一项长期工作。
如何参与
Frederico:我们的访谈接近尾声了。对于想参与 etcd 的人来说,可以如何开始?
Marek: 我们非常欢迎!最好的起步方式是加入 SIG etcd 例会, 关注 etcd-dev 邮件列表 的讨论, 并查看我们的 GitHub issues。 我们一直在寻找愿意参与提案评审、代码测试和文档贡献的人。
Wenjia: 我非常喜欢这个问题 😀。 对希望为 SIG etcd 做贡献的人来说,参与方式很多,而且都能真正产生影响。 下面是一些你可以参与的重点方向:
代码贡献:
- Bug 修复:处理 etcd 代码库中的既有问题。
可以从标记为
good first issue或help wanted的问题开始, 这些任务通常更适合新贡献者。 - 特性开发:参与新特性和增强能力的开发。 可以查看 etcd 路线图和讨论,了解正在规划什么,以及你的技能可以在哪些方向发挥作用。
- 测试与代码评审:通过编写测试、审查代码变更、提供反馈,帮助保障 etcd 质量。
- 文档:通过新增内容、澄清已有信息、修复错误来完善 etcd 文档。 清晰、完整的文档对用户和贡献者都很关键。
- 社区支持:在论坛、邮件列表或 Slack 频道 回答问题。帮助他人理解和使用 etcd 也是非常有价值的贡献。
入门建议:
- 加入社区:先从加入 etcd 的 Slack 社区、参加 SIG 会议、关注邮件列表开始。 这能帮助你熟悉项目、流程以及参与其中的人。
- 寻找导师:如果你是开源或 etcd 新人,建议寻找导师来提供指导和支持。 敬请关注!我们第一期 mentorship 计划非常成功,后续会开启新一轮。
- 从小处开始:不要害怕从小贡献做起。 即使只是修正文档中的错别字,或提交一个简单的 bug 修复, 也是非常好的参与方式。
通过参与 etcd,你不仅是在帮助改进云原生生态中的关键组件, 也会获得宝贵的经验与技能。 所以,欢迎加入并开始贡献!
Frederico:非常好,谢谢。最后一个问题: 你们是否有一条建议想给其他新成立的 SIG?
Marek: 当然有!我的建议是:拥抱大社区已经建立的流程, 优先推进与其他 SIG 的协作,并专注建设一个强健的社区。
Wenjia: 在我的开源旅程中,下面这些建议对我帮助很大:
- 保持耐心:开源开发需要时间。 如果你的贡献没有立刻被接受,或遇到挑战,不要灰心。
- 保持尊重:etcd 社区非常重视协作与尊重。 要重视他人的观点,并共同努力达成目标。
- 享受过程:参与开源应该是有乐趣的。 找到你真正感兴趣的方向,用让你有成就感的方式去贡献。
Frederico:非常棒的收尾,感谢各位!
更多信息与资源请参考:
- etcd 官网:https://etcd.io/
- etcd GitHub 仓库:https://github.com/etcd-io/etcd
- etcd 社区:https://etcd.io/community/