KRS:用于收集 Kubernetes 资源统计数据的新工具

零配置工具简化了信息收集,例如在特定命名空间中运行的 Pod 数量。
243 位读者喜欢这篇文章。
Tools illustration

Opensource.com

最近我在纽约参加了 O'Reilly Velocity 大会,就 Kubernetes 应用故障排除 这个主题发表演讲。受到积极反馈和关于该主题的精彩讨论的鼓舞,我决定重新审视该领域的工具。结果发现,除了 kubernetes-incubator/spartakuskubernetes/kube-state-metrics 之外,我们实际上没有太多轻量级工具可用于收集资源统计数据(例如命名空间中 Pod 或服务的数量)。因此,我在回家的路上坐下来开始编写一个小工具——创造性地命名为 krs,它是 Kubernetes Resource Stats 的缩写——它允许您收集这些统计数据。

您可以通过两种方式使用 mhausenblas/krs

  • 直接从命令行(提供 Linux、Windows 和 MacOS 的二进制文件);以及
  • 在集群中,作为部署,使用 launch.sh 脚本,该脚本动态创建适当的基于角色的访问控制 (RBAC) 权限。

请注意,现在还处于非常早期的阶段,这在很大程度上是一项正在进行中的工作。然而,krs 的 0.1 版本提供了以下功能

  • 在每个命名空间的基础上,它定期收集资源统计数据(支持 Pod、Deployment 和服务)。
  • 它以 OpenMetrics 格式 公开这些统计数据作为指标。
  • 它可以直接通过二进制文件使用,也可以在包含所有依赖项的容器化设置中使用。

在其当前形式中,您需要安装并配置 kubectl 才能使 krs 工作,因为 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 格式输出到 stdout 以供您进一步处理。

krs screenshot

krs 运行中的屏幕截图。

但是 Michael,您可能会问,为什么它不使用这些指标做一些有用的事情(例如将它们存储在 S3 中)呢?因为 Unix 哲学

对于那些想知道他们是否可以直接使用 Prometheus 或 kubernetes/kube-state-metrics 来完成这项任务的人:嗯,当然可以,为什么不呢?krs 的重点是成为现有工具的轻量级且易于使用的替代方案——甚至可能在某些方面具有互补性。


这最初发布在 Medium 的 ITNext 上,并经许可转载。

标签
mh9 pic
Michael 是 Red Hat 公司 Kubernetes 和 OpenShift 的开发者倡导者,他在那里帮助应用运维人员构建和运营应用。他的背景是大规模数据处理和容器编排,并且他在 W3C 和 IETF 的倡导和标准化方面经验丰富。在 Red Hat 之前,Michael 曾在 Mesosphere、MapR 以及爱尔兰和奥地利的两家研究机构工作。

评论已关闭。

© . All rights reserved.