關(guān)于全球化大規(guī)?;旌显?Kubernetes Prometheus 監(jiān)控體系標準化及 GitOps 自動化改進方案

背景

現(xiàn)狀

  1. 某司概況:
    1. PaaS/SaaS 公司,業(yè)務(wù)面向全球,包括 東南亞/南亞/中東/歐洲/非洲/美洲/東亞...
    2. 生產(chǎn) k8s 集群數(shù)十套,生產(chǎn)非生產(chǎn) >100 套(多種集群類型,各種公有云/專有云/私有云/數(shù)據(jù)中心...)
    3. 疫情以來,持續(xù)推進成本優(yōu)化。
  2. 某司監(jiān)控概況,由于歷史原因和出于成本考慮:
    1. 基于 原生 Prometheus 深度定制+自研部分 exporter/sd, 沒用使用 kube-prometheus-stack(不兼容,成本會增加)
    2. 監(jiān)控覆蓋:k8s/pod/各類中間件/微服務(wù)/url...
    3. 每個集群一套 Prometheus 監(jiān)控
    4. 監(jiān)控所占用的計算存儲等資源受限
    5. 監(jiān)控部署方式:ansible 安裝監(jiān)控組件及后續(xù)使用 jenkins devops CI/CD 的自動發(fā)布

綜上,監(jiān)控可以稱得上:

  1. 全球化的
  2. 大規(guī)模的
  3. 混合云的
  4. Kubernetes 的
  5. 低成本監(jiān)控

問題

近期因監(jiān)控覆蓋不足(具體為某集群缺少了 url 監(jiān)控部分的配置)導(dǎo)致告警漏報,對此進行了深入復(fù)盤,核心問題可歸納為兩點:

  1. 缺乏唯一可信配置來源,各集群監(jiān)控配置分散,存在版本不一致、規(guī)則遺漏等問題;
  2. 手動操作導(dǎo)致配置漂移,無法實時同步全球集群狀態(tài),故障預(yù)警能力受限。

為避免此類問題再次發(fā)生,規(guī)劃改進如下:

采用 GitOps(Git 作為唯一事實來源)+ Prometheus Operator 為核心的標準化監(jiān)控架構(gòu),具體方案如下:

一、問題根源與改進方向

  1. 當(dāng)前挑戰(zhàn)

    • 碎片化管理:全球數(shù)百套集群的 Prometheus 監(jiān)控配置部分仍依賴人工維護,易出現(xiàn)規(guī)則遺漏、閾值不統(tǒng)一。
    • 手動管理風(fēng)險:手動管理監(jiān)控組件和監(jiān)控配置和閾值,存在過期或誤配置隱患(如近期故障)。
    • 監(jiān)控數(shù)據(jù)噪音:因配置不一致,告警誤報/漏報頻發(fā),影響故障響應(yīng)效率。
  2. 目標方案

    • 唯一事實來源(Single Source of Truth):通過 Git 倉庫統(tǒng)一管理所有監(jiān)控配置(Prometheus 規(guī)則、ServiceMonitor、AlertManager 等),消除人工干預(yù)。
    • GitOps 自動化同步 (reconcile) 與自愈:利用 ArgoCD 等相關(guān) GitOps 專業(yè)工具實現(xiàn)配置實時同步,確保集群狀態(tài)與 Git 聲明一致。
    • 集中式可觀測性:通過 Prometheus Operator 標準化部署,如有必要,后續(xù)可以考慮結(jié)合 Thanos/Cortex/Mimir 實現(xiàn)跨集群監(jiān)控數(shù)據(jù)聚合。

二、技術(shù)實現(xiàn)路徑

  1. GitOps (Git 作為唯一事實來源) 的標準化流程
    • GitOps:將所有監(jiān)控資源(Prometheus CRD、Grafana 儀表盤)存儲在 Git 倉庫,版本控制+Code Review 機制保障變更可追溯。
    • 自動化同步 (reconcile):通過 ArgoCD 等相關(guān) GitOps 專業(yè)工具監(jiān)聽 Git 倉庫變更,自動推送至各集群,避免人工誤操作(這里參考了紅帽 OpenShift GitOps 最佳實踐)。
    • 緊急修復(fù)流程:任何生產(chǎn)變更必須通過 Git 提交,僅允許 Git 倉庫作為修改入口,杜絕“臨時補丁”。
  2. Prometheus Operator 強化能力
    • 統(tǒng)一部署模板:使用 Helm Chart 封裝 Prometheus Stack(AlertManager、BlackBox 等),確保各集群版本與配置一致。
    • 動態(tài)服務(wù)發(fā)現(xiàn):通過 ServiceMonitor 自動識別微服務(wù)端點,避免手動添加 Exporter 導(dǎo)致的遺漏。

三、預(yù)期收益

  1. 降低運維風(fēng)險:配置漂移減少 90%以上,監(jiān)控組件/閾值/配置實現(xiàn)全自動化管理。
  2. 提升故障響應(yīng):通過集中告警視圖與標準化規(guī)則,MTTD(平均故障檢測時間)縮短 50%。
  3. (待定)成本優(yōu)化:避免重復(fù)開發(fā)監(jiān)控組件,資源利用率提升 30%(通過 Prometheus 聯(lián)邦集群優(yōu)化數(shù)據(jù)存儲,如 Thanos/Cortex/Mimir 等)。

四、后續(xù)計劃

  1. 試點推進:計劃先搭建一個臨時環(huán)境,進行一段時間的 PoC 驗證,輸出標準化模板及自動化流水線。
  2. 全球推廣
    1. 監(jiān)控專用管理集群搭建。
    2. 分階段遷移至 GitOps(Git 作為唯一事實來源) + Prometheus Operator 體系,考慮到規(guī)模較大,預(yù)計需要持續(xù)投入。
  3. 培訓(xùn)與協(xié)同:組織團隊內(nèi)部分享會,同步 GitOps(Git 作為唯一事實來源)+ Prometheus Operator 協(xié)作規(guī)范(分支策略、項目結(jié)構(gòu)策略、Review 流程等)。

??? 參考文檔

三人行, 必有我?guī)? 知識共享, 天下為公. 本文由東風(fēng)微鳴技術(shù)博客 EWhisper.cn 編寫.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容