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

物理学、政治和拉取请求:Kubernetes 1.18 版本访谈

COVID-19 大流行的开始没有延迟 Kubernetes 1.18 的发布,但不幸的是 一个小错误可能会导致延迟——幸好只延迟了一天。这是 1.18 发布负责人 Jorge Alarcón3 月 25 日发布之前需要处理的最后一件棘手的事情。

共同主持每周 Google Kubernetes 播客 最好的部分之一是我们与帮助 Kubernetes 版本发布的人进行的对话。Jorge 是我们在 3 月份第 96 集的嘉宾,并且 就像上周一样,我们很高兴为您带来这次采访的文字稿。

如果您更喜欢“有声书版本”,包括本月晚些时候发布 1.19 时的另一次采访,请订阅该节目,无论您在哪里获取播客。

在过去几周里,我们与 Kubernetes 的长期贡献者和 SIG 负责人 David OppenheimerDavid AshpoleWojciech Tyczynski 进行了交谈。所有这些都值得您多遛一会儿狗来听听!


ADAM GLICK:你以前是一位物理学家。我必须问一下,你研究的是哪种物理学?

JORGE ALARCÓN:在我研究数学和所有这些的年代,我曾经研究计算生物学和一点高能物理学。计算生物学是我花费最多时间研究的领域。它本质上是探索这样一个大的想法:我们拥有蛋白质的结构。我们知道它们是由什么组成的。现在,基于该结构,我们希望能够预测它们将如何折叠以及它们将如何表现,这实质上转化为设计药物、设计疫苗或任何您可能想到的与生物体有任何联系的想法。

ADAM GLICK:这似乎很适合进入生物信息学之类的领域。您是否涉足了该领域,还是决定直接去其他地方?

JORGE ALARCÓN:它是有关系的,我与一些专注于该领域生物信息学的人合作过,但我从未绕道进入它。说实话,我对计算生物学最大的想法甚至不是生物学。这通常是它畅销的原因,人们真正感兴趣的是蛋白质工程以及您可以做的所有酷炫而令人惊奇的事情。

这绝对是好的,我不想剥夺它的价值。但我最大的事情是因为生物学是一件真实的事情,它非常复杂。而数学——您必须设计的用于研究这些系统的模型,以便能够预测人们可以实际实验和测量的东西,它只是让我着迷。复杂性、美感、机制以及一旦您通过数学并观察事物后所看到的所有结构,它只是让我着迷。

ADAM GLICK:您是如何从那个世界进入 Kubernetes 世界的?

JORGE ALARCÓN:这既是一个非常无聊的故事,又是一个有趣的故事。

[笑]

我做了物理方面的事情,这很好。这很有趣。但在某个时候,我想——在学术界工作——至少我的感觉是,通常你周围的所有人通常都是学者。只是另一群物理学家,一群数学家。

但是你很少有机会将你正在做的事情交给其他人使用。即使对于数学家和物理学家来说,我们正在研究的事情也都是非常专业的,你可能只能找到三、四、五个人能够真正理解你所说的一切。很多人都会理解其要点,但理解细节是比较罕见的。

我非常喜欢技术、软件工程、编码等的一件事是所有事物都是多么的开放和透明。你可以用 Python 编写你的库,你可以发布它,突然之间,全世界都会实际使用它,实际消耗它。而且通常,我看到它有一个很大的途径,你可以在一些非常复杂的事情上工作,你可以交流它,人们可以真正地按照他们既定的方向使用它。这大概就是发生的事情。

在某个时候,纯粹是偶然的机会,我在互联网上遇到了一群人,他们正处于组建一个名为 Data for Democracy 的新团体的阶段,这是一个非营利组织。整个想法是互联网,尤其是 Twitter——这是我们聚集的方式——Twitter、互联网。我们有大量的数据科学家、从事软件工程师工作的人等等。如果我们都聚集在一起,尝试解决一些实际影响人们日常生活的问题,该怎么办?有很多项目。帮助美国公民自由联盟收集一些他们正在做的事情的数据,收集数据并为地方政府进行分析——哪里有坑洼,消耗了多少水。

