1

我的用例是让 kubernetes pod 的指标每 2 秒可供使用一次。需要在此时间间隔轮询 Pod 以维护健康的控制平面(确定可能阻塞的 Pod 并避免将流量路由到这些端点)。

我现在正在使用 metrics-server,但它并不最适合我的用例。我在这里看到了下面的注释。

Metrics Server 不适用于非自动缩放目的。例如,不要使用它来将指标转发给监控解决方案,或作为监控解决方案指标的来源。在这种情况下,请直接从 Kubelet /metrics/resource 端点收集指标。

多久抓取一次指标?默认 60 秒,可以使用 metric-resolution 标志进行更改。我们不建议将值设置为低于 15s,因为这是 Kubelet 计算的指标的分辨率。

  1. 应该如何直接使用 kubelet 指标端点?我遇到的所有示例 use metrics.k8s.io
  2. 另一种方法是/sys/fs/cgroup/cpu/cpuacct.usage直接从 docker 容器中读取数据,但需要有一个聚合层。应该如何设计这个统计聚合层?

还有其他方法吗?解决我的要求的最佳推荐方法是什么?谢谢。

4

2 回答 2

1

我认为最简单的方法是在您的工作负载上添加一个 /metrics 端点,然后使用prometheus抓取它并实现prometheus 适配器以插入 HPA。

于 2021-11-19T13:50:11.177 回答
0

我想扩展一点@testfile 答案。

在您的工作负载上添加 metics 端点,使用 prometheus 进行抓取并最终实现 prometheus 适配器 以插入 HPA 是一个好主意。

Prometheus是一个开源系统监控和警报工具包,最初在SoundCloud构建。

Prometheus 从检测作业中直接或通过中间推送网关从短期作业中抓取指标。

在这里这里您可以找到如何开始使用 Prometheus。

基于此文档, Prometheus Adapter 可以替换已经运行 Prometheus 的集群上的指标服务器并收集适当的指标。

另请参阅这篇文章

于 2021-12-02T18:49:42.183 回答