通过外部Prometheus获取在Kubernetes上部署的linkerd-jaeger扩展的指标
环境/前提: 环境和前提
Kubernetes:v1.23
以下内容已在集群中部署:
PrometheusOperator(HelmChart):kube-prometheus-stack-36.2.1
Linkerd:v2.11
Jaeger全一体化(HelmChart):linkerd-jaeger-2.11.3stable-2.11.3
這個問題
最后得出的结论
我需要编辑 ServerAuthorization。
总结
据Jaeger all-in-one文档,已准备好在端口14269上的/metrics终端点上抓取指标。
当我看到Jaeger的Pod里面时,确实有那种感觉。 wǒ Jaeger de Pod shí, .)
apiVersion: v1
kind: Pod
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: "14269"
prometheus.io/scrape: "true"
...
没有作为服务公开。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
jaeger ClusterIP 10.233.44.125 <none> 14268/TCP,14250/TCP,16686/TCP 2d3h
然而,由于有PodMonitor,应该不会有问题。
创建PodMonitor
这里有我们创建的PodMonitor。
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
labels:
team: jaeger
name: jaeger
namespace: linkerd-jaeger
spec:
namespaceSelector:
matchNames:
- linkerd-jaeger
podMetricsEndpoints:
- interval: 5s
path: /metrics
port: admin
selector:
matchLabels:
component: jaeger
linkerd.io/control-plane-ns: linkerd
linkerd.io/extension: jaeger
linkerd.io/proxy-deployment: jaeger
linkerd.io/workload-ns: linkerd-jaeger
我已经部署了这个,但无法获取度量指标
当我查看linkerd-proxy的日志时,发现请求被拒绝了。
...
[ 1993.963968s] INFO ThreadId(01) inbound:server{port=14269}: linkerd_app_inbound::policy::authorize::http: Request denied server=jaeger-admin tls=Some(Established { client_id: Some(ClientId(Name("prometheus-operator-kube-p-prometheus.monitoring.serviceaccount.identity.linkerd.cluster.local"))), negotiated_protocol: None }) client=10.233.92.74:40682
[ 1993.964065s] INFO ThreadId(01) inbound:server{port=14269}:rescue{client.addr=10.233.92.74:40682}: linkerd_app_core::errors::respond: Request failed error=unauthorized connection on server jaeger-admin
...
当我确认已正确访问终点后,感到安心,然后搜索后发现了这个问题。
编辑ServerAuthorization
编辑Jaeger管理员的ServerAuthorization。
apiVersion: policy.linkerd.io/v1beta1
kind: ServerAuthorization
metadata:
(省略)
spec:
client:
meshTLS:
serviceAccounts:
- name: prometheus-operator-kube-p-prometheus #自分の環境にしてね
namespace: monitoring #自分の環境にしてね
server:
name: jaeger-admin
当我查看日志时,发现没有出现任何新错误,于是我去查看了Prometheus。
最后的结果

牛掰!!!!!! (niú
请向以下内容做参考
以下是相关网页链接:
https://www.jaegertracing.io/docs/1.34/monitoring/
https://github.com/linkerd/linkerd2/issues/7339