本文發表於一年多前。舊文章可能包含過時內容。請檢查頁面中的資訊自發布以來是否已變得不正確。

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 頻道與我們聯絡。