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

Kubernetes Dashboard 的演变

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

一切是如何开始的

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

Kubernetes Dashboard 的第一个提交是由 Google 的 Filip Grządkowski 在 2015 年 10 月 16 日完成的——距离 Kubernetes 仓库的最初提交仅几个月。我们的最初提交可以追溯到 2015 年 11 月(Sebastian 在 2015 年 11 月 16 日提交Marcin 在 2015 年 11 月 23 日提交)。从那时起,我们就成为了项目的常驻贡献者。在接下来的两年里,我们与 Googler 们密切合作,最终自己也成为了主要项目维护者。

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 Dashboard 发布时可用的最新 Kubernetes 版本。最新的版本Dashboard v2.2.0支持 Kubernetes v1.20。

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

幸运的是,我们确实有一些具有领域知识的常驻贡献者,他们在负责项目,更新 Helm Charts、翻译、Go 模块等等。但一如既往,我们可以有更多的人手。所以如果你正在考虑为 Kubernetes 做贡献,请记住我们 ;)

未来展望

Kubernetes Dashboard 至今已成长和发展了五年多。它为社区提供了一个直观的 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 频道与我们联系。