KRS:一个收集 Kubernetes 资源统计数据的新工具
零配置工具简化了信息收集,例如在某个命名空间中运行了多少个 pod。
最近我在纽约的 O'Reilly Velocity 就 Kubernetes 应用故障排除 的主题发表了演讲,并且在积极的反馈和讨论的推动下,我决定重新审视这个领域的工具。结果,除了 kubernetes-incubator/spartakus 和 kubernetes/kube-state-metrics 之外,我们还没有太多的轻量级工具来收集资源统计数据(例如命名空间中的 pod 或服务的数量)。所以,我在回家的路上开始编写一个小工具 —— 创造性地命名为 krs
,它是 Kubernetes Resource Stats 的简称 ,它允许你收集这些统计数据。
你可以通过两种方式使用 mhausenblas/krs :
- 直接在命令行(有 Linux、Windows 和 MacOS 的二进制文件),以及
- 在集群中使用 launch.sh 脚本部署,该脚本动态创建适当的基于角色的访问控制(RBAC) 权限。
提醒你,它还在早期,并且还在开发中。但是, krs
的 0.1 版本提供以下功能:
- 在每个命名空间的基础上,它定期收集资源统计信息(支持 pod、部署和服务)。
- 它以 OpenMetrics 格式 公开这些统计。
- 它可以直接通过二进制文件使用,也可以在包含所有依赖项的容器化设置中使用。
目前,你需要安装并配置 kubectl
,因为 krs
依赖于执行 kubectl get all
命令来收集统计数据。(另一方面,谁会使用 Kubernetes 但没有安装 kubectl
呢?)
使用 krs
很简单。 下载 适合你平台的二进制文件,并按如下方式执行:
$ 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 实战截屏
也许你会问,Michael,为什么它不能做一些有用的事(例如将指标存储在 S3 中)?因为 Unix 哲学 。
对于那些想知道他们是否可以直接使用 Prometheus 或 kubernetes/kube-state-metrics 来完成这项任务的人:是的,你可以,为什么不行呢? krs
的重点是作为已有工具的轻量级且易于使用的替代品 —— 甚至可能在某些方面略微互补。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 用 Python 和 Conu 测试容器
下一篇: 彻底找到 Tomcat 启动速度慢的元凶
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论