目錄
簡介
Heapster是集羣級別的監視和事件數據聚合工具,它原生支持並且適用於各種方式創建的k8s集羣系統,Heapster本身可作爲集羣中的一個pod運行,它通過發現集羣中所有節點實現從每個節點的kubelet內建的cAdvisor獲取性能指標數據,並通過標籤將pod對象及其相關的監控數據進行分級、聚合後推送到可配置的後端存儲系統進行存儲和可視化
InfluxDB是一個開源的時序數據庫,使用GO語言開發,特別適合用於處理和分析資源監控數據這種時序相關數據。而InfluxDB自帶的各種特殊函數如求標準差,隨機取樣數據,統計數據變化比等,使數據統計和實時分析變得十分方便。在我們的容器資源監控系統中,就採用了InfluxDB存儲cadvisor的監控數據
Grafana是一個開源的度量分析和可視化套件,提供了多種分析插件,可以支持多種主流數據庫(InfluxDB、Elasticsearch、Graphite、CloudWatch等)的數據展示
它們之間的組件架構關係如下圖:
部署InfluxDB
- 下載資源清單文件:
wget https://raw.githubusercontent.com/kubernetes-retired/heapster/master/deploy/kube-config/influxdb/influxdb.yaml
- 修改資源清單文件:
vim influxdb.yaml
- 應用資源清單文件:
kubectl apply -f influxdb.yaml
- 查看部署後的資源對象:
kubectl get svc -n kube-system kubectl get pod -n kube-system
- 查看pod輸出的日誌信息:
kubectl logs monitoring-influxdb-8b7d57f5c-h5npx
部署Heapster
- 下載heapster資源清單:
wget https://raw.githubusercontent.com/kubernetes-retired/heapster/master/deploy/kube-config/influxdb/heapster.yaml
- 修改資源清單文件:
vim heapster.yaml
- 應用資源清單文件:
kubectl apply -f heapster.yaml
- 查看部署後的資源:
kubectl get svc -n kube-system kubectl get pod -n kube-system
- 訪問服務:
curl 10.104.249.126:80
說明:能到達服務了,只是沒有這樣一個頁面而已
- 查看influxdb與heapster的pod輸出的日誌信息:
kubectl logs heapster-8b7d57f5c-h5npx -n kube-system
kubectl logs monitoring-influxdb-8b7d57f5c-h5npx -n kube-system
部署Grafana
- 下載grafana資源清單:
wget https://raw.githubusercontent.com/kubernetes-retired/heapster/master/deploy/kube-config/influxdb/grafana.yaml
- 修改資源清單文件:
vim grafana.yaml
- 應用資源清單文件:
kubectl apply -f grafana.yaml
- 查看部署後的資源:
kubectl get svc -n kube-system kubectl get pod -n kube-system
- 訪問服務:
curl 10.99.28.67:80