尝试应用我们所知道的所有科学知识,结合我们可以编写的所有代码,为人们提供一个良好且易于理解的想法,让他们说,好吧,这说得通,让我们为此做些事情——政策、行动,无论是什么。我开始与这个名为 Data for Democracy 的团体合作,这是一群很棒的人。我认为我们可以将 Data for Democracy 归咎于的那个人——那个提出想法并使其启动并运行的人,他的名字是 Jonathan Morgan。最终,我们开始一起工作。他创办了一家初创公司,我去那家初创公司工作。这基本上就是让我从物理学转向软件工程领域的原因——Data for Democracy,绝对的。

ADAM GLICK:您当时使用 Kubernetes 作为工作的一部分吗?

JORGE ALARCÓN:不,它很简单。你只是尝试获取一些数据。你创建几个 IPython 笔记本,设置一些非常简单的 MySQL 数据库,就是这样。

ADAM GLICK:您从哪里开始使用 Kubernetes?是在您开始为其做出贡献并成为其中一部分之前,还是您决定直接加入?

JORGE ALARCÓN:我第一次开始使用 Kubernetes 时,也是在我的第一份工作中。所以在我真正开始做软件工程师之前,我并没有接受过很多关于软件工程或任何类似方面的专门培训。我只是从物理学家转变成了工程师。在我的物理学时代,至少在计算机方面,我完全接受了超级老派的系统管理员培训,你拥有 10 台、20 台电脑。你知道它们在物理上的位置,而且你必须连接电缆。

ADAM GLICK:所有宠物——始终都是所有宠物。

JORGE ALARCÓN:[笑] 你必须有你庞大的 Python、bash 脚本,三到五个主要版本,所有这些都是因为进行升级会破坏一些非常重要的东西,而且你不知道如何处理它。那就是我的训练。那就是我学习做事的方式。这些是我知道如何做的事情。

当我来到这家公司——一家初创公司——我们几乎是从头开始。我们正在构建几个应用程序。我们正在测试它们,我们将它们部署在几个托管实例上。但像所有事情一样,我们有很多想要自动化的繁琐工作。整个问题是,经过几天的努力,我们终于设法让这个版本的应用程序在这些机器上启动并运行。

它可以连接到互联网。人们可以测试它。但事实证明,它现在比该仓库所有主分支上的最新版本落后两周,所以我们现在想要更新。我们必须经历重新启动、创建新机器、做所有事情的过程。老实说,我不知道 Kubernetes 是什么。我当时的老板向我提到过它,说,嘿,我们应该使用 Kubernetes,因为显然,Kubernetes 也许能在这里帮助我们。我们做了一些——我想称之为研究和开发。

实际上只是在做——再说一次,初创公司,小公司,小团队,所以真的只是我自己在玩 Kubernetes,试图让它工作,试图让它运行。我迷失了。我不知道我在做什么——不够。我不知道 Kubernetes 应该如何帮助我。那时,我尽了最大的努力进行谷歌搜索。没有找到太多例子。没有找到太多博客文章。那还很早期。

ADAM GLICK:这是什么时间段?

JORGE ALARCÓN:三、四年前,所以肯定不是 1.13。这是我现在能给出的最佳估计。但我找不到任何好的例子,任何教程。我能找到的唯一一本书是 Joe Beda、Kelsey Hightower 写的,我忘了另一位作者是谁。但它是什么?"Kubernetes— Up and Running"?

总的来说,我现在把它作为参考——它真的很好。但作为初学者,我仍然感到迷茫。他们给出了所有这些惊人的例子,他们提供了应用程序,但我不知道为什么有人可能需要 Pod,为什么有人可能需要 Deployment。所以我最后的办法是尝试找到一个真正了解 Kubernetes 的人。

