您好,登錄后才能下訂單哦!
heapster 已經 deprecated 了:https://github.com/kubernetes/heapster ,所以下面的演示主要針對 Kubernetes 1.10 之前的版本,我這里是新版本,所以是收集不到數據的。
Heapster 是容器集群監控和性能分析工具,天然的支持 Kubernetes 和 CoreOS。
Kubernetes 有個出名的監控 agent—cAdvisor。在每個 kubernetes Node 上都會運行 cAdvisor,它會收集本機以及容器的監控數據 (cpu,memory,filesystem,network,uptime)。在較新的版本中,K8S 已經將 cAdvisor 功能集成到 kubelet 組件中。每個 Node 節點可以直接進行
web 訪問。
Heapster 是一個收集者,Heapster 可以收集 Node 節點上的 cAdvisor 數據,將每個 Node 上的 cAdvisor 的數據進行匯總,還可以按照 kubernetes 的資源類型來集合資源,比如 Pod、Namespace,可以分別獲取它們的 CPU、內存、網絡和磁盤的 metric。默認的 metric 數據聚合時間間隔是1分鐘。還可以把數據導入到第三方工具(如 InfluxDB)。
Kubernetes 原生 dashboard 的監控圖表信息來自 heapster。在 Horizontal Pod Autoscaling 中也用到了 Heapster,HPA 將 Heapster 作為 Resource Metrics API,向其獲取 metric。
架構圖
Heapster 首先從 apiserver 獲取集群中所有 Node 的信息,然后通過這些 Node 上的 kubelet 獲取有用數據,而 kubelet 本身的數據則是從 cAdvisor 得到。所有獲取到的數據都被推到 Heapster 配置的后端存儲中,并還支持數據的可視化。現在后端存儲 + 可視化的方法,如InfluxDB + grafana。
Heapster 本身是一個 Kubernetes 應用,部署方法很簡單,運行如下命令:
[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
因為眾所周知的原因,有些鏡像我們是下載不下來,只能間接的獲取,我們還是在阿里云的倉庫里面找一下。
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 相關資源如下:
[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 edit
將 Service monitoring-grafana
的類型修改為 NodePort
。
[root@master ~]# kubectl patch svc monitoring-grafana -p '{"spec":{"type":"NodePort"}}' -n kube-system
service/monitoring-grafana patched
目前我們的 Pod heapster
,是采集不到數據的,因為已經被廢棄,大家可以通過下面的命令查看到錯誤信息。
kubectl logs heapster-f64999bc-8x7j7 -n kube-system
瀏覽器打開 Grafana 的 Web UI:http://MASTER_IP:32314/
Heapster 已經預先配置好了 Grafana 的 DataSource 和 Dashboard。
Heapster 預定義的 Dashboard 很直觀也很簡單。如有必要,可以在 Grafana 中定義自己的 Dashboard 滿足特定的業務需求。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。