kubernetes - 在 Kubernetes 中注册多个自定义指标 API

标签 kubernetes prometheus

TL;DR 我可以注册多个 API 以在 k8s 中提供自定义指标吗?

我们有一个 Multi-Tenancy 集群——在不同的命名空间中有不同的部署,它们都有自己的监控解决方案(使用 Prometheus)

我们希望每个命名空间都能够使用 HPA 在他们自己的命名空间中扩展来自 Prometheus 实例的自定义指标。

我们在我们的开发环境中使用 Prometheus 适配器 (https://github.com/DirectXMan12/k8s-prometheus-adapter) 配置了自定义指标,并且适用于以下部署:

  • 角色+绑定(bind)
  • Prometheus 适配器 + 配置 + 服务(在命名空间中)
  • 一个 apiservice.apiregistration.k8s.io名为 v1beta1.custom.metrics.k8s.io并指向命名空间
  • 中的服务
    APIService不会被放入命名空间并且是全局的 - 并且命名必须是 v1beta1.custom.metrics.k8s.io这意味着我们只能将单个 prometheus 用于自定义指标——这会破坏我们的用例。

    知道如何将多个服务注册为 custom_metrics 的 API 吗?或其他方式来做到这一点?

    最佳答案

    所以我不确定这是最好的答案——在我这么说之前等待社区做出回应——但这绝对是一个答案。

    您似乎无法为单个 API 注册多个服务 - 因此答案是将数据聚合到单个 API 中。

    选项包括:

  • 联合 Prometheus = 抓取 /federated每个 Prometheus 的端点,并使用它来为自定义扩展指标提供服务。 ( https://prometheus.io/docs/prometheus/latest/federation/ )
  • Thanos - ( https://github.com/improbable-eng/thanos ) 生产使用的早期阶段可能 - 所以娇气可能想要选择一个选项 - 但 Thanos 在每个 Prometheus 的顶部为我提供了一个统一的查询层,我可以将适配器附加到该层。非常整洁 - 不错的项目 - 值得一试;
  • 关于kubernetes - 在 Kubernetes 中注册多个自定义指标 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52856409/

    相关文章:

    kubernetes - 如何删除添加到 microk8s 图像缓存中的 docker 图像?

    java - 实现普罗米修斯时的竞争条件

    kubernetes - 如何将抓取目标添加到与Kubernetes-Helm一起安装的Prometheus服务器上?

    prometheus - 如何在警报规则普罗米修斯中显示指标的值

    kubernetes - 无法在 openshift 3.11 中更新节点导出器的 tls-cipher-suites

    docker - 如何路由到服务中的特定容器

    kubernetes - 如何在 k8s readinessProbe 和 livenessProbe 中的套接字文件中使用 gevent 检查 uwsgi

    kubernetes - Ansible + Kubernetes : how to wait for a Job completion

    prometheus - 设置 PromQL 值的格式

    kubernetes - 节点组之间的 AWS EKS 通信