環境說明:node
主機名 | 操做系統版本 |
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集羣部署詳見:Centos7.6部署k8s(v1.14.2)集羣 git
k8s學習資料詳見:基本概念、kubectl命令和資料分享 github
Heapster是Kubernetes原生的集羣監控方案,Kubelet自身就包含了一個名爲cAdvisor的agent,它會收集整個節點和節點上運行的全部單獨容器的資源消耗狀況。Heapster以pod的方式運行在某個節點上,它經過普通的KubernetesService暴露服務,使外部能夠經過一個穩定的IP地址訪問。它從集羣中全部的cAdvisor收集數據,而後經過一個單獨的地址暴露。web
Heapster 將數據按照 Pod 進行分組,將它們存儲到預先配置的 backend 並進行可視化展現。Heapster 當前支持的 backend 有 InfluxDB(經過 Grafana 展現),Google Cloud Monitoring 等。docker
lnfluxDB是一個用於存儲應用指標,以及其餘監控數據的開源的時序數據庫。Grafana是一個擁有着華麗的web控制檯的數據分析和可視化套件,一樣也是開源的,它容許用戶對InfluxDB中存儲的數據進行可視化,同時發現應用程序的資源使用行爲是如何隨時間變化的。數據庫
安裝文件下載:後端
[root@master ~]# git clone https://github.com/kubernetes-retired/heapster.git複製代碼
或者api
[root@master ~]# wget https://github.com/kubernetes-retired/heapster/archive/master.zip
[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複製代碼
注意:每一個節點都需執行以上命令
[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.yaml、influxdb.yaml、heapster.yaml和heapster-rbac.yaml
修改grafana.yaml,port類型爲NodePort,nodePort爲30011,可經過http://NodeIp: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) |
disablecountermetrics | 禁用接收計數器度量以流入數據庫(默認:false) |
concurrency |
併發數(默認:1) |
修改heapster-rbac.yaml,將權限修改成cluster-admi
[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複製代碼
[root@master kube-config]# kubectl get all -n kube-system -o wide |grep -e monitor -e heapster 複製代碼
登錄地址: http://172.27.9.131:30011
url爲http://172.27.9.131:30012
模板下載
下載地址:https://grafana.com/api/dashboards/3649/revisions/1/download 、
https://grafana.com/api/dashboards/3646/revisions/1/download
導入
同理導入kubernetes-node-statistics
[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:heapster-influxdb-grafana
- 歡迎關注個人公衆號:Linux運維實踐,關注雲計算、容器、k8s、大數據等,你要的乾貨都在這裏!
- 若是您對個人專題內容感興趣,也能夠關注個人博客:loong576的博客