偶然地,在我永无止境的谷歌搜索中,我实际上找到了一个指向 Kubernetes Slack 的链接。我加入了 Kubernetes Slack,希望有人能帮到我。那是我进入 Kubernetes 社区的入口点。我只是不断探索 Slack,试图看看人们在谈论什么,他们在问什么,试图理解它,然后不断迭代。在某个时候,我想我掌握了窍门。

ADAM GLICK:是什么让你决定成为发布负责人?

JORGE ALARCÓN:这个问题的答案也是我为什么一直在为 Kubernetes 做出贡献的答案。我真的只是想帮助社区。我非常喜欢 Kubernetes。

将 Kubernetes 与几年前的旧式系统管理进行比较,我需要一周的时间才能为应用程序创建一个节点来运行。我花了几个月的时间才得到一些看起来像 Ingress 资源的东西——只是设置 Nginx,并允许其他人实际使用我的应用程序。我可以在五分钟内完成所有这些,这真的让我着迷。另外,我不得不把它归咎于物理学。在物理学中,我真的很喜欢模式,而且我真的很喜欢 Kubernetes 的设计。

一旦我真正掌握了窍门,我就喜欢上了它的一切设计,我只是想了解更多关于它的信息。我想帮助贡献者。我想帮助那些实际构建它的人。我想帮助维护它,并为新的贡献者或新用户提供信息。所以与其让他们花几个月的时间才能启动并运行,不如我们来聊聊你遇到的问题,并尝试在一个小时左右的时间内修复它。

ADAM GLICK:你现在在一家隐形初创公司工作。是否可以假设他们在使用 Kubernetes?

JORGE ALARCÓN:是的——

[笑]

——用于一切。

ADAM GLICK:你能说一下 Searchable 是做什么的吗?

JORGE ALARCÓN:我们正在尝试构建的东西有点像你文档的搜索引擎。通常,如果人们有问题,他们会跳转到 Google。而且在大多数情况下,你都能得到一个很好的答案。你可以问一些非常随机的问题,比如“一头大象的重量是多少?”

如果你仔细想想,这有点随机,但 Google 会给你一个答案。我们正在尝试构建的东西与此类似,但用于文件。所以本质上,是一个你文件的搜索引擎。大多数人,你的本地机器上都加载了——至少我的机器上,我有几十 GB 的不同文件。

我拥有 Google Drive。我有很多文档存储在我的电子邮件等等中。所以这个想法是建立一个能够连接所有这些部分的搜索引擎。除了进行简单的单词搜索——例如,“Kubernetes 面试”,并给我带来我们正在查看的所有问题的文档——我还可以问一些问题,比如我上周在测试 Prometheus 时发现了什么问题。它将能够通过自然语言处理读取我的文件,理解它,并能够给我一个答案。

ADAM GLICK:本质上,它是你个人和非公开信息的 Google 吗?

JORGE ALARCÓN:希望如此。

ADAM GLICK:你作为发布负责人使用 Kubernetes 所做的工作——这是你日常工作的一部分,还是你在晚上和周末独立于日常工作所做的事情?

JORGE ALARCÓN:两者都是。严格来说,我的日常工作只是继续开发应用程序,构建它需要的东西,维护基础设施等等。当我开始在这家公司工作时——顺便说一句,把我带到这家公司的人也是我在 Data for Democracy 的日子里认识的人——我们开始谈论工作。

我提到我为 Kubernetes 社区做了很多工作,如果我继续做下去是否可以。令我惊讶的是,答案不仅是肯定的,而且是,你可以在你白天工作期间做这件事。至少在目前,我只是保持平衡——我尽量让事情井井有条。

有时我只专注于 Kubernetes。有时我早上做 Kubernetes。然后在下午,我做 Searchable,反之亦然,或者只是来回切换,并尽可能地平衡工作。但作为发布负责人,绝对是很多工作,所以晚上和周末也要工作。

ADAM GLICK:担任发布负责人需要多少时间?

JORGE ALARCÓN:这会有所不同,但如果我必须给出一个估计,至少你必须能够每天投入四个小时的时间。

