我的kubernetes部署中有一个多容器容器:

  • java
  • redis
  • nginx

  • 对于每个这些容器,都有一个带有Prometheus导出商的容器。

    问题是,如果注释部分每个 pods 仅支持一个端口,如何将这些端口暴露给Prometheus?
    annotations:
      prometheus.io/scrape: 'true'
      prometheus.io/port: 'xxxx'
    

    但我需要这样的东西:
    annotations:
      prometheus.io/scrape: 'true'
      prometheus.io/port_1: 'xxxx'
      prometheus.io/port_2: 'yyyy'
      prometheus.io/port_3: 'zzzz'
    

    也许还有其他方法可以从多容器容器中抓取所有指标?在此先感谢您提供的任何帮助。

    最佳答案

    这是普罗米修斯的example工作。将其放在您自己的配置中。

    接下来,添加:

    annotations:
       prometheus.io/scrape: 'true'
    

    到您的pod元数据。

    然后在每个提供/metrics的容器上,创建一个名为metrics的适当端口。

    就是这样。 Prometheus仅会抓取那些端口,并且不会出现任何情况,例如您的redis实例将在其6379端口上获得http请求时。

    关于docker - 在Kubernetes上具有多容器 pods 的Prometheus,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43121132/

    10-10 13:51
    查看更多