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

K8s-Infrastructure 工作组简介

作者Kiran "Rin" Oliver 讲故事者,Kubernetes 上游市场团队

K8s-Infrastructure 工作组简介

欢迎阅读介绍 K8s-Infrastructure 工作组新系列的第一部分!

Kubernetes 于 2014 年成立时,Google 承担了构建和维护项目平稳运行所需基础设施的任务。工具本身是开源的,但用于运行基础设施的 Google Cloud Platform 项目是内部专用的,这阻止了贡献者提供帮助。2018 年 8 月,Google 向 Cloud Native Computing Foundation 提供了 900 万美元的积分用于 Kubernetes 的运营。这背后的意图是,像 Kubernetes 这样的项目应该由社区自己维护和运营,而不是由单个供应商。

一群社区成员积极承担起合作推进此事的任务,他们意识到需要更正式的基础设施。他们组成了一个跨团队工作组,其职责涵盖多个 Kubernetes SIG(架构、贡献者体验、发布和测试)。Aaron Crickenberger 与 Kubernetes 指导委员会合作,促成了工作组的成立,并与长期合作者 Davanum Srinivas 共同起草了章程,到 2019 年,工作组正式成立。

K8s-Infrastructure 工作组解决哪些问题?

该团队承担了管理支持 Kubernetes 项目所需的复杂基础设施的众多移动部件的任务。

这项工作源于需求:他们着手解决的第一个问题是将项目所有基础设施从 Google 拥有的基础设施完整迁移到 Cloud Native Computing Foundation (CNCF)。这样做是为了使项目能够自给自足,无需任何单个供应商的直接协助。具体包括以下方面:

  • 识别 Kubernetes 项目依赖哪些基础设施。
    • 正在运行哪些应用?
    • 它运行在哪里?
    • 它的源代码在哪里?
    • 哪些是定制构建的?
    • 哪些是现成的?
    • 哪些服务相互依赖?
    • 如何进行管理?
  • 记录如何作为社区运行基础设施的指南和 Policy。
    • 我们的访问 Policy 是什么?
    • 我们如何跟踪账单?
    • 我们如何确保隐私和安全?
  • 将基础设施原样迁移到 CNCF。
    • 迁移阻力最小的路径是什么?
  • 改进基础设施的状态以实现可持续性。
    • 从人工运行脚本转向更自动化的 GitOps 模型(一切皆 YAML!)
    • 支持希望开发新基础设施的社区成员
  • 记录工作进展、更好地定义目标和完成度指标。

K8s-Infrastructure 面临的挑战是文档

工作组试图解决的最关键问题是该项目完全由志愿者驱动。这导致贡献者、主席和其他参与项目的人员很快就日程排满。因此,文档和组织等某些领域常常缺乏信息,并且进展缓慢,未能达到工作组的预期。

一些正在迁移的基础设施已经有一段时间没有更新了,其原始作者或直接负责人员也已不再参与 Kubernetes 工作。虽然从代码能够长时间未经触动运行的角度来看,这是一件好事,但从尝试迁移的角度来看,这使得很难确定如何操作这些组件,以及如何有效地将这些基础设施部分迁移到它们应该在的位置。

文档的缺乏正由工作组成员 Bart Smykla 直接解决,但显然需要其他人来支持。如果你正在寻找一种参与并学习基础设施的方式,你可以成为工作组的新贡献者!

庆祝工作组的一些成就

该团队在过去几个月里取得了一些非常值得庆祝的进展。

  • K8s-Infrastructure 工作组发布了一个自动计费报告,他们在每次会议开始时都会作为小组进行审阅。
  • k8s.io 和 kubernetes.io 的 DNS 也完全由社区拥有,社区成员可以提交 Issue 来管理记录。
  • 容器镜像仓库 registry.k8s.io 也完全由社区拥有,可供所有 Kubernetes 子项目使用。注:容器镜像仓库已更改为 registry.k8s.io。更新于 2022 年 8 月 25 日。
  • 负责将 k8s.io/kubernetes/staging 仓库发布到其各自的顶级仓库(例如:kubernetes/api)的 Kubernetes publishing-bot 运行在社区拥有的集群上。
  • 用于为 Kubernetes Artifacts 提供匿名访问 GCS Bucket 的 gcsweb.k8s.io 服务运行在社区拥有的集群上。
  • 还有一个自动化流程来发布我们的所有容器镜像。这包括一套由 Kubernetes 社区管理的、文档齐全的基础设施,并带有自动化的权限配置流程。

这些只是 K8s Infrastructure 工作组目前正在进行的其中一些工作。

如果你有兴趣参与,请务必加入 #wg-K8s-infra Slack 频道。会议时长 60 分钟,每隔一周周三太平洋时间上午 8:30 / UTC 时间 16:30 举行。

加入进来帮助完善文档,并在此了解支持 Kubernetes 社区的卓越基础设施。