用 Heapster 监控集群 — Kubernetes(63)steemCreated with Sketch.

in kubernetes •  7 years ago  (edited)

Heapster 是 Kubernetes 原生的集群监控方案。Heapster 以 Pod 的形式运行,它会自动发现集群节点、从节点上的 Kubelet 获取监控数据。Kubelet 则是从节点上的 cAdvisor 收集数据。

Heapster 将数据按照 Pod 进行分组,将它们存储到预先配置的 backend 并进行可视化展示。Heapster 当前支持的 backend 有 InfluxDB(通过 Grafana 展示),Google Cloud Monitoring 等。Heapster 的整体架构如下图所示:

887.png

下面我们将实践由 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 相关资源如下:

888.png

为便与访问,已通过 kubectl edit 将 Service monitoring-grafana 的类型修改为 NodePort

使用

浏览器打开 Grafana 的 Web UI:http://192.168.56.105:32314/

Heapster 已经预先配置好了 Grafana 的 DataSource 和 Dashboard。

889.png

点击左上角 Home 菜单,可以看到预定义的两个 Dashboard ClusterPods

890.png

点击 Cluster,可以查看集群中节点的 CPU、内存、网络和磁盘的使用情况。

891.png

在左上角可以切换查看不同节点的数据。

892.png

切换到 Pods Dashboard,可以查看 Pod 的监控数据,包括单个 Pod 的 CPU、内存、网络和磁盘使用情况。

893.png

在左上角可以切换到不同 Namespace 的 Pod。

894.png

Heapster 预定义的 Dashboard 很直观也很简单。如有必要,可以在 Grafana 中定义自己的 Dashboard 满足特定的业务需求。

下一节我们学习 Prometheus Operator。

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!