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。