1

我一直在尝试使用来自 Kafka-exporter 的 Metrics 来实现 Kubernetes HPA。Hpa 支持 Prometheus,因此我们尝试将指标写入 prometheus 实例。从那里开始,我们不清楚要采取的步骤。有没有详细解释的文章?

我关注了 https://medium.com/google-cloud/kubernetes-hpa-autoscaling-with-kafka-metrics-88a671497f07

在 GCP 中同样如此,我们使用了堆栈驱动程序,并且实现就像一个魅力。但是,我们在本地设置中遇到了困难,因为堆栈驱动程序需要被 Prometheus 替换

4

2 回答 2

1

当我使用 Kafka-exporter 的 Metrics 实现 Kubernetes HPA 时,我遇到了一些挫折,我通过以下方式解决了这些问题:

  1. 我将 kafka-exporter 容器作为 sidecar 部署到我想要扩展的 pod 上。我发现 HPA 扩展了它从中获取指标的 pod。
  2. 我使用注释让 Prometheus 使用 exporter 从 pod 中抓取指标。

  3. 然后我验证了 kafka-exporter 指标正在进入 Prometheus。如果它不在那里,您将无法进一步前进。

  4. 我使用它的helm chart部署了prometheus 适配器。适配器会将 Prometheus 的指标“翻译”成自定义的 Metrics Api,这将使其对 HPA 可见。
  5. kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1我通过从一个主节点执行来确保指标在 k8s 中可见。
  6. 我创建了一个具有匹配指标名称的 hpa。

这是一个完整的指南,解释了如何使用来自 Kafka-exporter 的 Metrics 来实现 Kubernetes HPA

如果您有更多问题,请发表评论

于 2019-08-25T14:26:11.990 回答
1

为了根据自定义指标进行扩展,Kubernetes 需要向 API 查询指标以检查这些指标。该 API 需要实现自定义指标接口。

因此对于 Prometheus,您需要设置一个 API,通过自定义指标 API 公开 Prometheus 指标。幸运的是,已经有一个适配器

于 2019-08-05T15:36:00.517 回答