溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

kubernetes 監(jiān)控方案之:heapster+influxdb+grafana(十八)

發(fā)布時(shí)間:2020-07-07 15:07:41 來源:網(wǎng)絡(luò) 閱讀:2072 作者:wzlinux 欄目:云計(jì)算

heapster 已經(jīng) deprecated 了:https://github.com/kubernetes/heapster ,所以下面的演示主要針對 Kubernetes 1.10 之前的版本,我這里是新版本,所以是收集不到數(shù)據(jù)的。

一、Heapster 介紹

Heapster 是容器集群監(jiān)控和性能分析工具,天然的支持 Kubernetes 和 CoreOS。

Kubernetes 有個(gè)出名的監(jiān)控 agent—cAdvisor。在每個(gè) kubernetes Node 上都會(huì)運(yùn)行 cAdvisor,它會(huì)收集本機(jī)以及容器的監(jiān)控?cái)?shù)據(jù) (cpu,memory,filesystem,network,uptime)。在較新的版本中,K8S 已經(jīng)將 cAdvisor 功能集成到 kubelet 組件中。每個(gè) Node 節(jié)點(diǎn)可以直接進(jìn)行
web 訪問。

Heapster 是一個(gè)收集者,Heapster 可以收集 Node 節(jié)點(diǎn)上的 cAdvisor 數(shù)據(jù),將每個(gè) Node 上的 cAdvisor 的數(shù)據(jù)進(jìn)行匯總,還可以按照 kubernetes 的資源類型來集合資源,比如 Pod、Namespace,可以分別獲取它們的 CPU、內(nèi)存、網(wǎng)絡(luò)和磁盤的 metric。默認(rèn)的 metric 數(shù)據(jù)聚合時(shí)間間隔是1分鐘。還可以把數(shù)據(jù)導(dǎo)入到第三方工具(如 InfluxDB)。

Kubernetes 原生 dashboard 的監(jiān)控圖表信息來自 heapster。在 Horizontal Pod Autoscaling 中也用到了 Heapster,HPA 將 Heapster 作為 Resource Metrics API,向其獲取 metric。

架構(gòu)圖
kubernetes 監(jiān)控方案之:heapster+influxdb+grafana(十八)

kubernetes 監(jiān)控方案之:heapster+influxdb+grafana(十八)

Heapster 首先從 apiserver 獲取集群中所有 Node 的信息,然后通過這些 Node 上的 kubelet 獲取有用數(shù)據(jù),而 kubelet 本身的數(shù)據(jù)則是從 cAdvisor 得到。所有獲取到的數(shù)據(jù)都被推到 Heapster 配置的后端存儲(chǔ)中,并還支持?jǐn)?shù)據(jù)的可視化?,F(xiàn)在后端存儲(chǔ) + 可視化的方法,如InfluxDB + grafana。

二、部署

Heapster 本身是一個(gè) Kubernetes 應(yīng)用,部署方法很簡單,運(yùn)行如下命令:

[root@master ~]# git clone https://github.com/kubernetes/heapster.git
[root@master ~]# kubectl apply -f heapster/deploy/kube-config/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 ~]# kubectl apply -f heapster/deploy/kube-config/rbac/heapster-rbac.yaml
clusterrolebinding.rbac.authorization.k8s.io/heapster created

因?yàn)楸娝苤脑颍行╃R像我們是下載不下來,只能間接的獲取,我們還是在阿里云的倉庫里面找一下。

docker pull registry.cn-hangzhou.aliyuncs.com/k8s_grc_io/heapster-amd64:v1.5.4
docker tag registry.cn-hangzhou.aliyuncs.com/k8s_grc_io/heapster-amd64:v1.5.4 k8s.gcr.io/heapster-amd64:v1.5.4
docker image rm registry.cn-hangzhou.aliyuncs.com/k8s_grc_io/heapster-amd64:v1.5.4

docker pull registry.cn-hangzhou.aliyuncs.com/k8s-kernelsky/heapster-grafana-amd64:v5.0.4
docker tag registry.cn-hangzhou.aliyuncs.com/k8s-kernelsky/heapster-grafana-amd64:v5.0.4 k8s.gcr.io/heapster-grafana-amd64:v5.0.4
docker image rm registry.cn-hangzhou.aliyuncs.com/k8s-kernelsky/heapster-grafana-amd64:v5.0.4

docker pull registry.cn-hangzhou.aliyuncs.com/k8s-images1/heapster-influxdb-amd64:v1.5.2
docker tag registry.cn-hangzhou.aliyuncs.com/k8s-images1/heapster-influxdb-amd64:v1.5.2 k8s.gcr.io/heapster-influxdb-amd64:v1.5.2
docker image rm registry.cn-hangzhou.aliyuncs.com/k8s-images1/heapster-influxdb-amd64:v1.5.2

Heapster 相關(guān)資源如下:

[root@master ~]# kubectl get pod -n kube-system |grep -e heapster -e monitor
heapster-f64999bc-8x7j7                      1/1     Running   0          16m
monitoring-grafana-564f579fd4-jsx2r          1/1     Running   0          16m
monitoring-influxdb-8b7d57f5c-ntnxc          1/1     Running   0          16m
[root@master ~]# kubectl get deploy -n kube-system |grep -e heapster -e monitor
heapster              1/1     1            1           16m
monitoring-grafana    1/1     1            1           16m
monitoring-influxdb   1/1     1            1           16m
[root@master ~]# kubectl get svc -n kube-system |grep -e heapster -e monitor
heapster              ClusterIP   10.101.170.222   <none>        80/TCP          16m
monitoring-grafana    ClusterIP   10.104.60.71     <none>        80/TCP          16m
monitoring-influxdb   ClusterIP   10.104.104.41    <none>        8086/TCP        16m

為便與訪問,可以通過 kubectl editService monitoring-grafana的類型修改為 NodePort

[root@master ~]# kubectl patch svc monitoring-grafana -p '{"spec":{"type":"NodePort"}}' -n kube-system
service/monitoring-grafana patched

目前我們的 Pod heapster,是采集不到數(shù)據(jù)的,因?yàn)橐呀?jīng)被廢棄,大家可以通過下面的命令查看到錯(cuò)誤信息。

kubectl logs heapster-f64999bc-8x7j7 -n kube-system

三、使用

瀏覽器打開 Grafana 的 Web UI:http://MASTER_IP:32314/

Heapster 已經(jīng)預(yù)先配置好了 Grafana 的 DataSource 和 Dashboard。

kubernetes 監(jiān)控方案之:heapster+influxdb+grafana(十八)

Heapster 預(yù)定義的 Dashboard 很直觀也很簡單。如有必要,可以在 Grafana 中定義自己的 Dashboard 滿足特定的業(yè)務(wù)需求。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI