KRS：一个收集 Kubernetes 资源统计数据的新工具
零配置工具简化了信息收集，例如在某个命名空间中运行了多少个 pod。
Kubernetes
零配置工具简化了信息收集，例如在某个命名空间中运行了多少个 pod。

> 
> 零配置工具简化了信息收集，例如在某个命名空间中运行了多少个 pod。
> 
> 
> 


![](/data/attachment/album/201811/12/000555pwe0z50h59dvw9dz.png)


最近我在纽约的 O'Reilly Velocity 就 [Kubernetes 应用故障排除](http://troubleshooting.kubernetes.sh/)的主题发表了演讲，并且在积极的反馈和讨论的推动下，我决定重新审视这个领域的工具。结果，除了 [kubernetes-incubator/spartakus](https://github.com/kubernetes-incubator/spartakus) 和 [kubernetes/kube-state-metrics](https://github.com/kubernetes/kube-state-metrics) 之外，我们还没有太多的轻量级工具来收集资源统计数据（例如命名空间中的 pod 或服务的数量）。所以，我在回家的路上开始编写一个小工具 —— 创造性地命名为 `krs`，它是 Kubernetes Resource Stats 的简称 ，它允许你收集这些统计数据。


你可以通过两种方式使用 [mhausenblas/krs](https://github.com/mhausenblas/krs)：


* 直接在命令行（有 Linux、Windows 和 MacOS 的二进制文件），以及
* 在集群中使用 [launch.sh](https://github.com/mhausenblas/krs/blob/master/launch.sh) 脚本部署，该脚本动态创建适当的基于角色的访问控制（RBAC） 权限。


提醒你，它还在早期，并且还在开发中。但是，`krs` 的 0.1 版本提供以下功能：


* 在每个命名空间的基础上，它定期收集资源统计信息（支持 pod、部署和服务）。
* 它以 [OpenMetrics 格式](https://openmetrics.io/)公开这些统计。
* 它可以直接通过二进制文件使用，也可以在包含所有依赖项的容器化设置中使用。


目前，你需要安装并配置 `kubectl`，因为 `krs` 依赖于执行 `kubectl get all` 命令来收集统计数据。（另一方面，谁会使用 Kubernetes 但没有安装 `kubectl` 呢？）


使用 `krs` 很简单。[下载](https://github.com/mhausenblas/krs/releases)适合你平台的二进制文件，并按如下方式执行：



```
$ krs thenamespacetowatch
# HELP pods Number of pods in any state, for example running
# TYPE pods gauge
pods{namespace="thenamespacetowatch"} 13
# HELP deployments Number of deployments
# TYPE deployments gauge
deployments{namespace="thenamespacetowatch"} 6
# HELP services Number of services
# TYPE services gauge
services{namespace="thenamespacetowatch"} 4
```

这将在前台启动 `krs`，从名称空间 `thenamespacetowatch` 收集资源统计信息，并分别在标准输出中以 OpenMetrics 格式输出它们，以供你进一步处理。


![krs screenshot](/data/attachment/album/201811/12/000559vp6rz5relslrupll.png "krs screenshot")


*krs 实战截屏*


也许你会问，Michael，为什么它不能做一些有用的事（例如将指标存储在 S3 中）？因为 [Unix 哲学](http://harmful.cat-v.org/cat-v/)。


对于那些想知道他们是否可以直接使用 Prometheus 或 [kubernetes/kube-state-metrics](https://github.com/kubernetes/kube-state-metrics) 来完成这项任务的人：是的，你可以，为什么不行呢？ `krs` 的重点是作为已有工具的轻量级且易于使用的替代品 —— 甚至可能在某些方面略微互补。


本文最初发表在 [Medium 的 ITNext](https://itnext.io/kubernetes-resource-statistics-e8247f92b45c) 上，并获得授权转载。




---


via: <https://opensource.com/article/18/11/kubernetes-resource-statistics>


作者：[Michael Hausenblas](https://opensource.com/users/mhausenblas) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

