原文參考: https://i4t.com/4152.html
參考:https://blog.csdn.net/mailjoin/article/details/81389700
插件鏈接:https://grafana.com/grafana/plugins/grafana-kubernetes-app
備注:--query.max-samples=50000000 要設置為50000000,否則前端頁面會有報錯信息。
grafana k8s插件用於集群中的Prometheus部署。收集的指標包括高級別群集和節點統計信息以及較低級別的容器和容器統計信息。使用高級指標進行提醒,使用低級指標進行故障排除。
強大的Grafana k8s 插件
Grafana
Prometheus 持久化安裝
在早期的版本中 Kubernetes 提供了 heapster、influxDB、grafana 的組合來監控系統,所以我們可以在 Dashboard 中看到 heapster 提供的一些圖表信息,在后續的版本中會陸續移除掉 heapster,現在更加流行的監控工具是 prometheus,prometheus 是 Google 內部監控報警系統的開源版本,是 Google SRE 思想在其內部不斷完善的產物,它的存在是為了更快和高效的發現問題,快速的接入速度,簡單靈活的配置都很好的解決了這一切,而且是已經畢業的 CNCF 項目。
Dashboard的時間需要修改改一下,改成UTC並且+10小時
之前我們說過grafana監控K8s,當時使用的模板,自己進行修改的值。grafana有一個專門針對Kubernetes集群監控的插件
效果圖

Grafana Kubernetes應用程序允許您監控Kubernetes集群的性能。它包括4個儀表板,集群,節點,Pod /容器和部署。它允許自動部署所需的Prometheus導出器和默認的scrape配置,以用於集群中的Prometheus部署。收集的指標包括高級別群集和節點統計信息以及較低級別的容器和容器統計信息。使用高級指標進行提醒,使用低級指標進行故障排除。
# 官方文檔grafana-kubernetes-app插件說明 要求 目前只支持普羅米修斯 對於出口商的自動部署,則需要Kubernetes 1.6或更高版本。 Grafana 5.0.0+ 特征 該應用程序使用Kubernetes標記來過濾pod指標。Kubernetes集群往往有很多pod和很多pod指標。Pod / Container儀表板利用pod標簽,因此您可以輕松找到相關的pod或pod。 輕松安裝導出器,無論是從Grafana單擊部署還是使用kubectl手動部署它們的詳細說明(也非常簡單!) Heapster中不可用的群集級別度量標准,如CPU容量與CPU使用率。 群集指標 Pod容量/用法 內存容量/使用情況 CPU容量/使用率 磁盤容量/使用情況 節點,窗格和容器概述 節點度量標准 中央處理器 內存可用 每個CPU加載 讀取IOPS 寫IOPS %的Util 網絡流量/秒 網絡數據包/秒 網絡錯誤/秒 Pod / Container度量標准 內存使用情況 網絡流量 CPU使用率 讀取IOPS 寫IOPS
我們可以在grafana 面包上的插件找到

這里有很多grafana提供的插件可以給我們使用

這里還可以選擇版本

插件安裝
如果想要安裝這個插件需要進行到Pod里面,或者將插件上傳到pod /var/lib/grafana/plugins
# 首先要找到Pod [root@abcdocker ~]# kubectl get pod -n kube-system |grep grafana grafana-77b79bfc58-c47pd 1/1 Running 0 22h grafana-chown-qsctd 0/1 Completed 0 23h # 進入Pod [root@abcdocker ~]# kubectl exec -it --namespace=kube-system grafana-77b79bfc58-c47pd bash # 使用grafana-cli下載插件 grafana-cli plugins install grafana-kubernetes-app
步驟截圖

由於需要重啟生效,我們這里直接將Pod刪除
[root@abcdocker ~]# kubectl get pod -n kube-system |grep grafana grafana-77b79bfc58-c47pd 1/1 Running 0 23h grafana-chown-qsctd 0/1 Completed 0 23h [root@abcdocker ~]# [root@abcdocker ~]# [root@abcdocker ~]# kubectl delete pod -n kube-system grafana-77b79bfc58-c47pd pod "grafana-77b79bfc58-c47pd" deleted # -n后面是命名空間,在后面是pod名稱,要根據當前Pod的名稱進行刪除
當我們看到Pod啟動成功后,我們這里繼續訪問grafana就可以

找到我們的插件

右手可以看到插件的版本和插件的說明

點擊Enable之后,出現以下狀態說明正常

這時候我們點擊左邊的k8s小圖表,點擊創建集群

接下來就是配置我們的集群

簡單說明一下
Name 集群名稱(自定義) URL Kubernetes Apiserver地址 因為apiserver是使用443端口,還需要開啟https,並獲取Key Datasource 選擇數據源 (之前創建prometheus數據源)
接下來我們需要查看api-server的信息
[root@abcdocker ~]# cat /root/.kube/config
certificate-authority-data = CA Cert 對應
server = https://10.4.82.141:8443 (這里是apiserver地址,我這里用的是vip,根據你們自己的環境配置)
client-certificate-data = Client Cert
client-key-data = Client Key


這里需要說明一下,config文件里面是使用base64編譯過后的,所以我們填寫的時候是需要使用base64解碼

cat /root/.kube/config |grep certificate-authority-data echo "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMxakNDQWI2Z0F0......"|base64 -d

我的環境配置如下

然后我們點擊Save
如果沒有提示證書錯誤,提示找不到這個元數據,那么請等一會
有報錯會有紅色的嘆�號
解決不了可以到https://i4t.com/bubble進行提問,賬號免注冊直接qq登陸


Dashboard的時間需要修改改一下,改成UTC並且+10小時

最后效果圖如下

效果圖修改好之后,我們記得curl +s或者點擊保存按鈕