ADAM GLICK:每天四个小时?

JORGE ALARCÓN:是的,大多数日子都是这样。这会有很大的不同。例如,在发布周期的开始,你不需要投入那么多工作,因为本质上,你只是在等待并帮助人们进行设置,而且人们正在撰写他们的 Kubernetes 增强提案,他们正在实施它,你可以回答一些问题。这相对容易,但在大多数情况下,这四个小时的大部分时间都花在与人们交谈上,只是为了确保,嘿,人们是否真的在撰写他们的增强功能,我们是否拥有我们想要的所有增强功能。这四个小时的大部分时间,都在到处走动,与人们聊天,并确保事情正在完成。而且,如果由于某种原因,有人需要帮助,只需将他们引导到正确的地方以获得答案。

ADAM GLICK:Searchable 从你做这项工作中获得了什么?

JORGE ALARCÓN:实际上,什么都没有。我们正在努力的目标是回馈社区。我的经理/老板/哥们——我告诉他我要叫他我的哥们——我们俩都有开源工作的经验。在某些时候,他还参与了一个我可能会发音错误的开源项目,但它是 Apache 的 Mahout。

他也经历过这些。我们俩都抱着这个普遍的想法,并努力为 Searchable 构建一些对人们有用的东西,同时也构建知识、构建指南、构建对社区有用的应用程序。至少我现在能够做的一件事是成为 Kubernetes 团队的负责人。这是回馈社区的一种方式。我们正在使用 Kubernetes 来运行我们的东西,所以让我们尝试平衡事情的运作方式。

ADAM GLICK:Lachlan Evenson 是 1.16 的发布负责人,也是 我们在第 72 集的嘉宾,他再次回到这个版本担任 荣誉顾问。你从他那里学到了什么?

JORGE ALARCÓN:哦,一切。实际上,这一切都始于 1.16。就像你说的,他是一个了不起的人——他是一个了不起的人。能够和他一起工作,真的是一个机会。在 1.16 期间,我是 CI 信号负责人,Lachie 非常注重实际操作。

他不是那种给你一堆清单然后说去做的人。他实际上会来找你,与你交谈,而且他更多的是与你合作。当我们在 1.16 上一起工作时,我从他那里学到了很多关于 CI 信号的知识。特别是由于我们讨论了所有事情以确保 1.16 准备就绪,我还了解到发布负责人必须知道、能够做到、必须努力才能完成发布的几件事。

现在,在这个版本发布期间,有很多非常有用的信息,也有很多方便的建议和普遍的经验。对于大多数影响很多事情的事情,我们始终保持沟通。比如,我在做这个,你在做那个,相互提供建议。基本上,我们做的每一件事都算得上是代码审查。你做完之后,等待其他人给你评论。这已经成为我们合作关系中很重要的一部分。

ADAM GLICK:你认为这个版本的主题是什么?

JORGE ALARCÓN:我认为主题之一是“完善和润色”。我们正在将很多功能从 alpha 版本升级到 beta 版本,再从 beta 版本升级到稳定版本。我们希望确保用户拥有良好的用户体验。无论是运维人员还是开发人员,都希望尽可能地消除 bug,改进流程。

但另一个非常酷的事情是,我们在 alpha、beta 和稳定版本之间实现了大致相同的分布。我们也在引入许多新功能。因此,除了让 Kubernetes 对所有已经在使用它的用户更加稳定之外,我们还在努力推出新东西,供人们在下一个版本中尝试,并看看未来会如何发展。

ADAM GLICK:你们有发布团队的吉祥物吗?

JORGE ALARCÓN:算是吧。

ADAM GLICK:是谁/是什么?

JORGE ALARCÓN:[笑] 我说“算是吧”,是因为我在徽标中使用了吉祥物,而这个徽标的灵感来自于大型强子对撞机。

ADAM GLICK:哦,太棒了。

JORGE ALARCÓN:作为发布负责人,我真的必须抓住这次机会,使用大型强子对撞机作为吉祥物。

