骑上独角兽:Kubernetes新手贡献指南


【编者的话】本文向Kubernetes新手讲解了针对Kubernetes的各种贡献方式,特别指出除了代码以外,还有其它多种形式,鼓励大家以自己擅长的形式参与其中,多多实践。

月圆之夜在游泳池学习骑独角兽是不容易的,特别是对不会游泳的人。但是我知道可以依靠别人帮我浮起来。

Kubernetes社区也是同样的热情和乐于助人,愿意帮助新手避免其淹没在无穷无尽的可能性中。准备好来实践了吗?请看下文。
arun-unicorn-800.jpg

2017年12月的KubeCon会议,有超过4100名注册参与者,是上一期的4倍,其中将近80%的人是首次参加。这也是我们看到的Kubernetes去年爆炸性增长的一个方面。

会议上其中一个最普遍的问题是:我是Kubernetes新手,但也想做贡献。我该如何起步?

你也许觉得这不就是发送pull request并修复bug吗,但正如我下面会提到的,其实有许多贡献的方式,你可以选择几种。

逛逛slack频道:大量关于Kubernetes的讨论发生在slack频道。Kubernetes项目的每个领域都有许多相关的频道,但对于新用户,你可能会发现 #kubernetes novice和#kubernetes users是最有用的。我和其他许多开发者会在每月的Office Hour栏目中报到,在那里我们回答#office hours频道的用户提出的问题。

加入邮件列表:讨论也发生在邮件列表中。确保自己理解每个列表的目的,最好在投入之前先观察几天。主要的列表有:
  • kubernetes users 列表针对通用的Kubernetes相关的讨论及Q&A
  • kubernetes dev 列表针对开发Kubernetes的开发者,以及想要理解底层细节的高级用户。


加入SIGSIG(Special Interest Groups)关注Kubernetes的某些特定主题领域。SIG-AWS讨论Kubernetes和AWS。SIG-Multicluster讨论如何运行多个Kubernetes集群。SIG-Apps讨论如何定义应用。可以看一下所有SIG列表,它链接了会议(录屏并可以在YouTube上看到)等信息。不要害怕提问:SIG欢迎任何有助于提高新手的线上体验的意见。

参加社区会议:最重要的例会应该是每周的Kubernetes社区会议,它是获取最新消息的最佳场所。之前会议的录屏可以看到这些会议是如何运作的。他们趋向于谈论高级以及特定的主题,一般以一个demo开始,然后是release和SIG的状态更新。

提issue:你在尝试Kubernetes的一个新特性,但是发现其行为和文档不匹配?你可能发现了一个问题了,但在你提issue前,记得搜索已有issue,确认是否被提过。github.com/kubernetes项目有多个子项目,因此确保在正确的地方提bug,例如是在kubernetes/kubectl而不是kubernetes/kubernetes项目。(对于kubernetes/kubernetes的子仓库,可以在这里提issue。)为了确保你的issue可以被快速找到,你还应该使用bot命令给issue打上合适的SIG标签,这个过程最开始可能有点困难。

StackOverflow是另一个提问的好地方(或者有一天你成为了一个有经验的Kubernetes用户或者开发者,也可以在这里回答问题)。

Kubernetes文档令人望而生畏,但是它一直在提升,甚至只是修改一个拼写错误或者某个需要被澄清的注释。当然,你也可以在这里提交issue,或者,如果你知道怎么修改,发送pull request

贡献样例:我对Kubernetes的最早的一个贡献是,简单的展示了如何使用Wildfly和MySQL来运行一个Java EE的例子。你的第一个pr可能会难以应对,因为你需要签署Contributor License Agreement(CLA),或许在与你的主管协商后,遵循过程提交pr,然后在最终合入前,查看代码检视中产生的所有评注。坚持住!最终你将成功。

修改issue:当前kubernetes/kubernetes仓库有超过4800个issue。这还不算子仓库的!如何启动修改?Help-wanted标签就是为此设计的。要启动pull request,可以从这里开始。

AWS的Kubernetes演练场:为了使AWS上的Kubernetes部署更容易,我们创建了一个演练场,展示如何在AWS上操作一个Kubernetes集群,以及在集群中部署应用。你可以尝试一下。如果某些文档有误,请提issue。如果你知道如何修复,你甚至可以发送一个pr,以帮助提高其他新用户的体验。

聚会,演讲:你一直在玩Kubernetes?找到了某个解决了你的问题的集群配置?或者知道如何使现有应用Kubernetes化?那么可以考虑在当地的聚会上分享你的经验。全世界有超过100个Kubernetes Cloud Native聚会(截至目前)。和当地的聚会组织者讨论一下,找到一个入口点来一场演讲,不管是一个小时的,还是10到15分钟的快速演讲都可以。根据主题的不同,你甚至还可以考虑去当地的Java用户讨论组,Docker聚会,微服务聚会,或者其它相关的聚会。没有当地的聚会组?没问题:你创一个新的

如果你想在更大的地方演讲,或想成为第一批掌握最新消息的人,KubeCon/CloudNativeCon会议就是关注Kubernetes和云原生技术的最大的会议。每年都会在北美欧洲召开两次(从2018年起,亚太地区也会召开)。其它大的技术会议,比如AWS re:invent 也包含了Kubernetes相关的主题。

博客:如何你喜欢写作,那么还可以考虑一下博客。主题可以是你的某个痛点,然后你是如何解决的。(确保包含某个架构图或者其它的图)即使你的问题看起来很偏,其他人可能就是在找这个场景。(如果你的Kubernetes集群运行在AWS上,我们很欢迎你发送pr,贡献那个用例到AWS Kubernetes演练场。)

值得注意的一点是,代码不是唯一贡献的方式。推动一个大型项目前进包含许多任务和技能:项目管理、社区管理、市场、编辑加工、技术协作,这些都是需要的。如果你不确定如何应用你的特定技能,请询问有贡献经验的人们。

还有别的问题吗?可以参考CNCF的Kubernetes社区概览和贡献指南。或者参考所有会议的整体时间总表Kubernetes贡献指南值得一读,它带你浏览开始贡献需要了解的法律要求和社区最佳实践。

准备好了吗?你的独角兽在等你了,爬上去实践吧!

原文链接:Riding the Unicorn: A Newbie Contributor's Guide to Kubernetes(翻译:池剑锋)

0 个评论

要回复文章请先登录注册