KubeSphere 3.3.0 發佈:全面擁抱 GitOps

2022 年 6 月 27 日,KubeSphere 開源社區激動地向大家宣佈,KubeSphere 3.3.0 正式發佈!

CNCF 發佈的 2021 年度調查報告指出,容器和 K8s 的事實地位已經趨於穩固,並慢慢退居“幕後”,類似於無處不在的 Linux,人們甚至都感覺不到它的存在。這要得益於衆多致力於降低用戶使用門檻的 K8s 管理平臺,KubeSphere 便是這其中的佼佼者,它幫助用戶屏蔽了底層 K8s 集羣的複雜性和差異性,提供了可插拔的開放式架構,無縫對接第三方應用,極大地降低了企業用戶的使用門檻。

2021 年 KubeSphere 先後推出了 v3.1v3.2 兩個大版本,帶來了 “邊緣計算”“計量計費”“GPU 資源調度管理” 等衆多令人期待的功能,將 K8s 從雲端擴展至邊緣,並進一步增強了在雲原生 AI 場景的使用體驗。

今天,KubeSphere 3.3.0 帶來了更多令人期待的功能,新增了基於 GitOps 的持續部署方案,進一步優化了 DevOps 的使用體驗。同時還增強了 “多集羣管理、多租戶管理、可觀測性、應用商店、微服務治理、邊緣計算、存儲” 等特性,更進一步完善交互設計,並全面提升了用戶體驗。

並且,v3.3.0 得到了來自青雲科技之外的更多企業與用戶的貢獻和參與,無論是功能開發、功能測試、缺陷報告、需求建議、企業最佳實踐,還是提供 Bug 修復、國際化翻譯、文檔貢獻,這些來自開源社區的貢獻都爲 v3.3.0 的發佈和推廣提供了極大的幫助,我們將在文末予以特別緻謝!

解讀 KubeSphere 3.3.0 重大更新

更易用的 DevOps

KubeSphere DevOps 從 3.3.0 開始,後端已支持獨立部署,並提供了基於 GitOps 的持續部署(Continuous Deployment, CD)方案,引入 Argo CD 作爲 CD 的後端,可以實時統計持續部署的狀態。

以雲原生 FaaS 項目 OpenFunction 爲例,假設您的 KubeSphere 集羣中已經部署了 nginx-ingress 和 knative-serving,可以通過 GitOps 持續部署 OpenFunction 的其他組件。

Jenkins 作爲一款用戶基數極大、生態豐富的 CI 引擎,我們會讓 Jenkins 真正地“扮演”引擎的角色——退入幕後持續爲大家提供穩定的流水線功能。之前 KubeSphere DevOps 通過輪詢的方式來實現 Jenkins 流水線的數據同步,浪費了很多計算資源,本次新增了一個 Jenkins 插件,只要 Jenkins 端有相應的事件發生,就可以通過 Webhook 的形式立即將事件發送到 ks-devops

KubeSphere DevOps 從 3.1.0 開始便內置了兩個常用的流水線模板,幫助 DevOps 工程師提升 CI/CD 流水線的創建與運維效率。但內置的模板內嵌到了前端代碼中,很難被改變。3.3.0 對流水線模板進行了重構,新增多款基於 CRD 的內置流水線模板,支持參數設置,用戶也可以通過 CR 創建多個自定義的模板。

多集羣與多租戶

雲原生技術的爆發倒逼應用的可移植性越來越高,最終會有越來越多的組織選擇跨不同的雲廠商或者在不同的基礎設施上運行和管理多個 K8s 集羣,可以說雲原生的未來就是面向多集羣的應用交付

KubeSphere 爲用戶提供了統一的控制平面,可以將應用程序及其副本分發到位於公有云和本地環境的多個集羣。KubeSphere 還擁有跨多個集羣的豐富可觀測性,包括集中監控、日誌系統、事件和審計日誌等。