ADAM GLICK:我们之前邀请过一些来自大型强子对撞机的人来节目,我知道他们会听,他们会对此感到非常兴奋。

JORGE ALARCÓN:[笑] 希望他们喜欢这个徽标。

ADAM GLICK:如果你关注这个版本,你个人对这个版本中添加的哪个部分最兴奋?

JORGE ALARCÓN:就像父母不能选择哪个孩子是自己最喜欢的,你真的不能选择一个特定的东西。

ADAM GLICK:我们一直在网上和问题中关注一项名为边车容器的增强功能。你可以标记 Pod 中容器启动的顺序。Tim Hockin 代表许多 SIG Node 贡献者发布了一篇长篇评论,其中引用了关于该功能进展的社会、程序和技术问题——特别是它从 1.18 版本中移出,现在将移至 1.19 版本。你对此有什么看法?

JORGE ALARCÓN:边车增强功能绝对是一个有趣的案例。首先,非常感谢 KEP 的作者 Joseph Irving。也非常感谢 Tim Hockin,他表达了 SIG Node 的批准者和维护者的观点。我想在我们继续之前,先稍微介绍一下背景,在 Kubernetes 社区中,我们有贡献者、审核者和批准者。

贡献者是编写 PR、提交问题、排除问题的人。审核者是专注于项目中一个或多个特定领域的贡献者,然后批准者是项目中一个或多个特定领域的维护者。因此,你可以将批准者视为在存储库或存储库中的某个位置具有写入权限的人。

边车增强功能的问题是,它已经被推迟了多个版本,这是因为 KEP 作者和项目特定部分的批准者之间缺乏合作。值得一提的是——这在最初的讨论中就提出了——这对贡献者和批准者来说都可能会令人沮丧。从贡献者的角度来看,你正在努力做某事。你正在尽力确保它能工作。

为了构建一个将要被人们使用的东西,从批准者的角度来看,而且我认为,对于 Kubernetes 社区中的每个人来说,我们都非常高兴看到这个项目成长。我们希望帮助改进它,我们喜欢新人们进来并致力于新的增强功能、bug 修复等等。

但是,其中一个限制是每天只有这么多小时,我们一次只能做这么多事情。因此,人们会以最有效的方式安排优先级,有些事情就会落后。很多时候,事情落后并不是因为人们不想让它们继续前进,而是因为资源有限,人员有限。

我认为围绕边车增强提案的讨论非常有益,它向我们指出了需要更多标准化指导计划的需求。这是多个 SIG 正在努力的方向。例如,SIG Contribex、SIG Cluster Lifecycle、SIG Release。其想法是标准化某种指导体验,以便我们可以更好地准备新贡献者成为审核者,最终成为批准者。

因为最终,如果我们有更多了解 Kubernetes,甚至 Kubernetes 的某个特定领域的人,我们可以更好地分配负载,并且可以更好地协作处理任何新出现的事情。我认为边车增强功能向我们表明指导是有价值的,我们需要更多这方面的指导。因为无论我们做了多少工作,都会有更多的事情在整个项目中不断涌现。我们拥有更多熟悉 Kubernetes 这些非常复杂领域的人,我们就会变得越好。

ADAM GLICK:由于当前全球的健康状况,是否有讨论过推迟 1.18 版本?

JORGE ALARCÓN:我们考虑过,当时的计划是等待并观察人们的感受。努力确保人们能够舒适地继续工作,所有人都参与新的增强功能,修复测试,或者发布团队的成员确保事情顺利进行。我们希望看到人们感到舒适,他们可以继续做自己的工作。有一段时间,我实际上考虑过直接推迟——我们将给它更多时间,并希望在某个时候,事情会解决的。

但是人们只是继续做他们出色的工作。整个过程中没有延迟,也没有任何障碍。因此,在某个时候,我只是觉得我们还是按照当前的时间表进行,看看情况如何。现在,事情或多或少已经确定了。

ADAM GLICK:分布式团队的惊人力量。

