亚马逊AWS官方博客

OpenSource | 骑独角兽:Kubernetes的新手指南

月圆之夜在游泳池里骑独角兽绝非易事,尤其是一个连水都不会的人。但我知道可以倚赖他人的帮助保持漂浮。

Kubernetes 社区也同样热情、乐于助人,非常愿意帮助新手避免在可能性汪洋大海中溺水。做好打湿鞋的准备了吗?阅读!

2017 年 12 月份举行的 KubeCon 大会有超过 4100 人报名参加,是上一次大会的四倍,近 80% 的人是首次出席。而这仅仅是去年 Kubernetes 爆炸性增长的冰山一角。

会上我听到最大的问题之一就是:“我是一个 Kubernetes 新人,希望做点贡献,我该如何开始?”

您可能认为它就是发送 Pull 请求和修复错误,但贡献的途径有千万种,正如我将在下面所讲到,您可以选择参与多少。

关注堆栈:有关 Kubernetes 的许多讨论都在堆栈通道中进行。 项目各个领域都有通道,但作为一名新用户,您可能发现 #kubernetes-novice 和 #kubernetes-users 最为有用。我自己和其他开发者将在每月的 Office Hours 通过 #office-hours 通道现场回答用户的提问。

加入电子邮件列表:电子邮件列表中也会有讨论。请务必确保自己理解每个列表的目的,在正式加入讨论前先潜伏几天是一个比较好的选择。主要列表包括:

  • kubernetes-users,针对一般性 Kubernetes 相关讨论和问答
  • kubernetes-dev,针对搭建 Kubernetes 的开发者以及希望深入了解的有经验用户。

加入 SIG特殊兴趣小组 (SIG) 专注于讨论 Kubernetes 中的某个具体主题领域。SIG-AWS 就针对 Kubernetes 和 AWS 的讨论。如果您希望运行多个 Kubernetes 群集,可以选择 SIG-Multicluster。尝试定义应用程序?SIG-Apps。查看完整的 SIG 列表,这些列表的链接指向会议相关信息(现场录像并可在 YouTube 中观看)等。不要害怕提问:SIG 乐于帮助新手提升经验。

出席社区会议:最重要的定期会议也许是每周一次的 Kubernetes 社区会议,这是获得最新消息的最佳场所。以前会议的记录提供了会议举行的背景。这往往覆盖了高级和专业主题,一般从演示开始,然后是发布和 SIG 进展通报。

提交问题:您在尝试某个功能时,发现它的行为与文档描述不符时该怎么办?您可以在 Kubernetes 中提交一条问题,但在此之前,请搜索已有的问题看是否您所遇到的问题已经存在。github.com/kubernetes 有多个子项目,因此要确保您通过正确的路径提交问题,例如在 kubernetes/kubectl 下提交,而不是在 kubernetes/kubernetes 下提交。(对于 kubernetes/kubernetes 子库,请在此处提交新问题。)为确保您的问题得到及时解决,您还应使用 bot 命令在问题中添加正确的 SIG 标签,最初可能较为难学。

StackOverflow 是提出有关 Kubernetes 问题(经验丰富的 Kubernetes 操作人员或开发者回答问题)的另一个好地方。

Kubernetes 文档 也不错,但它可能总是在不断完善,即使仅仅是纠正拼写错误或澄清某些内容。您也可以在这里提出问题,并且如果您知道如何纠正,还可以发送 Pull 请求

提供样例:我最早对 Kubernetes 的贡献仅仅是演示如何使用 WildFly 和 MySQL 来运行 Java EE 样例。您的首个 PR 可能看似事关重大,因为您需要前述一份贡献者许可协议 (CLA),也许在与工作单位确认后,还需要遵守提交 PR 的流程,然后解决在代码审核阶段反馈的任何意见,然后才能最终看到它的正常运行。坚持不懈!最终必会到达终点。

解决问题:目前 kubernetes/kubernetes 转贴中有超过 4800 条问题。不要忘记还有子项目!不知道从何开始?为此专门有一个求助标签。如要打开 Pull 请求,请从此处开始。

AWS Kubernetes 研讨会:为帮组进一步简化在 AWS 上部署 Kubernetes,我们创建了一个研讨会,演示如何在 AWS 上运行 Kubernetes 群集和部署应用程序。请试一试吧。如果发现有与文档描写不一致的地方,请提交问题。如果知道如何解决问题,还可以发送 PR,帮助提高其他新用户的经验。

