Kubernetes:如何获取节点的磁盘/ CPU指标

时间:2016-02-04 21:31:01

标签: kubernetes

不使用Heapster有没有办法收集有关Kubernetes集群中节点的CPU或磁盘指标?

Heapster如何在第一时间收集这些指标?

2 个答案:

答案 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