本文已超过一年。较旧的文章可能包含过时的内容。请检查页面中的信息自发布以来是否已变得不正确。

加入 SIG 可伸缩性并以困难的方式学习 Kubernetes

为 SIG Scalability 做出贡献是深入全面学习 Kubernetes 的好方法,团队非常欢迎你加入成为贡献者。我研究了通过艰难方式学习的价值,并采访了现任 SIG 主席,让你了解贡献的感觉。

通过艰难方式学习的价值

在软件开发社区中,有一种信念是推崇用最具挑战性和最严格的方法来学习一门新的语言或系统。这些方法通常被称为“通过艰难的方式学习__”。例子很多:通过艰难的方式学习代码、通过艰难的方式学习 Python,以及许多其他源自 Zed Shaw 相关课程的方法。

虽然有人为你提供“通过艰难的方式学习 Kubernetes”之类的体验(最著名的是Kelsey Hightower 的项目),但任何“艰难方式”项目都应尝试涵盖核心主题原则的各个方面。

因此,真正“通过艰难的方式学习 Kubernetes”的方法是加入 CNCF 并参与项目本身。并且只有一个 SIG 可以真正为 Kubernetes 提供全栈学习体验:SIG Scalability。

SIG Scalability 背后的团队负责检测和处理当 Kubernetes 集群使用超过一千个节点时出现的问题。谷歌的员工软件工程师兼 SIG Scalability 成员 Wojiciech Tyczynski 说,这个 SIG 的测试集群的标准规模超过 5,000 个节点。

然而,这个 SIG 并非由高可扩展系统设计方面的博士组成。例如,与 Tyczynski 一起工作的许多人加入 SIG 时对这些类型的问题知之甚少,而且往往对 Kubernetes 也知之甚少。

在 SIG Scalability 上工作就像跳入泳池深处学习游泳一样,而 SIG 本质上关心整个 Kubernetes 项目。SIG Scalability 专注于 Kubernetes 作为整体和大规模如何运作。SIG Scalability 团队成员有动力了解每个系统,并了解所有系统如何相互交互。

复杂而有益的贡献者体验

虽然这听起来可能很复杂(而且确实如此!),但这并不意味着它超出了普通开发人员、测试人员或管理员的能力范围。谷歌软件开发人员 Matt Matejczyk 自 2019 年初才加入该团队,但他自那时起一直是团队的重要成员,负责找出错误。

“我是这里的新人,”Matejczyk 说。“我是在 [2019 年] 一月份加入团队的。在那之前,我在纽约的谷歌从事 AdWords 工作。我为什么加入?我认识那里的一些人,所以这是我决定搬家原因之一。当时我认为 Kubernetes 是一项独特的、前沿的技术。我认为参与其中会很酷。”

Matejczyk 关于“酷”的看法是正确的。“这很酷,”他说。“所以实际上,了解可扩展性并不容易。你需要理解很多事情。你需要非常了解 Kubernetes。它可以使用 Kubernetes 的每个部分。在过去的 8 个月之后,我仍然在学习中。我认为我花了大约 3 个月的时间才达到不错的速度。”

当 Matejczyk 谈到他在过去 8 个月中所做的工作时,他回答说:“一个有趣的例子是我最近一直在处理的一个回归问题。我们注意到 Kubernetes 控制平面在特定场景中的整体速度较慢,但我们无法将其归咎于任何特定组件。最后,我们意识到一切都归结为 golang 级别的内存分配。仅仅因为其中一个分配内存的速度太快,就导致两个完全独立的代码片段(作为同一个二进制文件的一部分运行)相互影响性能,这是非常违反直觉的。但是,将所有线索联系起来并找出回归问题的根源会带来极大的满足感。”

Tyczynski 说:“这不仅是调试回归问题,也是调试和查找瓶颈。一般来说,这些可能是回归问题,但也可能是我们可以改进的地方。另一个重要的领域是扩展我们想要向用户保证的内容。扩展系统的 SLA 和 SLO 覆盖率,以便用户可以依赖他们可以从系统在性能和可扩展性方面期望的内容。Matt 在扩展我们的测试方面做了很多工作,使其更具代表性并涵盖更多的 Kubernetes 概念。”

尝试 SIG Scalability

SIG Scalability 团队始终需要新成员,如果你是那种喜欢接受新的复杂挑战的开发人员或测试人员,并且也许喜欢通过艰难的方式学习,请考虑加入此 SIG。正如团队指出的那样,在你的简历中添加 Kubernetes 专业知识绝不是坏事,而且这是你可以从头到尾全面学习的唯一 SIG。

请参阅 SIG 的文档,了解即将举行的会议、其章程等信息。你也可以加入 #sig-scalability Slack 频道,看看它的情况。我们希望看到你加入,利用这个绝佳的机会学习 Kubernetes 并同时做出贡献。