KubeScrape 是一个开源监控工具,旨在帮助 Kubernetes 用户跟踪集群的健康状况、查看实时指标和查看结构,该应用程序目前有 5 个直观的页面。
安装
该应用程序是一个桌面应用程序,只需要从 github release 页面(https://github.com/oslabs-beta/KubeScrape/releases)点击下载与你操作系统兼容的可执行文件,在本地运行即可。
但是要使用该应用程序需要满足一些先决条件:
- (必须)首先必须在你的 Kubernetes 集群中安装 Prometheus,并且提供了 node-exporter、kube-state-metrics 指标数据。
- (必须)安装了 Prometheus 实例后,需要在本地能够通过 30000 端口访问,这是因为目前 KubeScrape 是通过该端口进行 API 调用的,后续会提供让用户输入 Prometheus 地址的功能。
- (可选)如果配置了 Prometheus 的报警规则,KubeScrape 的 Alerts 选项卡会只显示报警相关的信息。
我这里在 Kubernetes 集群中安装了 Prometheus,并且有一个 Service 暴露服务:
➜ kubectl get svc -n kube-mon
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
prometheus ClusterIP 10.108.206.232 <none> 9090/TCP 45d
然后我可以在本地通过 kubectl port-forward 将 Prometheus 服务暴露在 30000 端口上:
➜ kubectl port-forward service/prometheus 30000:9090 --address 0.0.0.0 --namespace=kube-mon
Forwarding from 0.0.0.0:30000 -> 9090
此外如果你没有安装相关的指标,可以通过 https://github.com/annechanchan/KubeScrape_PrometheusManifests 仓库来轻松部署,包括报警规则。
特性
上面的需求满足后,在本地直接打开 KubeScrape 应用即可正常使用了,首页提供了集群运行状况和一些重要的集群指标信息概述:
点击一个节点可以路由到节点详细信息页面,可以获取有关该节点上正在运行的 pod 信息:
同样点击 Pod 则可以路由到 Pod 的详细信息页面,在该页面可以查看 CPU、内存等资源的相关使用情况:
此外 Alerts 页面还会显示 Prometheus 中处于 Firing 状态的报警规则,按照报警名称进行分组:
Visualizer 页面可以展示 kubernetes 集群对象的关系图,按命名空间组织。
总体来说该项目还处于较早期阶段,功能也略显鸡肋,但是如果作为开发学习的范例则是一个非常好的案例。