KubeSphere v4 開源併發布全新可插拔架構 LuBan

kubesphere發表於2024-10-11

2024 年 10 月 10 日,KubeSphere 開源社群激動地向大家宣佈,KubeSphere v4(開源版)已正式釋出,同時釋出全新可插拔架構 KubeSphere LuBan。

相較於 KubeSphere 之前所有的版本,KubeSphere v4 可以說是有了顛覆性的變化。KubeSphere v4 是基於全新的雲原生可擴充套件開放架構——KubeSphere LuBan 打造的雲原生作業系統,對於 KubeSphere 而言具有非凡的意義。

KubeSphere LuBan

什麼是 KubeSphere LuBan

魯班(LuBan),是中國古代工匠的始祖。作為廣大勞動人民智慧與創造力的象徵,他透過工具提高勞動效率,將勞動者從原始繁重的任務中解放出來,使土木工藝呈現嶄新面貌。KubeSphere 將全新微核心架構(KubeSphere Core)命名為 LuBan,藉此寓意,期待為企業與開發者提供低成本、快速迭代和靈活整合的雲原生產品,並帶來專業、全能和極富創造力的使用與開發體驗。

KubeSphere LuBan,是一個分散式的雲原生可擴充套件開放架構,為擴充套件元件提供一個可熱插拔的微核心。自此,KubeSphere 所有功能元件及第三方元件都會基於 KubeSphere LuBan,以擴充套件元件的方式無縫融入到 KubeSphere 控制檯中,並獨立維護版本,真正實現即插即用的應用級雲原生作業系統。

KubeSphere LuBan 架構設計如下圖所示。

為什麼推出 KubeSphere LuBan

自 2018 年以來,KubeSphere 混合多雲容器管理平臺已釋出過十幾個版本,其中包括三個重大版本。為了滿足使用者需求,KubeSphere 整合了眾多企業級功能,如多租戶管理,多叢集管理,DevOps,GitOps,服務網格,微服務,可觀測(包括監控、告警、日誌、審計、事件、通知等),應用商店,邊緣計算,網路與儲存管理等。

雖然 KubeSphere 的一站式容器解決方案極大地提升了使用者的容器使用體驗,但也帶來了如下挑戰:

  • 發版週期長:在釋出新版本時,需要等待所有元件完成開發、測試並透過整合測試。

  • 響應使用者不及時:由於各元件無法單獨迭代,KubeSphere 釋出後,對社群和使用者元件反饋處理需要等待 KubeSphere 釋出新版本後才能一併交付給使用者,導致響應不夠及時。

  • 程式碼耦合:儘管目前已能實現單獨啟用/禁用特定元件,但這些元件的前後端程式碼仍然耦合在一起,容易互相影響,架構上不夠優雅。

  • 系統資源佔用過多:部分元件預設啟用,對於沒有相關需求的使用者來說,可能會佔用過多的系統資源。

KubeSphere LuBan 的優勢有哪些

  • 外掛式的核心框架:支援獨立開發和部署元件以擴充套件系統的功能。元件可以根據需求進行新增、升級或移除,而不需要修改核心框架的程式碼。

  • 全開放的基礎 UI 元件庫:元件對所有人開放,任何人都可以自由地訪問、使用和擴充套件這些元件。使用者根據自己的需求進行定製和擴充套件,以滿足不同的設計和功能要求。

  • 前後端熱更新、熱修復:開發者可以在系統執行時對前端和後端進行實時更新和修復,提高了開發和運維的效率,同時保證了應用程式的可用性和使用者體驗。

  • 開放性擴充套件中心,生態共建:我們提供一個開放的平臺,鼓勵第三方開發者透過元件向系統新增新的功能或增強現有功能,在系統的框架內進行開發和整合,並將他們的元件與系統進行無縫連線,共同構建一個健康、繁榮的生態系統。

基於 KubeSphere LuBan 可以做什麼

  1. KubeSphere 使用者

KubeSphere 使用者可以自由選擇啟用哪些 KubeSphere 擴充套件元件。同時還能將自己的應用無縫融入到 KubeSphere 控制檯。此外,隨著 KubeSphere 擴充套件元件生態的豐富,使用者可以在 KubeSphere 擴充套件市場中自由選擇更豐富的產品和服務,最終實現容器管理平臺的千人千面的效果。

  1. KubeSphere 維護者

擴充套件機制使得維護者可以更聚焦 KubeSphere 核心功能的開發,並可使得 KubeSphere Core 更加輕量,版本釋出節奏也可以加快。此外,因為擴充套件元件能夠獨立進行迭代,能夠更及時地滿足使用者的需求。

  1. KubeSphere 貢獻者

擴充套件機制的引入使得 KubeSphere Core 及 KubeSphere 其他擴充套件元件變得更加松耦合,開發也更加易於上手。

  1. 雲原生應用開發商(ISV)或其他開源專案

眾多 ISV 或其他開源專案可以低成本將產品或開源專案無縫融入到 KubeSphere 生態系統中。比如 Karmada/KubeEdge 的開發人員可以基於 KubeSphere LuBan 開發獨立的 Karmada/KubeEdge 控制檯。

KubeSphere v4 簡介

KubeSphere v4,是 KubeSphere 團隊打造的全新雲原生作業系統,不僅繼承了之前版本的企業級資源與業務管理、一站式雲原生解決方案等強大功能,還能輕鬆實現應用的上下游聯動、隨時隨地整合各類優質擴充套件元件,並提供無縫融合的業務能力與高度一致的產品體驗。

