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