聚会交流:您是否已经在使用 Kubernetes?找到了某个对您有效的具体群集配置?知道如何确定现有应用程序的 kubernetes 大小?请考虑在当地的聚会中分享您的经验。全世界有超过一百个 Kubernetes 原生云聚会(目前)。与当地聚会召集人交流,找到发言的切口,不论是 60 分钟的完整演讲还是 10-15 分钟的快速发言。根据主题的不同,您还可以考虑参加当地 Java 用户小组、Docker 聚会、为服务聚会或其他相关聚会。没有当地聚会小组?没问题:创建新的聚会小组

如果您希望在更大型的活动上发言,或者率先获得最新消息和公告,可以选择 KubeCon/CloudNativeCon 会议,这是专注于 Kubernetes 和原生云技术的最大规模会议。会议每年举行两次,分别在北美欧洲中东非洲地区举行(从 2018 年开始,也将在亚太地区举办!)。其他大型的技术会议,例如 AWS re:invent 等,也包含 Kubernetes 相关的主题。

发表博客:如果您喜欢写点东西,何不发表博客以作为演讲的补充或直接代替演讲? 主题可以是您感觉是痛点的任何事情,以及您如何解决它的。(请注意包含架构图或其他示意图。)即使您的问题看似范围较小,其他人也很可能正在寻找这一用例。(而如果您的 Kubernetes 群集在 AWS 上运行,我们希望您发送 PR,将该用例贡献给 AWS Workshop for Kubernetes。)

请注意该代码不是贡献的唯一方式。大型项目的推进涉及许多任务和技能:计划/项目管理、社区管理、营销、编辑加工和技术编写都是必不可少的。如果您不确定如何运用您的具体技能,请咨询我们的贡献者经验老手。

仍有问题?查看 CNCF 编写的 Kubernetes 社区简介和贡献指南。或者查看所有会议的总日历。阅读 Kubernetes 贡献者指南,该指南提供了有关开始贡献的法律要求和社区最佳实践。

一切搞定?您的独角兽翘首以待——骑上独角兽开始试水吧!


我谨感谢下列人员对本博的贡献:

Ihor Dvorteskyi (@idvoretskyi),原生云计算基金会的开发者代表,专注于开放源社区的 Kubernetes 相关工作。他是一名 Kubernetes 项目经理,项目管理特殊兴趣小组的联席负责人,专注于 Kubernetes 作为开放源产品的增强。此外,他还作为多个 Kubernetes 发布的功能负责人,参与 Kubernetes 发布工作。

Guinevere Saenger (@guincodes) – 2016 年,Guinevere Saenger 从应全职职业钢琴师改行从事科技工作。为此,她在竞争激烈的西雅图 Ada 开发者学院取得了一个席位。在接受培训期间,Guinevere 在三星 SDS 的原生云计算团队实习。2017 年 7 月毕业后,她接受了该团队的全职软件工程师岗位,负责 Kraken 等 Kubernetes 部署工具。她是 Kubernetes 贡献者经验兴趣小组的现任会员,推动了完善《Kubernetes 贡献者指南》以为新手澄清内容的工作。Guinevere 在北美 KubeCon 发言,将于 2018 年 3 月在 SCaLE16x 上作专题演讲。

Jorge Castro (@castrojo) 是 Heptio 公司的 Kubernetes 社区经理。如果您需要获得有关如何为 Kubernetes 贡献的帮助,请随时联系他

Arun Gupta

Arun Gupta

Arun Gupta 是 Amazon Web Services 的首席开源技术专家。他在 AWS 主要负责与容器和开源有关的所有事务。他还负责 AWS 内部的 CNCF 战略,积极参与 CNCF 董事和技术会议。他曾在 Sun、Oracle、Red Hat 和 Couchbase 组建和领导开发人员社区,在此方面拥有超过 12 年的经验。他有丰富的演讲经历,在 40 多个国家/地区就各种主题发表过演讲,并且连续四年荣膺 JavaOne Rock Star。Gupta 还在美国创立了 Devoxx4Kids 分会,并继续在儿童中推广技术教育。此外,Gupta 还是一位多产的博客作者并出版过多本书籍。他热爱跑步、喜欢环球旅行。这就是 Gupta,一位 Docker 队长、一个 Java 冠军、一名 JUG 领袖、一位 NetBeans 梦之队成员。您可以访问他的博客 @arungupta,了解更多信息。