本文发表于一年多前。旧文章可能包含过时内容。请检查页面中的信息自发布以来是否已变得不正确。
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 工程师密切合作,最终自己也成为了项目的主要维护者。

第一个用户界面版本

新用户界面的原型

当前的用户界面
如您所见,项目最初的外观和感觉与当前版本完全不同。我们已经多次更改了设计。代码本身也是如此。
成长——大迁移
在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 频道与我们联系。