首页 > 解决方案 > Prometheus 在 k8s 上自动检测 TLS(自签名)抓取端点

问题描述

我正在抓取 Kubernetes 集群上的服务指标。我只是对服务进行了注释,以便 Prometheus 检测并自动开始抓取。向服务添加了以下注释:

metadata:
 annotations:
 prometheus.io/path: /minio/prometheus/metrics
 prometheus.io/port: "9000"
 prometheus.io/scrape: "true"


 
 只要该服务未配置 TLS,它就可以正常工作。但是,当我启用 TLS (HTTPS) 时,Prometheus 不再能够自动发现和抓取服务。要从启用 TLS 的服务器中抓取,我需要使用 . 显式添加抓取端点insecure_skip_verify。我正在使用自签名证书。 

有什么方法可以配置 Prometheus,以便在端点启用 TLS 并使用自签名证书时自动发现并开始抓取端点? 

标签: dockerkubernetesprometheuskubernetes-helmminio

解决方案


最简单的方法是让您的应用程序公开一个非 TLS 指标专用端口,这样您就可以保护所有流量并使用明确的 http 公开指标。这就是为 ie 建议的方式。用于 mTLS 和健康检查的 Istio

You can use a separate port for health check and enable mutual TLS only
on the regular service port. 

除此之外,您可以将 tls 配置添加到您的抓取目标因此,如果您有自己的自签名 CA,请在此处添加它的证书,应该没问题。


推荐阅读