通过 KEP 了解 Kubernetes

在Meetup和KubeCon的演讲中经常会提到KEP这个词。首先我们来讲一下KEP是什么,然后再介绍一下如何使用它。
KEP 是什么意思?
KEP 是 Kubernetes Enhancement Proposal 的缩写。顾名思义,它是针对 Kubernetes 的新功能提案,详细定义了从提出新功能到可行性/Alpha/Beta/GA 的流程。此外,这些 KEP 在 kubernetes/enhancements 仓库中进行管理。
还有一个提供页面以在社区中搜索KEP的选项。
https://www.kubernetes.dev/resources/keps/
引领的动机
为了明确变更和进展,保持质量,并明确之前未统一的alpha/beta/GA条件,KEP被引入。
目前的 Kubernetes 社区由 30 个 SIG1、10 个 WG2 和 2 个 UG3 组成。(仅 Kubernetes 主要贡献者人数就有 2,369 人!)
在过去,关于新功能的讨论往往通过每个小组的邮件列表、视频会议或面对面交流进行。然而,随着项目规模的扩大,SIG项目经理和发布经理很难全面了解整体情况,这就会带来问题。
出于这个原因,我们引入了一个能够在看到一个PR或者一个问题时就能够对其进行概述并确定优先级的KEP。
请阅读KEP-1以了解更详细的内容。这是将KEP本身定义为KEP的文档。
在什么情况下会很方便?
我也经常查看KEP来了解Kubernetes。(最近,由于越来越多的变更日志和问题参考链接,我不得不查看它们…)尤其是以下情况下特别方便。
为了了解新功能的动向,关注kubernetes/enhancements的Issue。
了解一个功能引入的动机。
了解一个功能从Alpha版本到GA版本的进度。
从代码阅读中发现的难以理解的地方,追踪到相关的KEP。
由於進行中的項目尚未關閉,因此通過查看Issue可以了解情況。您可以查看keps目錄以了解已添加的功能。此外,有關KEP引入之前的討論或整體架構,請參閱kubernetes/community – contributors/design-propsals。
顺便提一句,我最近关注的是Sidecar Containers。原打算在v1.17版本中进行alpha发布,但现在推迟到了v1.18版本。所以最早在2020年3月生效,预计将在2020年初夏正式启用。一旦启用,除了主应用程序外,还可以标记Sidecar,这样在Knative中我们就可以解决与哪个容器进行代理的问题。期待这个进展能够帮助解决一些问题。
脚注
1 特殊兴趣小组(SIG)是为了推动特定领域(例如API/存储/网络)的专业化开发而设立的小组。SIG内部还可以进一步分为多个子项目。
2个工作小组(WG)是为了讨论跨SIG主题的临时性小组。
3个用户群体(UG)是为Kubernetes用户关联的长期信息交流需求而设立的群体(并非负责特定的Kubernetes代码)。