本文發表於一年多前。舊文章可能包含過時內容。請檢查頁面中的資訊自發布以來是否已變得不正確。
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 頻道與我們聯絡。