域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)
日前,青云科技宣布開源 Thanos 的企業(yè)級(jí)發(fā)行版 Whizard,為企業(yè)帶來(lái)真正高可用、可擴(kuò)展、可存儲(chǔ)與查詢海量監(jiān)控?cái)?shù)據(jù)、易運(yùn)維、安全的 Prometheus 長(zhǎng)期存儲(chǔ)方案。
Prometheus 已經(jīng)成為云原生監(jiān)控領(lǐng)域事實(shí)上的標(biāo)準(zhǔn),但 Prometheus 并沒(méi)有解決企業(yè)用戶對(duì)高可用、可擴(kuò)展、可存儲(chǔ)與查詢海量監(jiān)控?cái)?shù)據(jù)、易運(yùn)維等方面的需求。
Thanos 作為云原生社區(qū)主流的 Prometheus 長(zhǎng)期存儲(chǔ)項(xiàng)目,提供了 Prometheus 高可用、可存儲(chǔ)與查詢海量監(jiān)控?cái)?shù)據(jù)等能力,但也存在組件及參數(shù)眾多,上手門檻較高;運(yùn)維及水平擴(kuò)展均需手動(dòng)配置,比較繁瑣且易出錯(cuò);某些組件無(wú)水平擴(kuò)展能力;各組件安全配置繁瑣或欠缺等問(wèn)題。
為了解決上述這些企業(yè)級(jí)用戶的需求,青云科技(qingcloud.com) KubeSphere 可觀測(cè)團(tuán)隊(duì)于 2021 年立項(xiàng)開始開發(fā) Thanos 的企業(yè)級(jí)發(fā)行版 Whizard 并于 2022 年發(fā)布了第一版,至今已發(fā)布了 8 個(gè)大小版本。自 KubeSphere Enterprise v3.3.1 基于 Whizard 發(fā)布了可對(duì)海量 K8s 集群及邊緣節(jié)點(diǎn)進(jìn)行監(jiān)控告警的 Whizard 可觀測(cè)中心以來(lái),經(jīng)過(guò) KubeSphere Enterprise v3.4.0,v3.5.0, v4.1.0 等多個(gè)企業(yè)版本的打磨,Whizard 已日臻成熟,具有很多獨(dú)特的功能與亮點(diǎn)。
功能亮點(diǎn):
· 云原生化部署與運(yùn)維:所有組件均支持以 CRD 的方式定義與維護(hù),更易于配置與運(yùn)維。包括 Thanos 的 Router, Ingester, Compactor, Store, Query, QueryFrontend, Ruler 等組件以及 Whizard 引入的 Service, Tenant, Storage 等。
· 基于租戶的自動(dòng)水平擴(kuò)展機(jī)制:基于 CPU 與 Memory 的 HPA 對(duì)于穩(wěn)定性要求更高的企業(yè)級(jí)有狀態(tài)工作負(fù)載并不是最好的選擇,為此 Whizard 創(chuàng)造性地引入了基于租戶的工作負(fù)載水平伸縮機(jī)制。Ingester,Compactor,Ruler 等均支持隨著租戶的創(chuàng)建與刪除進(jìn)行水平伸縮,保證租戶工作負(fù)載穩(wěn)定運(yùn)行的同時(shí),提供了租戶級(jí)別的水平擴(kuò)展與資源回收機(jī)制。
· 適配 K8s 多集群管理:為了對(duì) K8s 多集群監(jiān)控告警提供更好的支持,Whizard 的維護(hù)者開發(fā)了 whizard-adapter ,可根據(jù) K8s/KubeSphere 集群的創(chuàng)建與刪除自動(dòng)創(chuàng)建或刪除 Whizard 的租戶,進(jìn)而觸發(fā) Thanos 有狀態(tài)工作負(fù)載的自動(dòng)水平伸縮。
· 規(guī)則計(jì)算更好的擴(kuò)展性:Thanos 原生的 Ruler 的水平擴(kuò)展性并不好,無(wú)法滿足海量 K8s 集群(租戶)的 Alerting Rules 與 Recording Rules 的計(jì)算需求。為此 Whizard 的維護(hù)者為每個(gè)租戶引入了專屬的 Ruler,其可隨著租戶的生命周期自動(dòng)創(chuàng)建與刪除;除了租戶專屬的 Ruler, Whizard 的維護(hù)者還引入了全局 Ruler 的分片機(jī)制,用于滿足跨海量集群(租戶)的全局規(guī)則(Alerting rules or Recording Rules)計(jì)算需求; 此外 Thanos Ruler 目前尚不支持將計(jì)算后的各租戶的 recording rules 分別寫入各自租戶的 Ingester,Whizard 的維護(hù)者為此也做了額外的支持。
· 更細(xì)粒度的規(guī)則管理:目前社區(qū)流行用 PrometheusRule 來(lái)管理 Prometheus recording rules 及 alerting rules,這種方式存在的問(wèn)題是 PrometheusRule 里存在屬于多個(gè)規(guī)則組的多條規(guī)則,粒度過(guò)大,不宜并發(fā)編輯與維護(hù)。為了解決這個(gè)問(wèn)題,Whizard 維護(hù)者引入了更細(xì)粒度的 RuleGroup 的 CRD 用于管理屬于一個(gè)規(guī)則組內(nèi)的所有規(guī)則;此外還引入了 3-tiers 的 RuleGroup 管理機(jī)制,RuleGroup 用于管理某一 namespace 下的規(guī)則組;ClusterRuleGroup 用于管理某一集群范圍內(nèi)的集群規(guī)則組;GlobalRuleGroup 用于管理擴(kuò)跨多集群范圍的全局規(guī)則組;在做到更細(xì)粒度規(guī)則管理的同時(shí),滿足了企業(yè)用戶對(duì)不同權(quán)限范圍的規(guī)則進(jìn)行單獨(dú)管理的需求。
· 支持對(duì)象存儲(chǔ)網(wǎng)關(guān) Store 的按時(shí)間分片查詢:Thanos 通過(guò)將 Prometheus 的數(shù)據(jù)寫入對(duì)象存儲(chǔ)并支持從對(duì)象存儲(chǔ)查詢海量的監(jiān)控?cái)?shù)據(jù),如果查詢的時(shí)間范圍過(guò)大,會(huì)導(dǎo)致 Store 占用資源過(guò)多,為止 Whizard 的維護(hù)者為 Store 加入了按時(shí)間分片查詢的機(jī)制,用戶可以根據(jù)要查詢的時(shí)間段分別創(chuàng)建不同的 Store CRD。
· 引入 Gateway 及 Agent Proxy 以對(duì)數(shù)據(jù)的寫入與讀取進(jìn)行更好的控制:客戶端如 Prometheus Agent 或 Prometheus 無(wú)需直接與 Gateway 交互,通過(guò) Whizard Agent Proxy 即可代理數(shù)據(jù)寫入與查詢請(qǐng)求至 Whizard Gateway,Whizard Gateway 進(jìn)而可根據(jù)租戶的權(quán)限放行或拒絕查詢或?qū)懭胝?qǐng)求。
· 支持企業(yè)級(jí)的安全需求:企業(yè)用戶通常對(duì)安全性有更高的需求。Whizard 除了支持組件間更方便的配置 tls 之外,還將 Thanos 的 WebUI 通過(guò) Whizard Gateway 暴露出來(lái)并支持 Basic Auth 與 OAuth2-Proxy 兩種認(rèn)證方式,企業(yè)用戶可以更安全的訪問(wèn) Thanos 的 WebUI。
· 更方便的 2-Tiers 組件配置:Whizard 支持 Service 與 Comopnents 兩級(jí)組件配置,通用的配置可放在全局的 Servce 里做統(tǒng)一配置,各租戶的所有組件共用;特殊的定制化配置可放在單獨(dú)的 Component 里做個(gè)性化的定制。
申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!