其中核心部分(KubeSphere Core)僅包含系統執行的必備基礎功能,而將獨立的業務模組分別封裝在各個擴充套件元件(Extensions)中。

新特性

  • 基於全新微核心架構 KubeSphere LuBan 重構
  • 內建 KubeSphere 擴充套件市場
  • 支援透過擴充套件中心統一管理擴充套件元件
  • 支援 UI、API 擴充套件
  • 支援透過 kubeconfig 一鍵匯入 member 叢集
  • 支援 KubeSphere 服務帳戶
  • 支援動態擴充套件 Resource API
  • 支援新增叢集、企業空間、專案到快捷訪問
  • 支援透過容器終端進行檔案上傳和下載
  • 支援適配不同廠商的雲原生閘道器(Kubernetes Ingress API)
  • 支援 API 限流
  • 支援在頁面建立持久卷
  • 支援基於 OCI 的 Helm Chart 倉庫

另外,KubeSphere 4.1.2 增加了預設的擴充套件元件倉庫(見下文)。

同時修復了 KubeSphere 4.1.1 存在的以下問題:

  • 部分擴充套件元件頁面白屏的問題
  • ks-core 解除安裝時部分資源殘留的問題
  • K8s 1.19 環境無法安裝的問題

其他變化請檢視變更說明:

  • https://www.kubesphere.io/zh/docs/v4.1/20-release-notes/release-v411/
  • https://www.kubesphere.io/zh/docs/v4.1/20-release-notes/release-v412/

KubeSphere 擴充套件元件

KubeSphere 擴充套件元件用於擴充套件 KubeSphere 的平臺能力,使用者可在系統執行時動態地安裝、解除安裝、啟用、禁用擴充套件元件。

監控、告警、通知、專案閘道器和叢集閘道器、卷快照、網路隔離等功能,將由擴充套件元件來提供。

目前,我們已經開源了 20 個擴充套件元件,分別是:

  • KubeSphere 網路
  • KubeSphere 應用商店管理
  • KubeSphere 服務網格
  • KubeSphere 儲存
  • KubeSphere 多叢集代理連線
  • KubeSphere 閘道器
  • DevOps
  • 聯邦叢集應用管理
  • OpenSearch 分散式檢索與分析引擎
  • Grafana for WhizardTelemetry
  • Grafana Loki for WhizardTelemetry
  • WhizardTelemetry 資料流水線
  • WhizardTelemetry 平臺服務
  • WhizardTelemetry 告警
  • WhizardTelemetry 事件
  • WhizardTelemetry 日誌
  • WhizardTelemetry 監控
  • WhizardTelemetry 通知
  • Metrics Server
  • Gatekeeper

擴充套件元件倉庫:https://github.com/kubesphere-extensions/ks-extensions/。

安裝試用

特別說明:目前不支援從 3.4.x 版本直接升級到 v4 版本,需要先解除安裝原來的版本,再安裝 v4 版本。

  • 參考文件:https://www.kubesphere.io/zh/docs/v4.1/03-installation-and-upgrade/02-install-kubesphere/02-install-kubernetes-and-kubesphere/

  • 安裝擴充套件元件參考文件:https://www.kubesphere.io/zh/docs/v4.1/06-extension-user-guide/01-install-components-pdf/

從 v4.1.1 升級到 v4.1.2,升級和安裝部署可以使用以下命令:

helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-1.1.2.tgz --debug --wait

詳細文件請參考:https://kubesphere.io/zh/docs/v4.1/02-quickstart/01-install-kubesphere。

參與貢獻

正如前文所說,擴充套件機制的引入使得 KubeSphere Core 及 KubeSphere 其他擴充套件元件變得更加松耦合,開發也更加易於上手。

社群目前正在逐步釋出開源的擴充套件元件,為各位使用者提供更多的功能,讓各位使用者有更多的選擇。同時,社群也非常歡迎各位開發者以及 ISV 參與進來,開發自己的擴充套件元件,共同豐富擴充套件元件生態。

目前,已經有一位參與開源之夏的學生貢獻者張豈明,開發了一款擴充套件元件 Pod Status Analysis Tool,地址:https://github.com/kubesphere-extensions/ks-extensions-contrib/tree/main/pod-analyzer。

  • 貢獻倉庫:https://github.com/kubesphere-extensions/ks-extensions-contrib

  • 開發指南:https://dev-guide.kubesphere.io/extension-dev-guide/zh/

未來計劃與展望

KubeSphere 願景是打造一個以 Kubernetes 為核心的雲原生分散式作業系統,它的架構可以非常方便地使第三方應用與雲原生生態元件進行即插即用(plug-and-play)的整合,支援雲原生應用在多雲與多叢集的統一分發和運維管理。

KubeSphere v4 將正式實現這個願景,真正成為可插拔架構的產品,讓使用者可以選擇自己需要的元件。

後續,我們將開源更多的擴充套件元件,為使用者提供更多的選擇。

後續文章將為大家詳細講解如何安裝部署 KubeSphere v4,如何安裝和使用擴充套件元件以及目前大家在使用中遇到的常見問題解答,敬請關注。
本文由部落格一文多發平臺 OpenWrite 釋出!

相關文章