KubeSphere 宣佈開源 Thanos 的企業級發行版 Whizard

kubesphere發表於2024-08-26

日前,青雲科技宣佈開源 Thanos 的企業級發行版 Whizard,為企業帶來真正高可用、可擴充套件、可儲存與查詢海量監控資料、易運維、安全的 Prometheus 長期儲存方案。

Prometheus 已經成為雲原生監控領域事實上的標準,但 Prometheus 並沒有解決企業使用者對高可用、可擴充套件、可儲存與查詢海量監控資料、易運維等方面的需求。Thanos 作為雲原生社群主流的 Prometheus 長期儲存專案,提供了 Prometheus 高可用、可儲存與查詢海量監控資料等能力,但也存在元件及引數眾多,上手門檻較高;運維及水平擴充套件均需手動配置,比較繁瑣且易出錯;某些元件無水平擴充套件能力;各元件安全配置繁瑣或欠缺等問題。

為了解決上述這些企業級使用者的需求,青雲科技 KubeSphere 可觀測團隊於 2021 年立項開始開發 Thanos 的企業級發行版 Whizard 並於 2022 年釋出了第一版,至今已釋出了 8 個大小版本。自 KubeSphere Enterprise v3.3.1 基於 Whizard 釋出了可對海量 K8s 叢集及邊緣節點進行監控告警的 Whizard 可觀測中心以來,經過 KubeSphere Enterprise v3.4.0,v3.5.0, v4.1.0 等多個企業版本的打磨,Whizard 已日臻成熟,具有很多獨特的功能與亮點。

功能亮點:

  • 雲原生化部署與運維:所有元件均支援以 CRD 的方式定義與維護,更易於配置與運維。包括 Thanos 的 Router, Ingester, Compactor, Store, Query, QueryFrontend, Ruler 等元件以及 Whizard 引入的 Service, Tenant, Storage 等。
  • 基於租戶的自動水平擴充套件機制:基於 CPU 與 Memory 的 HPA 對於穩定性要求更高的企業級有狀態工作負載並不是最好的選擇,為此 Whizard 創造性地引入了基於租戶的工作負載水平伸縮機制。Ingester,Compactor,Ruler 等均支援隨著租戶的建立與刪除進行水平伸縮,保證租戶工作負載穩定執行的同時,提供了租戶級別的水平擴充套件與資源回收機制。
  • 適配 K8s 多叢集管理:為了對 K8s 多叢集監控告警提供更好的支援,Whizard 的維護者開發了 whizard-adapter ,可根據 K8s/KubeSphere 叢集的建立與刪除自動建立或刪除 Whizard 的租戶,進而觸發 Thanos 有狀態工作負載的自動水平伸縮。
  • 規則計算更好的擴充套件性:Thanos 原生的 Ruler 的水平擴充套件性並不好,無法滿足海量 K8s 叢集(租戶)的 Alerting Rules 與 Recording Rules 的計算需求。為此 Whizard 的維護者為每個租戶引入了專屬的 Ruler,其可隨著租戶的生命週期自動建立與刪除;除了租戶專屬的 Ruler, Whizard 的維護者還引入了全域性 Ruler 的分片機制,用於滿足跨海量叢集(租戶)的全域性規則(Alerting rules or Recording Rules)計算需求; 此外 Thanos Ruler 目前尚不支援將計算後的各租戶的 recording rules 分別寫入各自租戶的 Ingester,Whizard 的維護者為此也做了額外的支援。
  • 更細粒度的規則管理:目前社群流行用 PrometheusRule 來管理 Prometheus recording rules 及 alerting rules,這種方式存在的問題是 PrometheusRule 裡存在屬於多個規則組的多條規則,粒度過大,不宜併發編輯與維護。為了解決這個問題,Whizard 維護者引入了更細粒度的 RuleGroup 的 CRD 用於管理屬於一個規則組內的所有規則;此外還引入了 3-tiers 的 RuleGroup 管理機制,RuleGroup 用於管理某一 namespace 下的規則組;ClusterRuleGroup 用於管理某一叢集範圍內的叢集規則組;GlobalRuleGroup 用於管理擴跨多叢集範圍的全域性規則組;在做到更細粒度規則管理的同時,滿足了企業使用者對不同許可權範圍的規則進行單獨管理的需求。
  • 支援物件儲存閘道器 Store 的按時間分片查詢:Thanos 透過將 Prometheus 的資料寫入物件儲存並支援從物件儲存查詢海量的監控資料,如果查詢的時間範圍過大,會導致 Store 佔用資源過多,為止 Whizard 的維護者為 Store 加入了按時間分片查詢的機制,使用者可以根據要查詢的時間段分別建立不同的 Store CRD。
  • 引入 Gateway 及 Agent Proxy 以對資料的寫入與讀取進行更好的控制:客戶端如 Prometheus Agent 或 Prometheus 無需直接與 Gateway 互動,透過 Whizard Agent Proxy 即可代理資料寫入與查詢請求至 Whizard Gateway,Whizard Gateway 進而可根據租戶的許可權放行或拒絕查詢或寫入請求。
  • 支援企業級的安全需求:企業使用者通常對安全性有更高的需求。Whizard 除了支援元件間更方便的配置 tls 之外,還將 Thanos 的 WebUI 透過 Whizard Gateway 暴露出來並支援 Basic Auth 與 OAuth2-Proxy 兩種認證方式,企業使用者可以更安全的訪問 Thanos 的 WebUI.
  • 更方便的 2-Tiers 元件配置:Whizard 支援 Service 與 Comopnents 兩級元件配置,通用的配置可放在全域性的 Servce 裡做統一配置,各租戶的所有元件共用;特殊的定製化配置可放在單獨的 Component 裡做個性化的定製。

開源貢獻:

作為 Thanos 的企業級發行版,Whizard 的維護者也積極參與到了 Thanos 專案的維護中去,多次提交 PRs。

未來展望:

透過 Whizard 的開源,KubeSphere 可觀測團隊希望 KubeSphere 在企業級多叢集監控與告警方面的經驗惠及更多的企業使用者,也希望更多開發者參與共建 Whizard 專案。除此之外,KubeSphere 歷年多個版本累積下來的可觀測能力將逐漸統一在 WhizardTelemetry 可觀測平臺中持續演進,涵蓋監控、告警、通知、日誌、事件、審計、事件告警等多種可觀測訊號(詳見 KubeSphere Enterprise v4.1.0 版本說明)。未來 KubeSphere 可觀測團隊還會對 AI Infra 的可觀測進行更好的支援;結合大模型應用的可觀測支援符合 OpenTelemetry 標準的 Tracing;還計劃在 eBPF 賦能可觀測方面做出積極探索,並可能開源相關專案。

獲取 Whizard:

Whizard 的文件還在完善中,目前可透過 Whizard 的 GitHub 倉庫獲取 Whizard 的安裝及使用方法,也可以透過 KubeSphere 社群獲得更多支援。

欲瞭解更多雲原生產品動態和合作資訊,請訪問 KubeSphere 網站:https://kubesphere.com.cn/。

本文由部落格一文多發平臺 OpenWrite 釋出!

相關文章