k8s實踐(十一):heapster+influxdb+grafana

daxuesheng發表於2021-09-09

環境說明:

主機名 作業系統版本 ip docker version kubelet version 配置 備註
master Centos 7.6.1810 172.27.9.131 Docker 18.09.6 V1.14.2 2C2G master主機
node01 Centos 7.6.1810 172.27.9.135 Docker 18.09.6 V1.14.2 2C2G node節點
node02 Centos 7.6.1810 172.27.9.136 Docker 18.09.6 V1.14.2 2C2G node節點

 

k8s叢集部署詳見:

k8s學習資料詳見:

 

一、簡介

1.heapster簡介

Heapster是Kubernetes原生的叢集監控方案,Kubelet自身就包含了一個名為cAdvisor的agent,它會收集整個節點和節點上執行的所有單獨容器的資源消耗情況。Heapster以pod的方式執行在某個節點上,它透過普通的KubernetesService暴露服務,使外部可以透過一個穩定的IP地址訪問。它從叢集中所有的cAdvisor收集資料,然後透過一個單獨的地址暴露。

圖片描述

Heapster 將資料按照 Pod 進行分組,將它們儲存到預先配置的 backend 並進行視覺化展示。Heapster 當前支援的 backend 有 InfluxDB(透過 Grafana 展示),Google Cloud Monitoring 等。

圖片描述

2.lnfluxDB和Grafana 簡介

lnfluxDB是一個用於儲存應用指標,以及其他監控資料的開源的時序資料庫。Grafana是一個擁有著華麗的web控制檯的資料分析和視覺化套件,同樣也是開源的,它允許使用者對InfluxDB中儲存的資料進行視覺化,同時發現應用程式的資源使用行為是如何隨時間變化的。

二、heapster安裝

1.安裝檔案和映象下載

安裝檔案下載:

[root@master ~]# git clone 

或者

[root@master ~]# wget 
[root@master ~]# unzip master.zip 

兩種方式都可以下載安裝檔案,本文采取第二種方式

映象下載及打標籤

[root@node02 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-grafana-amd64:v5.0.4
[root@node02 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-influxdb-amd64:v1.5.2
[root@node02 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-amd64:v1.5.4

[root@node02 ~]# docker image tag registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-amd64:v1.5.4 k8s.gcr.io/heapster-amd64:v1.5.4 
[root@node02 ~]# docker image tag registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-influxdb-amd64:v1.5.2 k8s.gcr.io/heapster-influxdb-amd64:v1.5.2
[root@node02 ~]# docker image tag registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-grafana-amd64:v5.0.4 k8s.gcr.io/heapster-grafana-amd64:v5.0.4

[root@node02 ~]# docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-amd64:v1.5.4 registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-influxdb-amd64:v1.5.2 registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-grafana-amd64:v5.0.4

注意每個節點都需執行以上命令

2.安裝檔案修改

[root@master ~]# cd heapster-master/deploy/kube-config/
[root@master kube-config]# pwd
/root/heapster-master/deploy/kube-config
[root@master kube-config]# ll
總用量 0
drwxr-xr-x 2 root root  27 11月 30 2018 google
drwxr-xr-x 2 root root  68 10月 22 15:00 influxdb
drwxr-xr-x 2 root root  32 10月 22 15:02 rbac
drwxr-xr-x 2 root root  38 11月 30 2018 standalone
drwxr-xr-x 2 root root 170 11月 30 2018 standalone-test
drwxr-xr-x 2 root root 145 11月 30 2018 standalone-with-apiserver
[root@master kube-config]# cd influxdb/
[root@master influxdb]# ll
總用量 12
-rw-r--r-- 1 root root 2294 10月 22 14:51 grafana.yaml
-rw-r--r-- 1 root root 1162 10月 22 15:00 heapster.yaml
-rw-r--r-- 1 root root  997 10月 22 14:51 influxdb.yaml
[root@master influxdb]# cd ../rbac/
[root@master rbac]# ll
總用量 4
-rw-r--r-- 1 root root 263 10月 22 15:02 heapster-rbac.yaml

分別修改檔案grafana.yamlinfluxdb.yamlheapster.yamlheapster-rbac.yaml

圖片描述

修改grafana.yaml,port型別為NodePort,nodePort為30011,可透過方式訪問

圖片描述

修改influxdb.yaml,port型別為NodePort,nodePort為30012,grafana配置資料來源會用到

圖片描述

修改heapster.yaml中的source和sink引數

source: 指定資料獲取源

source引數 說明
inClusterConfig 在與heapster的名稱空間關聯的服務帳戶中使用kube config(預設值:true)
kubeletPort 指定kubelet的使用埠,預設10255
kubeletHttps 是否使用https去連線kubelets(預設:false)
insecure 是否使用安全證書(預設:false)
auth 安全認證
useServiceAccount 是否使用K8S的安全令牌(預設:false)

sink: 指定後端資料儲存

sink引數 說明
user InfluxDB使用者,預設root
pw InfluxDB密碼,預設root
db 資料庫名,預設k8s
retention 預設infloxDB保留策略的持續時間,預設值0,表示無限
secure 安全連線到InfluxDB(預設:false)
insecuressl 忽略SSL證書有效性(預設值:false)
withfields 使用InfluxDB fields(預設:false)
cluster_name 不同cubernete叢集的叢集名稱(預設:default)
disable_counter_metrics 禁用接收計數器度量以流入資料庫(預設:false)
concurrency 併發數(預設:1)

圖片描述

修改heapster-rbac.yaml,將許可權修改為cluster-admi

3.執行安裝

[root@master kube-config]# pwd
/root/heapster-master/deploy/kube-config
[root@master kube-config]# kubectl apply -f influxdb/
deployment.extensions/monitoring-grafana created
service/monitoring-grafana created
serviceaccount/heapster created
deployment.extensions/heapster created
service/heapster created
deployment.extensions/monitoring-influxdb created
service/monitoring-influxdb created
[root@master kube-config]# kubectl apply -f rbac/heapster-rbac.yaml 
clusterrolebinding.rbac.authorization.k8s.io/heapster created

4.資源檢視

[root@master kube-config]# kubectl get all -n kube-system -o wide |grep -e monitor -e heapster    

圖片描述

三、Grafana配置

1.登入grafana

登陸地址:

圖片描述

2.配置DataSource

圖片描述

圖片描述

圖片描述

url為

3.匯入模板

模板下載

下載地址: 、

匯入

圖片描述

圖片描述

圖片描述

同理匯入kubernetes-node-statistics

四、檢視Grafana

圖片描述

圖片描述

五、資源刪除

[root@master ~]# kubectl delete -n kube-system  ClusterRoleBinding heapster               [root@master ~]# kubectl get all -n kube-system -o wide |grep -e monitor -e heapster |awk '{print $1}'|xargs kubectl delete  -n kube-system
[root@master ~]# rm -rf heapster-master master.zip 

圖片描述

本文所有配置檔案已上傳github:

  • 如果您對我的專題內容感興趣,也可以關注我的部落格:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4692/viewspace-2824192/,如需轉載,請註明出處,否則將追究法律責任。

相關文章