本文已發布超過一年。較舊的文章可能包含過時的內容。請檢查頁面中的資訊自發布以來是否已變得不正確。
Kubernetes 儀表板的演進
2020 年 10 月,Kubernetes 儀表板正式滿五歲。作為主要專案維護者,我們幾乎難以相信自我們首次提交專案以來已經過了這麼長的時間。然而,帶著一絲懷舊回顧過去,我們意識到從那時起發生了很多事情。現在是時候用簡短的回顧來慶祝「我們的寶貝」了。
一切的開始
Kubernetes 儀表板專案的最初想法是為 Kubernetes 提供一個 Web 介面。我們希望透過直覺式的 Web UI 反映 kubectl 的功能。使用 UI 的主要好處是能夠快速查看未如預期運作的事物(監控和疑難排解)。此外,Kubernetes 儀表板對於 Kubernetes 生態系統的新使用者來說是一個很好的起點。
Kubernetes 儀表板的首次 提交 是由 Google 的 Filip Grządkowski 於 2015 年 10 月 16 日完成的,距離 Kubernetes 儲存庫的首次提交僅幾個月。我們的首次提交可以追溯到 2015 年 11 月(Sebastian 於 2015 年 11 月 16 日提交;Marcin 於 2015 年 11 月 23 日提交)。從那時起,我們成為了專案的定期貢獻者。在接下來的兩年中,我們與 Google 員工密切合作,最終 сами 成為主要專案維護者。

使用者介面的第一個版本

新使用者介面的原型

目前的使用者介面
如您所見,專案最初的外觀和風格與目前的外觀和風格完全不同。我們多次更改了設計。程式碼本身也發生了同樣的情況。
成長 - 大遷移
在 2018 年初,我們達到了一個 AngularJS 接近生命週期終點的階段,而新的 Angular 版本發布得相當頻繁。我們使用的許多函式庫和模組都遵循了這一趨勢。這迫使我們花費大量時間重寫專案的前端部分,使其能夠與更新的技術一起運作。
遷移帶來了許多好處,例如能夠重構大量程式碼、引入設計模式、降低程式碼複雜性以及受益於新模組。但是,您可以想像遷移的規模是巨大的。幸運的是,社群提供了許多貢獻,幫助我們提供資源支援、新的 Kubernetes 版本支援、i18n 等等。經過許多漫長的日日夜夜,我們終於在 2019 年 7 月發布了 第一個 beta 版本,隨後在 2020 年 4 月發布了 2.0 版本 —— 我們的寶貝長大了。
我們在 2021 年的狀況?
由於資源有限,不幸的是,我們無法為許多不同的 Kubernetes 版本提供廣泛的支援。因此,我們決定始終嘗試支援 Kubernetes 儀表板發布時可用的最新 Kubernetes 版本。最新版本 Dashboard v2.2.0 提供對 Kubernetes v1.20 的支援。
最重要的是,我們在 改進資源支援 方面投入了大量精力。同時,我們確實為大多數 Kubernetes 資源提供支援。此外,Kubernetes 儀表板支援多種語言:英語、德語、法語、日語、韓語、中文(繁體、簡體、香港繁體)。波斯語和俄語本地化目前正在進行中。此外,我們正在努力支援第三方主題和應用程式的總體設計。如您所見,正在進行很多事情。
幸運的是,我們確實有具有領域知識的定期貢獻者在照顧專案、更新 Helm charts、翻譯、Go 模組等等。但與往常一樣,可以有更多人手投入。因此,如果您正在考慮為 Kubernetes 做出貢獻,請記住我們 ;)
接下來是什麼
Kubernetes 儀表板至今已成長和蓬勃發展超過 5 年。它為社群提供了直覺式的 Web UI,從而降低了 Kubernetes 的複雜性,並提高了新社群成員的可訪問性。我們為專案迄今為止取得的成就感到自豪,但這絕不是終點。這些是我們未來的優先事項
- 繼續為新的 Kubernetes 版本提供支援
- 繼續改進對現有資源的支援
- 繼續致力於身份驗證系統的改進
- 重寫 API 以使用 gRPC 和共享的 Informer:這將使我們能夠提高應用程式的效能,但最重要的是,支援來自 Kubernetes 專案的即時更新。這是社群最需要的功能之一。
- 將應用程式拆分為兩個容器,一個容器包含 UI,第二個容器在內部運行 API。
Kubernetes 儀表板的數字
- 首次提交於 2015 年 10 月 16 日完成
- 自 v2 版本發布以來,從 Dockerhub 拉取超過 1 億次
- 支援 8 種語言,接下來 2 種語言正在進行中
- 超過 3360 個已關閉的 PR
- 超過 2260 個已關閉的問題
- 100% 覆蓋率的受支援核心 Kubernetes 資源
- GitHub 上超過 9000 個星標
- 超過 237,000 行程式碼
加入我們
如前所述,我們目前正在尋找更多人來幫助我們進一步開發和發展專案。我們歡迎在多個領域做出貢獻,例如,標記為「需要幫助」的問題。請隨時透過 GitHub 或 Kubernetes Slack 中的 #sig-ui 頻道與我們聯繫。