插件簡介
云原生監控插件(kube-prometheus-stack)通過使用Prometheus-operator和Prometheus,提供簡單易用的端到端Kubernetes集群監控能力。
使用kube-prometheus-stack可將監控數據與容器智能分析對接,在容器智能分析控制臺查看監控數據,配置告警等。
開源社區地址:
約束與限制
在默認配置下,插件中的kube-state-metrics組件不采集Kubernetes資源的所有的labels和annotation。如需采集,您需要手動在啟動參數中開啟采集開關,并同時檢查名稱為kube-state-metrics的ServiceMonitor中采集白名單是否添加相應指標,詳情請參見采集Pod所有labels和annotations。
安裝插件
步驟 1 登錄CCE控制臺,單擊集群名稱進入集群,在左側導航欄中選擇“插件管理”,在右側找到 kube-prometheus-stack ,單擊“安裝”。
步驟 2 在安裝插件頁面,選擇插件規格,并配置相關參數。
- 開啟智能分析 :默認不開啟。開啟后需選擇智能分析工作區,在容器智能分析控制臺查看監控數據,配置告警等。
- 對接第三方 :將普羅數據上報至第三方監控系統,需填寫第三方監控系統的地址和Token,并選擇是否跳過證書認證。
- 普羅高可用 :高可用會在集群中將Prometheus-server、Prometheus-operator、thanos-query、custom-metrics-apiserver、alertmanager組件按多實例方式部署。
- 安裝grafana :通過grafana 可視化瀏覽普羅監控數據。grafana 會默認創建大小為 5 GiB 的存儲卷,卸載插件時 grafana 的 存儲卷不隨插件被刪除 。首次登錄默認用戶名與密碼均為admin,登錄后會立即讓您修改密碼。
- 采集周期 :采集監控數據的周期。
- 數據保留期 :監控數據保留的時長。
- 存儲 :選擇用于存儲監控數據的磁盤類型和大小。
- 調度策略 :可單獨配置插件各個組件的節點親和性和污點容忍能力。可以配置多個調度策略,不配置親和節點鍵和容忍節點污點鍵則默認不開啟對應的調度策略。
- 作用范圍:可選擇調度策略生效的插件實例,默認對全部實例生效。當指定組件實例名稱時,將覆蓋全部實例所配置的調度策略。
- 親和節點標簽鍵:填寫節點標簽鍵,為插件實例設置節點親和性。
- 親和節點標簽值:填寫節點標簽值,為插件實例設置節點親和性。
- 容忍節點污點鍵:目前僅支持污點鍵級別的污點容忍策略,組件可以調度到擁有該污點鍵的節點。
步驟 3 完成以上配置后,單擊“安裝”。
配置自定義指標
新版本的kube-prometheus-stack插件不再提供自定義配置的指標,即user-adapter-config配置項(歷史版本插件中該配置項的名稱為adapter-config)中不再配置指標采集規則,請您自行添加。關于采集規則配置詳情請參見。如您從老版本插件升級至新版,則原有的該配置會被繼承,不會丟失。
步驟 1 登錄CCE控制臺,單擊集群名稱進入集群,在左側導航欄中選擇“配置項與密鑰”。
步驟 2 切換至“monitoring”命名空間,在“配置項”頁簽找到user-adapter-config配置項(歷史版本插件中該配置項的名稱為adapter-config),并單擊“更新”。


步驟 3 在“配置數據”中單擊config.yaml對應的“編輯”按鈕,在rules字段下添加自定義指標采集規則。修改完成后單擊“確定”保存配置。
如果您需要增加多個采集規則,可在rules字段下添加多個配置,關于采集規則配置詳情請參見。
自定義采集規則示例如下:
rules:
- seriesQuery: '{__name__=~"^container_.*",container!="POD",namespace!="",pod!=""}'
resources:
overrides:
namespace:
resource: namespace
pod:
resource: pod
name:
matches: "^container_(.*)_seconds_total$"
metricsQuery: 'sum(rate(<<.Series>>{<<.LabelMatchers>>,container!="POD"}[2m])) by (<<.GroupBy>>)'


步驟 4 重新部署monitoring命名空間下的custom-metrics-apiserver工作負載。


組件說明
安裝kube-prometheus-stack插件創建的Kubernetes資源,全部都創建在monitoring命名空間下。
有狀態負載:
- prometheus-server
- alertmanager-alertmanager
無狀態負載:
- thanos-query
- event-exporter
- custom-metrics-apiserver
- grafana
- kube-state-metric
- prometheus-operator
訪問grafana
如果在安裝插件時安裝了grafana,可以通過名為grafana的Service訪問,grafana Service類型為節點訪問,如果是從外網訪問,可以給節點綁定EIP,通過節點端口訪問。
如下圖,訪問地址為//{{節點IP}}:30433


采集Pod所有labels和annotations
步驟 1 登錄CCE控制臺,單擊集群名稱進入集群,在左側導航欄中選擇“工作負載”。
步驟 2 切換至“monitoring”命名空間,在“無狀態負載”頁簽找到kube-state-metrics負載,并單擊“升級”。
步驟 3 在容器配置的“生命周期”中,編輯啟動命令。


在原有的kube-state-metrics的啟動參數最后添加:
--metric-labels-allowlist=pods=[*],nodes=[node,failure-
domain.beta.kubernetes.io/zone,topology.kubernetes.io/zone]
如需采集annotations時,則在啟動參數中以相同方法添加參數:
--metric-annotations-allowlist=pods=[*],nodes=[node,failure-
domain.beta.kubernetes.io/zone,topology.kubernetes.io/zone]
注意編輯啟動命令時,請勿修改其他原有的啟動參數,否則可能導致組件異常。
步驟 4 kube-state-metrics將開始采集Pod和node的labels/annotations指標,查詢kube_pod_labels/kube_pod_annotations是否在普羅的采集任務中。
kubectl get servicemonitor kube-state-metrics -nmonitoring -oyaml | kube_pod_labels
更多kube-state-metrics的啟動參數請參見。
版本記錄
表 CCE插件版本記錄
插件版本 支持的集群版本 社區版本(僅1.17及以上版本集群支持) 3.6.6 /v1.(19|21|23|25).*/ 3.5.1 /v1.(19|21|23).*/ 3.5.0 /v1.(19|21|23).*/