Kubernetes Grafana看板更新啦!

StarsL發表於2024-11-03

K8S Dashboard CN 20240513 StarsL.cn Grafana官方地址:

https://grafana.com/grafana/dashboards/13105

Grafana看板ID: 13105

kubernetes資源全面展示!包含K8S整體資源總覽、微服務資源明細、Pod資源明細及K8S網路頻寬,最佳化重要指標展示。

更新說明

v20240513
  1. 更新了看板的所有Panel支援最新樣式,最佳化展示效能,已相容Grafana10.X版本.
  2. 增加了K8S總體的狀態條展示節點與微服務資源的統計.
  3. 增加了PVC的使用情況,各名稱空間的CPU,記憶體使用曲線圖.
  4. 最佳化了Pod與微服務資源明細表格的展示欄位與視覺效果.
  5. 最佳化了Pod與微服務CPU與記憶體使用量的曲線圖中可以直接展示出該資源的Limit值紅線.
  6. 修復了Pod重啟導致短時間內展示的Pod資源資料不準確的BUG.
  7. 調整了多個圖表,曲線圖的展示效果與描述,最佳化部分指標資料更加精準。
  8. 增加了各個版本的kube-state-metrics國內映象.
  9. 增加了Prometheus on K8S的JOB配置說明.
v20211010
  1. 基於K8S總可用資源的維度,修改了各類資源總可用量的指標,指標更加精準。
  2. 支援kube-state-metrics_v2.x併相容kube-state-metrics_v1.9.x
  3. 所有表格使用了新的表格樣式,並且對各欄位顏色做了處理。
  4. 根據節點、微服務、Pod維度調整了圖表展示效果。
  5. 提供了kube-state-metrics_v1.9.8kube-state-metrics_v2.2.1的部署檔案和國內源。參考【這裡】
v20201209
  1. 使用Filter by name來最佳化了表格展示的欄位。
  2. 增加了關於節點名稱標籤在不同指標中不一致的說明。
v20201208
  1. 調整了資源總覽頁的展示效果。
  2. 增加了更多名稱空間維度的統計資訊。
  3. 總覽頁的節點明細表格更新為grafana7的樣式,增加了各節點資源的使用比例並標記顏色。
  4. 微服務和pod的表格資料與曲線圖分開2個卡片展示,表格中可以直接檢視微服務及對應Pod的明細。
  5. 曲線圖使用獨立的卡片展示,瀏覽所有微服務表格時,不會出現服務過多引起卡頓的情況,建議制定微服務後在檢視曲線圖。
  6. 最佳化了部分圖表的描述。

截圖


整體資源總覽


Pod資源明細

微服務資源明細

kube-state-metrics部署說明:

  • kube-state-metrics部署在ops-monit名稱空間
  • 選擇適合K8S版本的kube-state-metrics,本倉庫的kube-state-metrics映象已經存放在阿里雲.
  • 1.24以下版本的K8S安裝kube-state-metrics_v2.3.0的都沒問題,版本較新的K8S可以安裝新版的kube-state-metrics,參考官方說明.
kubectl create namespace ops-monit
cd kube-state-metrics_vXXX
kubectl apply -f .

適合本看板的Prometheus K8S JOB配置參考

  • 說明: 本配置適合於Prometheus部署在K8S內的場景.
  • 注意: 關於節點名稱的標籤,因為cadvisor是使用instance,而kube-state-metrics是使用node;這樣會導致節點資訊表格中,沒有統一的欄位來連線各個查詢,所以cadvisor的job下需要複製一個node標籤。
    metric_relabel_configs:
    - source_labels: [instance]
      separator: ;
      regex: (.+)
      target_label: node
      replacement: $1
      action: replace
  • 以下是本看板必須的3個JOB配置
  • k8s-kubeletk8s-cadvisor JOB都是各節點的kubelet自帶的指標.
  • kube-state-metrics JOB是安裝的kube-state-metrics的指標.
  - job_name: 'k8s-kubelet'
    scheme: https
    tls_config:
      ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    kubernetes_sd_configs:
    - role: node
    relabel_configs:
    - target_label: __address__
      replacement: kubernetes.default.svc:443
    - source_labels: [__meta_kubernetes_node_name]
      regex: (.+)
      target_label: __metrics_path__
      replacement: /api/v1/nodes/${1}/proxy/metrics

  - job_name: 'k8s-cadvisor'
    scheme: https
    tls_config:
      ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    kubernetes_sd_configs:
    - role: node
    relabel_configs:
    - target_label: __address__
      replacement: kubernetes.default.svc:443
    - source_labels: [__meta_kubernetes_node_name]
      regex: (.+)
      target_label: __metrics_path__
      replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
    metric_relabel_configs:
    - source_labels: [instance]
      separator: ;
      regex: (.+)
      target_label: node
      replacement: $1
      action: replace

  - job_name: kube-state-metrics
    kubernetes_sd_configs:
    - role: endpoints
      namespaces:
        names:
        - ops-monit
    relabel_configs:
    - source_labels: [__meta_kubernetes_service_label_app_kubernetes_io_name]
      regex: kube-state-metrics
      replacement: $1
      action: keep

相關文章