之前 KubeSphere 的管理權限是針對所有集羣分配的,無法針對單獨的集羣設置權限。從 v3.3.0 開始,KubeSphere 支持分別爲每個集羣設置集羣成員集羣角色,提供了更細粒度的權限管控機制,進一步完善了 KubeSphere 的多租戶系統。

KubeSphere 通過 CustomResourceDefinition(CRD)來定義集羣,並將每個集羣的信息保存在 CR 中。但 CR 只會保存在 host 集羣中,member 集羣中的應用無法獲取自身所在集羣的信息(比如集羣名稱),部分功能實現起來比較麻煩。比如告警管理系統發送通知時需要在通知中添加集羣的標籤,以標識該通知來自哪個集羣,但無法自動獲取,只能手動設置。

v3.3.0 解決了這個痛點,將集羣名稱添加到了 ConfigMap kubesphere-config 中,因爲每個集羣都會有這個 ConfigMap,所以集羣中的應用可以通過這個 ConfigMap 獲取到自身所在的集羣名稱。

除了以上這些改進之外,還優化了多集羣的管理體驗,比如可以直接在 Console 界面更新每個集羣的 kubeconfig 內容。

而且當 member 集羣 kubeconfig 中的證書即將過期時會即時提醒用戶,用戶收到提示後可以儘快通過上述方法更新集羣的 kubeconfig 內容。

邊緣節點納管

KubeSphere 通過與 KubeEdge 集成,解決了邊緣節點納管、邊緣工作負載調度和邊緣可觀測性等難題,結合 KubeEdge 的邊緣自治功能和 KubeSphere 的多雲與多集羣管理功能,可以實現雲-邊-端一體化管控。

v3.3.0 優化了邊緣節點的管控能力,可以直接在 Console 界面登錄邊緣節點的終端,以便直接在邊緣端進行操作,比如:

  • 下載鏡像,更新邊緣端應用;
  • 在邊緣端更新 EdgeCore 和 Docker;
  • 修改邊緣節點的機器配置;
  • ...

當然,Console 界面不僅可以登錄邊緣節點,也可以登錄普通的節點。

我們還將 KubeEdge 從 v1.7.2 升級到了 v1.9.2,同時移除了 EdgeWatcher 組件,因爲 KubeEdge 已經提供了類似的功能。

增強可觀測性

KubeSphere 提供了豐富的可視化功能,支持從基礎設施到應用的多維度指標監控。此外,KubeSphere 還集成了許多常用的工具,包括多租戶日誌查詢和收集、告警和通知等功能。

v3.3.0 新增了很多監控新特性,支持在租戶級自定義監控中導入 Grafana 模板,添加了容器進程/線程指標,同時還優化了磁盤使用率指標,支持顯示每個磁盤的使用情況。

現在用戶也可以分別設置審計、事件、日誌及 Istio 日誌信息的保留時間。

除此之外,還對已有的監控、日誌、告警等組件進行了升級:

  • Alertmanager: v0.21.0 --> v0.23.0
  • Grafana: 7.4.3 --> 8.3.3
  • kube-state-metrics: v1.9.7 --> v2.3.0
  • node-exporter: v0.18.1 --> v1.3.1
  • Prometheus: v2.26.0 --> v2.34.0
  • prometheus-operator: v0.43.2 --> v0.55.1
  • kube-rbac-proxy: v0.8.0 --> v0.11.0
  • configmap-reload: v0.3.0 --> v0.5.0
  • thanos: v0.18.0 --> v0.25.2
  • kube-events: v0.3.0 --> v0.4.0
  • fluentbit-operator: v0.11.0 --> v0.13.0
  • fluent-bit: v1.8.3 --> v1.8.11

運維友好的存儲管理

持久化存儲是 K8s 系統中提供數據持久化的基礎組件,是實現有狀態服務的重要保證。KubeSphere 從 v3.2.0 開始便在 Console 界面新增了存儲管理功能,支持很多管理員級別的運維操作。v3.3.0 進一步優化了存儲管理功能,管理員可以根據需要爲存儲類型(StorageClass)設置 PVC 自動擴展策略,當用戶的 PVC 剩餘容量不足時,就會按照預設的策略進行擴展。

