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

Kubernetes 仪表板的演变

2020 年 10 月,Kubernetes 仪表盘正式满五岁。作为主要项目维护者,我们几乎不敢相信自我们首次提交项目以来已经过了这么长时间。然而,带着一丝怀旧回顾过去,我们意识到自那时起发生了很多事情。现在是时候用一个简短的回顾来庆祝“我们的孩子”了。

一切是如何开始的

Kubernetes 仪表盘项目背后的最初想法是为 Kubernetes 提供一个 Web 界面。我们希望通过直观的 Web UI 反映 kubectl 的功能。使用 UI 的主要好处是能够快速查看未按预期工作的内容(监控和故障排除)。此外,Kubernetes 仪表盘对于 Kubernetes 生态系统的新用户来说是一个很好的起点。

Kubernetes 仪表盘的第一个 提交 是由 Google 的 Filip Grządkowski 于 2015 年 10 月 16 日完成的 – 距离 Kubernetes 存储库的初始提交仅几个月。我们最初的提交可以追溯到 2015 年 11 月(Sebastian 于 2015 年 11 月 16 日提交Marcin 于 2015 年 11 月 23 日提交)。从那时起,我们成为了该项目的定期贡献者。在接下来的两年里,我们与 Google 员工密切合作,最终成为项目的主要维护者。

The First Version of the User Interface

用户界面的第一个版本

Prototype of the New User Interface

新用户界面的原型

The Current User Interface

当前用户界面

如你所见,该项目的最初外观和感觉与当前完全不同。我们多次更改了设计。代码本身也发生了同样的情况。

成长 - 大迁移

2018 年初,我们达到了一个临界点,AngularJS 越来越接近其生命周期的终点,而新的 Angular 版本发布得相当频繁。我们正在使用的许多库和模块也遵循了这一趋势。这迫使我们花费大量时间重写项目的前端部分,使其与较新的技术一起工作。

迁移带来了许多好处,例如能够重构大量代码、引入设计模式、降低代码复杂性以及从新模块中获益。然而,你可以想象迁移的规模是巨大的。幸运的是,社区提供了许多贡献,帮助我们提供了资源支持、新的 Kubernetes 版本支持、i18n 等。经过漫长的日日夜夜,我们最终在 2019 年 7 月发布了 第一个 beta 版本,随后在 2020 年 4 月发布了 2.0 版本——我们的孩子已经长大了。

我们在 2021 年的现状如何?

由于资源有限,不幸的是,我们无法为许多不同的 Kubernetes 版本提供广泛的支持。因此,我们决定始终尝试支持在 Kubernetes 仪表盘发布时可用的最新 Kubernetes 版本。最新版本 仪表盘 v2.2.0 为 Kubernetes v1.20 提供支持。

最重要的是,我们在 改进资源支持 方面投入了大量精力。同时,我们确实为大多数 Kubernetes 资源提供支持。此外,Kubernetes 仪表盘支持多种语言:英语、德语、法语、日语、韩语、中文(繁体、简体、香港繁体)。波斯语和俄语本地化目前正在进行中。此外,我们正在努力支持第三方主题和应用程序的整体设计。如你所见,正在发生很多事情。

幸运的是,我们有具有领域知识的定期贡献者负责该项目,更新 Helm 图表、翻译、Go 模块等。但与往常一样,可以有更多的人参与其中。因此,如果你正在考虑为 Kubernetes 做出贡献,请记住我们 ;)

下一步是什么

Kubernetes 仪表盘已经成长和蓬勃发展了 5 年多。它为社区提供了一个直观的 Web UI,从而降低了 Kubernetes 的复杂性,并提高了新社区成员的可访问性。我们为该项目迄今为止取得的成就感到自豪,但这绝不是终点。以下是我们未来的优先事项

  • 继续为新的 Kubernetes 版本提供支持
  • 继续改进对现有资源的支持
  • 继续致力于身份验证系统改进
  • 重写 API 以使用 gRPC 和共享的 informers:这将使我们能够提高应用程序的性能,但最重要的是,支持来自 Kubernetes 项目的实时更新。这是社区中最需要的功能之一。
  • 将应用程序拆分为两个容器,一个容器运行 UI,第二个容器在内部运行 API。

Kubernetes 仪表盘的数据

  • 初始提交于 2015 年 10 月 16 日完成
  • 自 v2 版本以来,从 Dockerhub 拉取超过 1 亿次
  • 支持 8 种语言,另外 2 种正在进行中
  • 超过 3360 个已关闭的 PR
  • 超过 2260 个已关闭的问题
  • 100% 覆盖支持的核心 Kubernetes 资源
  • GitHub 上超过 9000 个星
  • 超过 237,000 行代码

加入我们

如前所述,我们目前正在寻找更多人来帮助我们进一步开发和发展该项目。我们欢迎在多个领域做出贡献,即,带有“help wanted”标签的问题。请随时通过 GitHub 或 Kubernetes Slack 中的 #sig-ui 频道与我们联系。