通过外部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。

最后的结果

2022-07-13.png

牛掰!!!!!! (niú

请向以下内容做参考

以下是相关网页链接:

https://www.jaegertracing.io/docs/1.34/monitoring/

https://github.com/linkerd/linkerd2/issues/7339

bannerAds