服务 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
除此之外,您还可以查看以下列表以获取可能对您有用的其他示例: