发布时间:2023-09-18 14:00
书籍来源:cloudman《每天5分钟玩转Kubernetes》
一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:每天5分钟玩转Kubernetes | 汇总_COCOgsta的博客-CSDN博客
Heapster是Kubernetes原生的集群监控方案。Heapster以Pod的形式运行,它会自动发现集群节点,从节点上的Kubelet获取监控数据。Kubelet则是从节点上的cAdvisor收集数据。
Heapster将数据按照Pod进行分组,将它们存储到预先配置的backend并进行可视化展示。Heapster当前支持的backend有InfluxDB(通过Grafana展示)、Google Cloud Monitoring等。Heapster的整体架构如图所示。
下面我们将实践由Heapster、InfluxDB和Grafana组成的监控方案。Kubelet和cAdvisor是Kubernetes的自带组件,无须额外部署。
Heapster本身是一个Kubernetes应用,部署方法很简单,运行如下命令:
git clone https://github.com/kubernetes/heapster.git
kubectl apply -f heapster/deploy/kube-config/influxdb/
kubectl apply -f heapster/deploy/kube-config/rbac/heapster-rbac.yaml
Heapster相关资源如图所示。
为了便于访问,已通过kubectl edit将Service monitoring-grafana的类型修改为NodePort。
浏览器打开Grafana的Web UI:
http://192.168.56.105:32314/。
Heapster已经预先配置好了Grafana的DataSource和Dashboard,如图所示。
单击左上角的Home菜单,可以看到预定义的Dashboard Cluster和Pods,如图所示。
单击Cluster,可以查看集群中节点的CPU、内存、网络和磁盘的使用情况,如图所示。
在左上角可以切换查看不同节点的数据,如图所示。
切换到Pods Dashboard,可以查看Pod的监控数据,包括单个Pod的CPU、内存、网络和磁盘使用情况,如图所示。
在左上角可以切换到不同Namespace的Pod,如图所示。
Heapster预定义的Dashboard很直观,也很简单。如有必要,可以在Grafana中定义自己的Dashboard,满足特定的业务需求。