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

Kubernetes Dashboard 的演进

2020年10月,Kubernetes Dashboard 正式发布五周年。作为主要项目维护者,我们很难相信距离我们第一次提交代码已经过去了这么长时间。然而,带着些许怀旧回顾过去,我们意识到自那时以来发生了很多事情。现在是时候通过简短回顾来庆祝“我们的孩子”了。

一切的开始

Kubernetes Dashboard 项目最初的设想是为 Kubernetes 提供一个网页界面。我们希望通过直观的网页 UI 来反映 kubectl 的功能。使用 UI 的主要好处是能够快速发现不符合预期的情况(监控和故障排除)。此外,Kubernetes Dashboard 是 Kubernetes 生态系统新用户的绝佳起点。

Filip Grządkowski (Google) 于2015年10月16日向 Kubernetes Dashboard 提交了第一个提交,距离 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 版本支持、国际化等等。经过许多漫长的日夜,我们最终于2019年7月发布了第一个测试版,随后于2020年4月发布了2.0版本——我们的孩子长大了。

我们2021年的现状如何?

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

除此之外,我们投入了大量精力来改进资源支持。同时,我们确实支持大多数 Kubernetes 资源。此外,Kubernetes Dashboard 支持多种语言:英语、德语、法语、日语、韩语、中文(繁体、简体、香港繁体)。波斯语和俄语本地化正在进行中。此外,我们正在努力支持第三方主题和应用程序的整体设计。如您所见,很多事情都在进行中。

幸运的是,我们有具有领域知识的定期贡献者负责项目,更新 Helm Chart、翻译、Go 模块等等。但与往常一样,可以有更多的帮手。所以,如果您正在考虑为 Kubernetes 做出贡献,请记住我们 ;)

接下来

Kubernetes Dashboard 至今已发展和繁荣了5年多。它为社区提供了一个直观的 Web UI,从而降低了 Kubernetes 的复杂性,并提高了新社区成员的访问性。我们为该项目迄今取得的成就感到自豪,但这远未结束。以下是我们未来的优先事项:

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

Kubernetes Dashboard 数据一览

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

加入我们

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