我们如何配置 prometheus 服务器以从带有 Istio sidecar 代理的 pod 中抓取指标?

我们如何配置 prometheus 服务器以从带有 Istio sidecar 代理的 pod 中抓取指标?

服务 pod 正在使用 Istio sidecar 容器运行,并且启用了 MTLS。我们如何定义服务监视器来从此服务中抓取指标?我们是否需要为此更新 Prometheus 服务器?

我的 Pod 监视器如下所示:

apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: mymonitor
  labels:
    release: podwithistiosidecar
spec:
  selector:
    matchLabels:
      app: podwithistiosidecar
  podMetricsEndpoints:
  - port: "metrics"
    path: "/metrics"
    scheme: https

我收到的错误是:获取“https://192.168.3.29:9090/metrics”:tls:无法验证证书:x509:无法验证 192.168.3.29 的证书,因为它不包含任何 IP SAN

然后我尝试使用以下配置:

apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: mymonitor
  labels:
    release: podwithistiosidecar
spec:
  selector:
    matchLabels:
      app: podwithistiosidecar
  podMetricsEndpoints:
  - port: "metrics"
    path: "/metrics"
    scheme: https
    tlsConfig:
      insecureSkipVerify: true

出现以下错误:

获取“https://192.168.3.29:9090/metrics”:写入 tcp 192.168.92.182:48408->192.168.3.29:9090:写入:管道损坏

答案1

您可以定义服务监视器来从运行 Istio sidecar 并启用 MTLS 的 pod 中抓取指标,您可以尝试以下 YAML 文件:

apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: mysvcmonitor
  labels:
    release: podwithistiosidecar
spec:
  selector:
    matchLabels:
      app: podwithistiosidecar
  podMetricsEndpoints:
  - port: "metrics"
    path: "/metrics"
    scheme: https
    tlsConfig:
      caFile: /etc/prom-certs/root-cert.pem
      certFile: /etc/prom-certs/cert-chain.pem
      keyFile: /etc/prom-certs/key.pem
      insecureSkipVerify: true

除此之外,您还可以查看以下列表以获取可能对您有用的其他示例:

相关内容