本文已超过一年。较旧的文章可能包含过时的内容。请检查页面中的信息自发布以来是否已变得不正确。
当你加入发布团队时,你们就是一家人:Kubernetes 1.16 版本访谈
很高兴能与 Adam Glick 共同主持每周的 谷歌 Kubernetes 播客。我们每周都会与社区的新老朋友交谈,并向大家介绍云原生新闻。
也很高兴看到 Kubernetes 1.16 的发布团队负责人 Lachlan Evenson 在 KubeCon 上赢得了 CNCF “最佳大使” 奖。我们在 1.16 发布时与 Lachie 进行了交谈,并且如同惯例,我们很高兴与 Kubernetes 博客的读者分享该采访的节选版本。
如果您关注发布日历,您会看到 1.17 即将发布。 在您最喜欢的播客播放器中订阅我们的节目,获取另一篇发布采访!
CRAIG BOX:Lachie,我一直很期待与您聊天。我们第一次见面是在 2017 年柏林 KubeCon 上,当时您在 Deis 工作。让我们从一个大家都在关注的问题开始——您来自英格兰的哪个地方?
LACHLAN EVENSON:监狱部分!你看,我们没有选择去澳大利亚,但我可以说从长远来看我们占了上风。我们得到了那个美丽的国家,所以是的,来自澳大利亚,英格兰南部——最南端。
CRAIG BOX:我们确实有点预设了这个问题。我本周实际上在澳大利亚,我可以告诉您那是一个非常好的地方。我无法想象您为什么要离开。
LACHLAN EVENSON:是的,您采访一个来自澳大利亚的澳大利亚人,而那个澳大利亚人却在旧金山,这似乎很合适。
CRAIG BOX:哦,好的,非常感谢您加入我们并使它成功。这是我们偶尔进行的发布负责人采访系列的第三次。我们在第 10 集中采访了来自 Red Hat 的 Josh 和来自 VMware 的 Tim,并在第 46 集中采访了来自 Google 的 Aaron。我们问了他们三个人,他们在云原生领域的旅程是如何开始的。您在云原生领域的起点是什么?
LACHLAN EVENSON:我记得在 2014 年初,我为一家名为 Lithium Technologies 的公司工作。我们已经使用容器很长一段时间了,我当时的老板向我提出了一个挑战——去寻找一种编排这些容器的方法,因为它们似乎为我们的开发人员速度提供了相当大的价值。
他给了我一周的时间,他说,去看看 Mesos 和 Kubernetes。在这一周结束时,我已经启动并运行了 Kubernetes,并且调度了工作负载。我在 Mesos 方面面临的挑战更大一些,但是 Kubernetes 已经就绪,并且我已经启动并运行了它。从那时起,我实际上被邀请在 2014 年我认为在波特兰举行的 OSCOM 上 Kubernetes 1.0 发布会上发言。
CRAIG BOX:所以,一个真正的早期采用者?
LACHLAN EVENSON:真的,真的很早。我记得,我认为,我从 0.8 开始,当时 CrashLoopBackOff 还不是一回事。我记得自己编写了那个东西。
[笑声]
CRAIG BOX:那时您也在为代码做出贡献吗?
LACHLAN EVENSON:我只是一个用户。那时我是社区的一份子,但从用户的角度来看。我参加了社区会议之类的活动。我记得在社区会议的早期认识了 Sarah Novotny,我还在 SIG Apps 中花了一些时间,因此真正研究了人们如何将工作负载放到 Kubernetes 上——经历了整个过程。
事实证明,我们在 Helm 存在之前构建了一些像 Helm 这样的工具,以方便部署并将应用程序放到 Kubernetes 上。然后,一旦 Helm 存在了,那时我遇到了 Deis 的人,我说,嘿,我认为你们应该摆脱我们内部构建的这段代码,然后去使用 Helm 提供的开源代码。
所以我们进入了那里的 Helm 生态系统,随后我去了 Deis 工作,专门从事专业服务——帮助社区中的人们完成他们的 Kubernetes 之旅。那时我们实际上是在柏林认识的,Craig。你知道,我说容器年就像狗年一样;是 7:1。
CRAIG BOX:对。
LACHLAN EVENSON:七年前,我们大约 50 岁——年轻得多。
CRAIG BOX:听起来像澳大利亚袋鼠与人的比例。
LACHLAN EVENSON:这很像算术,是的。
ADAM GLICK:那时您遇到的最有趣的实现是什么?
LACHLAN EVENSON:没有很多工作负载 API。在 1.0 版本中,甚至没有 Deployments。没有 Ingress。在过去,很多人都在试图在 Kubernetes 之上构建这些工作负载 API,但他们实际上没有任何方法来扩展 Kubernetes 本身。没有第三方资源。没有操作员,没有自定义资源。
很多人实际上在试图弄清楚如何与 Kubernetes API 交互并交付诸如 deployments 之类的内容,因为您当时只有——在那些日子里,您没有副本集。您有一个我们过去称之为 RC 的 ReplicationController。您没有我们今天认为理所当然的很多东西。没有 RBAC。没有我们今天拥有的很多东西。
因此,很高兴看到并参与 Kubernetes 社区从 0.8 到 1.16 的发展,并实际领导了该版本的发布。因此,我看到了很多,并且它一直是我在开源领域冒险的美好一部分。
ADAM GLICK:您也是 Deis 团队的一员,该团队转型并成为 Microsoft 团队的一部分。从小型初创公司到加入云和技术社区的大型参与者,这种转型是什么样的?
LACHLAN EVENSON:太棒了。当我们加入 Microsoft 时,他们没有托管的 Kubernetes 产品,我们被带进来尝试为其播种。我们还在构建更大的部分,实际上是在构建开源工具来帮助社区中的人们进行集成。我们拥有自主权——Brendan Burns 在团队中。我们有 Gabe Monroy。我们确实拥有自上而下的自主权,这种自主权相信并押注于开源,并帮助我们构建工具并给予我们自主权来解决开源中的问题,以及为诸如 Kubernetes 之类的东西做出贡献。
我从 PM 的角度是上游团队的一部分,我们有一群工程师,一群 PM,他们实际上在云原生计算基金会中致力于这些事情,以帮助人们将工作负载集成到诸如 Kubernetes 之类的东西中,并构建和帮助他们的云原生之旅。
CRAIG BOX:有很多新工具和规范等等仍然在以 Deis 品牌从 Microsoft 发布。对于您来说,作为最初从 Deis 加入的人之一,这一定很令人兴奋。
LACHLAN EVENSON:是的,绝对是这样。我们确实采用了 Deis 品牌——现在是 Deis Labs——但是我们真的希望将此作为向社区发出信号的家园,表明我们正在构建东西,希望将它们放入基金会。您可能会看到诸如 CNAB、云原生应用程序包之类的东西。我知道您之前在节目中请过 Ralph 和 Jeremy 谈论 CNAB、SMI - 服务网格接口、生态系统中的其他工具,我们想向社区发出信号,表明我们想将它交给基金会。我们真的希望有一个中立的地方来开始这项新生的工作,但是诸如 Virtual Kubelet 之类的事情也从那里开始,然后进入了云原生计算基金会。
ADAM GLICK:在捐赠的角色家族中,人们更关注 Phippy 而不是实际的“Captain Kube”猫头鹰,这是否引起了任何不安?
LACHLAN EVENSON:是的,所以这很有趣,因为我实际上并没有在 Deis 从事那个项目,但是 Deis 的人,Karen Chu 和 Matt Butcher 实际上创作了“儿童 Kubernetes 指南”,我认为这太棒了。
ADAM GLICK:完全正确。
LACHLAN EVENSON:因为我也可以坐下来读给我的父母听,并告诉他们——这不是给孩子们看的。我喜欢说,这更多的是给我生命中的成年人看的。因此,当我分发这本书时,我会说,带回家给妈妈读一下。读完这本书后,她可能真的会理解您在做什么。
但这真的是一种创造性的方式,因为那是在 Kubernetes 的早期,人们试图理解这些概念——什么是 Pod?什么是 Secret?什么是命名空间?拥有一个有趣的卡通人物集合作为载体——
ADAM GLICK:是的。
LACHLAN EVENSON: Phippy 是一个 PHP 应用程序。还记得它们吗?所以,是的,这完全符合我们看到人们想要容器化并放到 Kubernetes 上的需求。但 Phippy 仍然很可爱。上周有人问我关于发布徽标上的 Kube 队长,所以我们可以多谈谈它。但那里有很多非常可爱的角色,它们说明了 Kubernetes 社区背后的有趣概念。
CRAIG BOX: 1.16 版本刚刚发布。您是该版本的发布团队负责人——恭喜。
LACHLAN EVENSON: 非常感谢。很荣幸能为社区服务。
CRAIG BOX: Kubernetes 1.16 中的主要公告是什么?
LACHLAN EVENSON: 嗯,我认为有几个。自定义资源达到 GA(正式可用)状态。现在,这是 Kubernetes 可扩展性的一个重要里程碑。我知道我们已经谈论它们一段时间了——自定义资源是在 1.7 中引入的,我们一直努力通过该生态系统将 API 提升到 GA 标准。所以它达到了 GA,我认为作为 GA 版本一部分的功能将帮助社区中编写 Operator 的人们。
这里有很多生命周期管理,很多工具可以放入 API 本身。执行严格的依赖性检查——你可以进行类型检查,你可以进行验证,你可以修剪多余的字段,并允许 Operator 和社区可扩展性的生态系统存在于 Kubernetes 之上。
自定义资源达到 GA 的道路漫长,但现在它们在这里真是太棒了,人们可以真正依赖它作为一个 API 来扩展 Kubernetes。所以我想说这是一个重要的头条功能。指标的彻底改革也是如此——我知道这在发布博客中提到过。
指标团队实际上试图标准化 Kubernetes 中的指标,并像所有进入 Kubernetes 的其他增强功能一样对它们进行相同的测试。所以他们真的在尝试确定,什么是标准?我们如何使它们标准化?我们如何测试它们?如何确保它们是可扩展的?所以很高兴看到该团队实际上挺身而出,创建了每个人都可以构建和堆叠的稳定指标。
最后,CSI 也添加了一些其他内容。添加了卷大小调整功能。这是关于容器存储接口的成熟度故事,该接口在几个版本前以 GA 形式引入。但实际上,您已经看到卷提供商实际构建在该接口之上,并且该接口变得更加广泛,以采用诸如“我希望在存储卷上在运行时动态调整大小”之类的内容。对于那些提供商来说,这也是一个很棒的故事。
我认为它们是 1.16 的主要头条功能,但还有很多。Kubernetes 1.16 中有 31 项增强功能。我知道社区中有人问,我们如何决定什么是稳定的?其中 8 个是稳定的,8 个是测试版,其余 15 个功能实际上处于 alpha 阶段。有很多东西从 alpha 进入 beta,从 beta 进入稳定版,所以我认为这对版本来说也是一个很好的进步。
ADAM GLICK: 在您查看了所有这些之后,您个人最喜欢哪一个?
LACHLAN EVENSON: 我可能有两个。一个有点偏颇,但我个人和社区的 双栈 团队一起工作。双栈是指向 pod 和 service 提供 IPv4 和 IPv6 地址的能力。我认为它在社区中之所以有趣,是因为 Kubernetes 正在成为一个将进入新空间的运行时。想想物联网、边缘、云边缘。
当您将 Kubernetes 推入这些新的操作环境时,像寻址这样的事情可能会成为一个问题,您可能想运行成千上万个都需要 IP 地址的 pod。因此,拥有可以同时拥有 v4 和 v6 的相同交叉点,可以适应 v6,我认为 Kubernetes 可能会通过 Kubernetes 之上的物联网工作负载等来加速 v6 的采用。
另一个是 端点切片。端点切片是关于扩展的。您可能知道,service 附加了端点,而端点是实际上与 service 上的标签选择器匹配的所有 pod IP。现在,当您拥有大型集群时,您可以想象附加到该 service 的 pod IP 的数量会增长到数万个。当您更新它时,所有实际监视这些 service 端点的东西都需要获得更新,这是随时间变化的增量变化,随着事物的附加、添加和删除,这个变化会变得相当大,这符合 Kubernetes 的动态特性。
但是端点切片的作用是,您可以将这些端点分成 100 个一组,然后只更新您真正需要关心的那些,这意味着作为扩展因素,我们不需要更新所有监听数万个更新的人。我们只需要更新一个子部分。所以我想说它们是我的两个亮点,是的。
CRAIG BOX: 有没有您个人很期待看到它们发展的早期阶段或 alpha 功能?
LACHLAN EVENSON: 我个人而言,是 临时容器。您在 pod 中运行时可用的工具取决于该 pod 中的组成部分或容器。我们在从头开始构建的容器中看到,以及像来自 Google 的 distroless 这样的工具,您可以在其中构建没有内部任何工具但只有原始编译二进制文件的临时容器,如果您想在运行时进行调试,则很难插入任何东西。
这就是临时容器的用武之地。我实际上可以将一个容器插入到正在运行的 pod 中——我们称之为调试容器——它拥有我调试正在运行的工作负载所需的所有工具,并且我可以在运行时将其插入到 pod 中。所以我认为临时容器是一个非常有趣的功能,它已在 1.16 的 alpha 版本中包含,这为 Kubernetes 社区提供了更好的调试故事。
ADAM GLICK: 您希望哪些错过的功能能够加入该版本?
LACHLAN EVENSON: 我有点失望的是错过的功能是 sidecar 容器。
ADAM GLICK: 是的。
LACHLAN EVENSON: 在服务网格领域,您可能希望对某些容器的启动进行排序,这对于数据平面中的服务网格来说非常具体。我需要 Envoy sidecar 在其他所有东西之前启动,以便它可以连接网络。
反过来也是如此。我需要它最后停止。Sidecar 容器为您提供了有序的启动。我们看到很多人在生态系统中只是将每个节点一个 sidecar 作为 DaemonSet 部署,他们希望它在机器上的所有其他 pod 之前启动。或者如果它在 pod 内,或者在一个 pod 的上下文中,他们希望说该 sidecar 需要在 pod 中的所有其他容器之前停止。因此,为您提供这种有序保证,我认为非常有趣,并且非常热门,尤其是在服务网格生态系统升温的情况下。
CRAIG BOX: 此版本 弃用了一些测试版 API 组,例如 ReplicaSet 和 Deployment。这会破坏那些只是从网上获取示例代码并且不真正理解它的人的部署。这些 API 的 GA 版本是在 1.9 中发布的,所以显然是很久以前的事了。为此已经做了很多准备。但是,对于这些 API 现在在此特定版本中被弃用,我们有哪些考虑和担忧?
LACHLAN EVENSON: 首先我要说,这是我们第一个进行大型 API 弃用的版本,所以成效如何还有待验证。我们确实有 API 弃用策略。正如您提到的,Craig,apps/v1 组自 1.9 以来就存在了。如果您去阅读 API 弃用策略,您可以看到我们有三个版本的公告。大约在 1.12、1.13 时间框架内,我们实际上宣布了此弃用,并且在过去几个版本中,我们一直在重申这一点。
但实际上,我们想要做的是让整个社区使用那些稳定的 API,因为当我们支持所有这些现在已弃用的 API 时,这真的开始成为一个问题,人们正在围绕它们构建工具并尝试构建可靠的工具。因此,这是我们让人们迁移的第一次尝试,我确信它会破坏很多依赖这些东西的工具。但我认为从长远来看,一旦我们使用这些稳定的 API,人们实际上可以保证他们的工具正常工作,而且从长远来看会变得更容易。
因此,我们为宣布此事做了很多工作。大约六个月前,Kubernetes 社区的 Valerie Lancey 发出了一篇博客,内容是,嘿,去使用“kubectl convert”,您可以在其中说,我想将此资源从这个 API 版本转换为那个 API 版本,它实际上使它变得非常容易。但我认为生态系统中会存在一些问题,但我们需要在未来这样做,删除旧的 API 并确保人们使用稳定的 API。
ADAM GLICK: 恭喜 1.16 版本的发布。显然,这是一件大事。对你来说肯定做了很多工作。您能谈谈领导此版本的过程吗?
LACHLAN EVENSON: 版本负责人的工作是监督整个发布过程,并确保版本按照特定计划发布。因此,实际上,这是在管理社区中许多不同的资源和很多人,并确保他们出现并履行他们作为 SIG 主席或社区中其他角色的职责,并确保增强功能处于正确的状态,代码在正确的时间出现,并且一切看起来正常。
很多时候,你需要做的就是确保你知道该联系谁、如何联系他们,并让他们真正出现。但在 1.15 版本周期结束时,当有人问我是否愿意领导时,你必须考虑这会花费多少时间以及日程安排,每周需要投入多少小时来确保这个版本按时发布并达到一定的质量。所以这里面有很多环节。
ADAM GLICK:你是否已经通过影子计划进入了发布管理的道路?
LACHLAN EVENSON:是的,我参加过。我实际上加入了影子计划——也就是发布团队的影子计划。Kubernetes 发布团队的任务是为特定版本配备人员,我在 1.14 版本中加入了,由 Aaron Crickenberger 领导。当时我是一名增强功能影子。我非常想了解 KEP(Kubernetes 增强提案)是如何工作的。我想确保我了解发布团队的这一部分,所以我加入了并在那个版本中提供了帮助。
然后在 1.15 版本中,有人问我是否可以担任首席影子。首席影子是站在领导身边,帮助领导履行职责。所以如果他们不在,如果他们需要人来处理社区的不同部分,我就会出去做。到目前为止,我已经参与了三个版本的发布——1.14、1.15 和 1.16。
CRAIG BOX:感谢您的付出。
LACHLAN EVENSON:不客气,这是我的荣幸。
ADAM GLICK:我想您下一个角色是荣誉发布主管?
LACHLAN EVENSON:(笑)是的。我们还在发布主管团队中设立了一个新角色,叫做荣誉顾问,他们的职责是回顾并解答问题:为什么做出这个决定?我们如何做得更好?之前的版本是什么样的?所以我们确实保持了这种连续性。在 1.17 版本中,我们请回了 1.15 版本的原发布主管 Claire Lawrence 担任荣誉顾问。所以我们确实很重视这一点。
而且我认为,就影子计划而言,发布团队是一个很好的例子,说明了你如何在开源环境下跨版本建立连续性。我们在圣地亚哥 KubeCon 上有一个关于影子计划如何运作的会议。但它的真正目的是激发人们对如何在开源社区中进行指导的热情,并确保在我们所有人都离开团队之后,项目仍然能够继续进行。
ADAM GLICK:说到团队,包括你在内,有 32 人参与了这次发布。协调这个团队是什么感觉?听起来像是一份全职工作。
LACHLAN EVENSON:这确实是一份全职工作。我想说,1.16 版本的发布团队来自五大洲。我们可以说南极洲没有成员,但很遗憾,这次发布没有来自南美洲的成员。但我们有来自澳大利亚、中国、印度、坦桑尼亚的成员。我们的人员分布很广——欧洲、北美。这种分布和连续性非常好,让我们能够在一天内完成工作。
CRAIG BOX:除非你想安排会议。
LACHLAN EVENSON:安排会议非常困难。通常,在发布团队中,我们运行一个对欧洲、西欧和北美友好的会议,然后我们会询问团队是否愿意召开另一次会议。在 1.16 版本中,他们不想召开另一次会议。我们实际上进行了一项调查。但在之前的版本中,我们在早上举行了一次欧盟会议,以便印度甚至中国深夜的成员也能参与进来。
ADAM GLICK:除了你所拥有的令人难以置信的地域多样性之外,关于这个团队还有什么有趣的事实吗?
LACHLAN EVENSON:我非常欣赏发布团队的一点是,我们来自不同的背景、世界各地和不同的公司。有些人是利用自己的时间做这件事,有些人是利用公司的时间做这件事,但我们都为了交付这个版本的共同目标走到了一起。
这个版本我们有五大洲的成员。在 1.17 版本中,令人非常兴奋的是,主要由女性担任领导角色。所以 1.17 版本值得期待——1.17 版本的大部分领导者都是女性,这是一个很好的结果,这都是通过影子计划来培养不同类型的人才。我很高兴看到未来的版本能够受益于 Kubernetes 社区中来自不同多元化群体的人们。
CRAIG BOX:你打算为 1.17 团队留下什么宝贵的经验?
LACHLAN EVENSON:我们一直以来的主题是发布团队中的许多角色都是明确划分的,对吧?我们有这些发布手册,所以对于团队的每个成员,他们都被分配到不同的角色。团队中有七个不同的角色。有领导者。有 CI 信号角色。有错误分类。有沟通。有文档。还有发行说明。还有发布分支管理者,他们实际切割代码并确保代码发布并最终进入所有存储库。
在之前的 1.15 版本中,我们实际上有一个角色叫做测试基础设施角色。感谢 Google 测试基础设施团队的成员所做的出色工作——Katharine Berry 和 Ben Elder 以及其他成员——他们实际上完全自动化了这个角色,我们可以在 1.16 版本中取消它,并且仍然保持同样的效率,并能够发布版本。
我认为很多这些东西都适合自动化,因此,我们可以在未来减少很多工作量。让我们自动化流程中可以自动化的部分,并实际改进流程,以确保参与其中的人员不会反复执行重复性任务。在增强功能的时代,我们可以简化该流程。CI 信号和错误分类,我们也可以在那里进行自动化。我认为 1.16 版本中做得非常好的一件事是发布说明。
我不知道你是否看过 relnotes.k8s.io,但你可以去查看发布说明。现在,基本上,带有注释的 PR 会显示为可搜索和排序的发布说明,所有这些都是通过自动化方式实现的,而之前则需要进行一些 YAML 操作才能确保它能够真正发生并被用户理解。
CRAIG BOX:拜托,Lachie,所有 Kubernetes 都是 YAML 操作。
[笑声]
LACHLAN EVENSON:是的,但很高兴看到一个结果,我们可以真正地使其可搜索,并让人们摆脱诸如确保我们将 YAML 从左到右复制粘贴之类的繁琐事情。
ADAM GLICK:发布之后,你们举行了回顾会议。这次会议的要点是什么?
LACHLAN EVENSON:在每次发布结束时,我们都会举行回顾会议。这是在社区会议期间举行的。这次回顾会议很好。我很高兴看到有这么多积极的方面。这是一个典型的回顾会议,我们会回顾上个版本我们说过要做什么?我们做了吗?哪些方面很棒?我们可以做得更好?以及一些由此产生的行动。
很高兴看到人们对团队中的其他人给予了很多赞美。这非常真诚和深入,表达了“感谢你做了这个,感谢你做了那个”。人们出现并承担了他们在发布团队中的责任,其他人也承认了这一点。这太棒了。
我认为我们想做的一件事是——作为发布过程的一部分,我们有一个代码冻结,这意味着代码基本上停止进入 Kubernetes 的主分支。只有那些旨在用于发布的代码才能被放入其中。但我们实际上并没有阻止测试基础设施发生变化,所以测试基础设施有它自己的生命周期。
有人提出的一个建议是,我们也应该冻结测试基础设施的代码,以确保在尝试稳定代码时,我们不会因为测试基础设施的更改而导致作业失败。我认为我们在这个问题上达成了一些高层次的共识,但在 1.17 及以后的版本中深入了解细节会更好。
ADAM GLICK:我们谈到 sidecar 容器没有包含在此版本中。大多数功能都在发布通道上,并在准备就绪时加入。当这些事情发生时,这对管理发布过程意味着什么?
LACHLAN EVENSON:基本上,我们有一个增强功能冻结,它表示增强功能——支持这些增强功能的 KEP(Kubernetes 增强提案)——因此 sidecar 容器会有一个增强提案。拥有该代码的 SIG(特殊兴趣小组)需要签字确认,说明它处于“可实现”状态。当我们就高层次的细节达成一致后,就可以继续实施。
现在,sidecar 容器的情况实际上就是这样。挑战在于你仍然需要编写代码并实际实现该代码,并且增强功能冻结和代码冻结之间有一个月的差距。如果代码没有出现,或者代码出现后需要进行更多审查,你可能会错过截止日期。
我认为这就是这个特定功能发生的情况。它一直持续到代码冻结,当时代码没有完成,我们基本上需要做出决定——我们是否要授予它一个例外?在这种情况下,他们没有要求例外。他们说,让我们把它移到 1.17 版本。
仍然有很多人员和 SIG 在新版本开始时出现,并提出他们想要发布的所有内容,显然,在整个发布过程中,其中很多内容都会被删除。我想我们最初有大约 60 个增强功能,最终发布的只有 31 个。它们要么在增强功能冻结时被删除,要么在代码冻结时被删除,这在任何发布中都是绝对典型的。
ADAM GLICK:你认为对于可能只延迟了一两周的事情,等待三个月是可接受的吗?或者你希望看到增强功能能够在三个月发布之间的点发布中发布?
LACHLAN EVENSON:是的,社区中一直存在关于如何以不同节奏发布内容的讨论,我认为这是高层次的问题。Tim Hockin 实际上提出,我们是否也应该进行稳定性周期?因为有很多新功能正在加入,并且也有很多稳定性功能正在加入。但如果你看一下,一半的功能是 beta 或 stable,另一半是 alpha,这意味着我们仍然在 alpha 状态下引入更多复杂且未经充分测试的代码——尽管我们不太愿意承认,但这确实会影响系统的稳定性。
有人在讨论 LTS(长期支持版本)。也有人在讨论稳定性版本。我认为现在 Kubernetes 发展势头强劲,并且很多功能都达到了 GA(正式发布)阶段,这些都很有趣。人们会想,“我不需要那么快地接受新事物了。我已经有 GA 版本的 CRD(自定义资源定义)了。我有很多其他 GA 版本的功能。我真的需要以那么快的速度使用它们吗?” 所以我觉得--请保持关注。如果你对这些讨论感兴趣,上游社区正在进行这些讨论。请积极参与并表达你的意见。
CRAIG BOX:这是第一个有自己发布吉祥物的版本吗?
LACHLAN EVENSON:我认为发布吉祥物可以追溯到……我想说是 1.11 版本?如果你回到 1.11 版本,你实际上可以看到不同的吉祥物。我记得 1.11 版本的吉祥物是“霍比特人”。那是比尔博·巴金斯的霍比特屯前门,前面有一个 Kubernetes Helm 的标志,它被称为 11ty-one——
CRAIG BOX:嗯哼。
LACHLAN EVENSON:一个期待已久的发布版本。所以每个版本都有自己的吉祥物,你可以在 SIG Release 的上游仓库中查看它们。
CRAIG BOX:不过,我认为这是第一次将吉祥物写进博客文章中。
LACHLAN EVENSON:我确实认为是这样。我想和发布团队一起找点乐子,所以通常你会看到发布团队有自己的 T 恤。我有一件1.14 版本的 Caternetes,这是 Aaron 设计的,上面有一群猫试图看着 Kubernetes 的标志。
CRAIG BOX:我们和 Aaron 就他对猫的喜爱进行了一次有趣的对话。
LACHLAN EVENSON:[笑] 它成为了一个纪念品,嘿,记住你所做的辛勤工作了吗?它成为了每个参与发布的人的荣誉勋章。我想把它作为发布吉祥物来突出显示。我认为很多人不知道我们在过去几个版本中都有这些吉祥物。但这只是一个小小的乐趣,我想加入我自己的想法,以便团队可以团结在一起。很多乐趣来自于我们在整个发布过程中作为团队的欢笑——以及我对 Olive Garden 的喜爱。
CRAIG BOX:你对 Olive Garden 的喜爱感觉已经成为社区的一个梗了,这可能需要向我们的听众解释一下。对于那些不熟悉美国高级餐厅的人,我们可以从——Olive Garden 到底是什么开始吗?
LACHLAN EVENSON:Olive Garden 是你在美国本土能体验到的最棒的意大利餐厅。我看到大家都在说,他确定吗?我确定。
CRAIG BOX:这可能需要我们的一些意大利裔美国听众做出一些辩解。
ADAM GLICK:是无限量的面包条和沙拉真正吸引你,还是装它们的塑料小船?
LACHLAN EVENSON:我认为这是这三者的结合。你知道,“意大利之旅”你不能错过。免费的面包条太棒了。但 Olive Garden 代表了大型连锁餐厅,以及我成长过程中对这些大型连锁餐厅的童年回忆。你无法选择你的梗。这个梗的由来--我本希望有一个不同的吉祥物。
但我只是碰巧和 Olive Garden 的梗有了联系。我想说,这大概是三四个月前开始的。来自谷歌的 Paris Pittman,也是 Kubernetes 社区的成员,提出了一个问题,你最喜欢的坐下式大型餐厅是什么?当然,我很快就插话说,那肯定是 Olive Garden。
然后大家都开始接受这个梗。现在我的收件箱里塞满了免费的 Olive Garden 礼品券,它已经有了自己的生命力。在这一点上,我只是接受它——以至于我们甚至可能会在圣地亚哥的 Olive Garden 举办 1.16 版本的发布派对,如果它能容纳 10,000 人的话。
ADAM GLICK:当你在那里时,你就是家人?
LACHLAN EVENSON:是的。绝对的,绝对的。我很想用这句话。我认为发布版本的名称是“无限量的面包条,人人有份”。我本想用“当你在这里,你就是家人”,但遗憾的是,这是注册商标。
ADAM GLICK:哎呀。接下来你在社区有什么计划?
LACHLAN EVENSON:我最近一直在关注 Cluster API——所以在声明式方法的基础上构建 Kubernetes 集群。我一直在研究我们可以在 Cluster API 生态系统中做些什么。我也是 SIG PM 的主席,所以也在帮助促进 KEP 流程——确保它继续进行,并继续为社区带来成果。
Lachlan Evenson 是微软的首席项目经理,是一位居住在美国的澳大利亚人,最近担任 Kubernetes 1.16 版本发布团队的负责人。
你可以在 @kubernetespod Twitter 上找到谷歌的 Kubernetes 播客,并且可以订阅,这样你就不会错过任何一集。