不使用Heapster有没有办法收集有关Kubernetes集群中节点的CPU或磁盘指标?
Heapster如何在第一时间收集这些指标?
答案 0 :(得分:20)
Kubernetes监控详见文档here,但主要涵盖使用heapster的工具。
特定于节点的信息通过cAdvisor UI公开,可以在端口4194上访问(请参阅下面的命令通过代理API访问它)。
Heapster在kubelet中查询<kubelet address>:10255/stats/
提供的统计信息(其他端点可在代码here中找到)。
试试这个:
$ kubectl proxy &
Starting to serve on 127.0.0.1:8001
$ NODE=$(kubectl get nodes -o=jsonpath="{.items[0].metadata.name}")
$ curl -X "POST" -d '{"containerName":"/","subcontainers":true,"num_stats":1}' localhost:8001/api/v1/proxy/nodes/${NODE}:10255/stats/container
...
请注意,这些端点没有记录,因为它们是供内部使用(和调试)的,并且将来可能会更改(我们最终希望提供更稳定的版本化端点)。
<强>更新强>
从Kubernetes 1.2版开始,Kubelet导出一个“摘要”API,汇总所有Pod的统计数据:
$ kubectl proxy &
Starting to serve on 127.0.0.1:8001
$ NODE=$(kubectl get nodes -o=jsonpath="{.items[0].metadata.name}")
$ curl localhost:8001/api/v1/proxy/nodes/${NODE}:10255/stats/summary
...
答案 1 :(得分:2)
我建议使用heapster来收集指标。这很直接。但是,为了访问这些指标,您需要在hepaster.yml文件中添加“type:NodePort”。我修改了原始的heapster文件,你可以找到它们here。请参阅我的自述文件,了解如何访问指标。有更多指标here。
通过访问http://heapster-pod-ip:heapster-service-port/api/v1/model/metrics/cpu/usage_rate,可以通过网络浏览器访问指标。执行以下命令可以看到相同的结果。
$ curl -L http://heapster-pod-ip:heapster-service-port/api/v1/model/metrics/cpu/usage_rate