JORGE ALARCÓN:是的,确实如此。

[笑]

ADAM GLICK:Taylor Dolezal 被宣布为 1.19 版本的发布负责人。你知道这个选择是如何做出的,由谁做出的吗?

JORGE ALARCÓN:实际上是我选择了负责人。惯例是,当前发布团队的负责人会观察人员,首先,看看谁有兴趣,在有兴趣的人中,谁可以胜任这份工作,谁对发布团队、整个 Kubernetes 社区足够熟悉,能够真正投入未来(希望是)三个月的时间。

而且,我认为 Taylor 一直是我的团队的一员。所以有发布团队。然后发布团队有多个小组。其中一个小组实际上就是我和我的影子成员。因此,对于这个版本,是 mrbobbytables 和 Taylor。Taylor 自愿接管 1.19,我确信他会做得非常出色。

ADAM GLICK:我也这么认为。你会给 Taylor 什么建议?

JORGE ALARCÓN:尽可能多地进行沟通。通常,如果你已经成为发布的负责人,甚至是发布的影子成员,你或多或少都熟悉很多工作——CI 信号、增强功能、文档等等。很多人,如果他们知道如何做自己的工作,他们可能会告诉自己,是的,我可以做——不用担心。我只是要继续签署这个 PR,调试这个测试,诸如此类的事情。

但是,其中一个有趣的方面是,每当我们实际进行发布时,50% 的工作必须用于实际完成发布。另外 50% 的工作必须用于指导人们,并确保新来者、新成员能够学习他们需要学习的一切,才能完成你的工作,你作为小组或整个团队的负责人。而且,当你看到事情需要发生时,一定要多沟通。

尝试提供机会让其他人来完成这项工作,并尽可能多地与他们沟通,以确保他们正在学习他们需要学习的任何东西。如果你们俩都不知道发生了什么,那么我可以多沟通,这样希望有人会看到你的消息并前来救援。这种情况经常发生。有很多善良的人会出来告诉你事情是如何运作的,帮助你解决它。

ADAM GLICK:如果要总结一下你运行这次发布的经验,你会怎么说?

JORGE ALARCÓN:说实话,这非常有趣,也有点压力。担任发布负责人绝对很棒。你就像坐在 Kubernetes 的中心。

你不仅会看到那些正在工作的人——那些出现问题的东西,以及填写问题并说明哪里出问题的用户等等。你还可以有机会与许多从事非代码相关工作的人一起工作。文档是最明显的事情之一。有很多工作都投入到了沟通、贡献者体验、公共关系中。

与这些人保持联系,基本上每隔一天就与他们交谈,这真的很有趣。这对于成为社区更好的贡献者来说是一次非常好的体验,同时也可以将其中一些知识带回家并应用到其他地方。如果你是软件工程师、项目经理,无论你是什么,你都会惊叹于你可以学到多少东西。

ADAM GLICK:我知道社区喜欢轮换发布负责人。但是,如果给你机会再次担任未来 Kubernetes 版本的发布负责人,你还会做吗?

JORGE ALARCÓN:是的,这是一份有趣的工作。说实话,它可能会很有压力。特别是,正如我提到的,在某些时候,大部分工作都只是与人交谈,而且交谈有时需要比仅仅坐下来思考事情更多的思考和努力。其中一些可能会很有压力。

但这份工作本身绝对是很有趣的。在遥远的未来,如果因为某种原因它再次成为可能,我会考虑一下。但正如你所提到的,我们尝试做的一件事是轮换,因为我可以在其中获得乐趣,这很好。我希望我可以帮助另一个版本发布。但为其他人提供学习机会,我认为比仅仅担任领导本身更重要。


Jorge Alarcón 是 Searchable AI 的站点可靠性工程师,并曾担任 Kubernetes 1.18 发布团队的负责人。

您可以在 Twitter 上通过 @KubernetesPod 找到 Google 的 Kubernetes Podcast,您可以订阅,这样就不会错过任何一集。