爲了進一步控制存儲的操作權限,v3.3.0 支持了租戶級別的存儲權限管理,可以爲存儲類型(StorageClass)設置授權規則,限制用戶只能在特定項目和企業空間使用存儲類。

此前 KubeSphere Console 界面不支持對卷快照內容(VolumeSnapshotContent)和卷快照類型(VolumeSnapshotClass)進行管理,這個功能在 KubeSphere 3.3.0 得以實現,現在用戶可以在 Console 界面查看上述兩類資源,並對其進行編輯和刪除操作。

服務暴露優化

目前社區有大量用戶選擇在物理機安裝部署 K8s,並且還有大量客戶是在離線的數據中心或邊緣設備安裝和使用 K8s 或 K3s,導致用戶在私有環境對外暴露 LoadBalancer 服務比較困難。爲了解決這個問題,KubeSphere 社區開源了 OpenELB,爲私有化環境的用戶提供了易用的 EIP 與 IP Pool 管理能力。

v3.3.0 Console 界面默認集成了對 OpenELB的支持,即使是在非公有云環境的 K8s 集羣下,也可以對外暴露 LoadBalancer 服務。

其他更新

  • 支持通過 ClusterConfiguration 對 Istio 進行更豐富的配置;
  • 新增 K8s 審計日誌開啓提示;
  • 支持應用整個配置字典;
  • 支持容器生命週期 hook 設置;
  • 支持流量監控統計時間配置;
  • 優化部分頁面文案描述;
  • 優化了服務拓撲圖詳情展示窗口優化;
  • 修復了刪除項目後項目網關遺留的問題;
  • 優化了 ClusterConfiguration 更新機制,無需重啓 ks-apiserver、ks-controller-manager;
  • 由於政策要求暫時屏蔽了自動生成的 nip.io 路由,下一個版本中將會提供後臺開關。

持續開源開放

藉助於開源社區的力量,KubeSphere 迅速走向全球,目前 KubeSphere 的用戶遍佈全球,覆蓋超過了 100 個國家和地區,下載量近百萬,擁有貢獻者近 300 人,主倉庫在 GitHub 上 Star 數超過 10000,Fork 數超 1500。v3.3.0 Console 除了支持中、英、繁中和西班牙語之外,還支持了更多的語種,進一步拓展了海外市場。

未來 KubeSphere 團隊將繼續保持開源、開放的理念,v3.3.0 帶來的衆多優化也早已在 GitHub 開源,例如 ConsoleOpenELBFluent OperatorKubeKeyKubeEyeNotification ManagerKube-Eventsks-devops,相關的代碼與設計文檔在 GitHub 相關倉庫都可以找到,歡迎大家在 GitHub 給我們 Star + Fork + PR 三連。

安裝升級

KubeSphere 已將 v3.3.0 所有鏡像在國內鏡像倉庫進行了同步與備份,國內用戶下載鏡像的安裝體驗會更加友好。關於最新的 v3.3.0 安裝與升級指南,可參考 KubeSphere 官方文檔

致謝

以下是參與 KubeSphere 3.3.0 代碼、文檔等貢獻的貢獻者 GitHub ID,若此名單有遺漏請您與我們聯繫,排名不分先後。

相較於上個版本,v3.3.0 的貢獻者數量增長了 50%,這也說明參與 KubeSphere 開源貢獻的人越來越多了。新的貢獻者,都將獲得社區的專屬證書,後續我們會在社區統一發放。

社區十分感謝各位貢獻者的參與,也歡迎有越來越多的小夥伴加入此行列,不管是代碼開發、文檔優化,還是網站優化、社區宣傳和技術佈道,KubeSphere 社區的大門永遠向您敞開!

本文由博客一文多發平臺 OpenWrite 發佈!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章