конфигурация jaeger в приложении весенней загрузки, когда они оба развернуты на kubernetes - PullRequest
2 голосов
/ 11 апреля 2020

Итак, я пытаюсь отследить журналы моего приложения с весенней загрузкой с помощью jaeger, и какие шаги следует выполнить, если мое приложение и jaeger развернуты в kubernetes. Я успешно развернул приложение jaeger и весеннюю загрузку, и как я буду настраивать jaeger в своем сервисе. Мои службы не отображаются в консоли jaegar.

showing all the services running on my kubernetes cluster

Я добавил следующую конфигурацию в yml:

opentracing.jaeger.udp-sender.host=localhost
opentracing.jaeger.udp-sender.port=6831
apiVersion: v1
kind: List
items:
- apiVersion: extensions/v1beta1
  kind: Deployment
  metadata:
    name: jaeger
    labels:
      app: jaeger
      app.kubernetes.io/name: jaeger
      app.kubernetes.io/component: all-in-one
  spec:
    replicas: 1
    strategy:
      type: Recreate
    template:
      metadata:
        labels:
          app: jaeger
          app.kubernetes.io/name: jaeger
          app.kubernetes.io/component: all-in-one
        annotations:
          prometheus.io/scrape: "true"
          prometheus.io/port: "16686"
      spec:
          containers:
          -   env:
              - name: COLLECTOR_ZIPKIN_HTTP_PORT
                value: "9411"
              image: jaegertracing/all-in-one
              name: jaeger
              ports:
                - containerPort: 5775
                  protocol: UDP
                - containerPort: 6831
                  protocol: UDP
                - containerPort: 6832
                  protocol: UDP
                - containerPort: 5778
                  protocol: TCP
                - containerPort: 16686
                  protocol: TCP
                - containerPort: 9411
                  protocol: TCP
              readinessProbe:
                httpGet:
                  path: "/"
                  port: 14269
                initialDelaySeconds: 5
- apiVersion: v1
  kind: Service
  metadata:
    name: jaeger-query
    labels:
      app: jaeger
      app.kubernetes.io/name: jaeger
      app.kubernetes.io/component: query
  spec:
    ports:
      - name: query-http
        port: 80
        protocol: TCP
        targetPort: 16686
    selector:
      app.kubernetes.io/name: jaeger
      app.kubernetes.io/component: all-in-one
    type: LoadBalancer
- apiVersion: v1
  kind: Service
  metadata:
    name: jaeger-collector
    labels:
      app: jaeger
      app.kubernetes.io/name: jaeger
      app.kubernetes.io/component: collector
  spec:
    ports:
    - name: jaeger-collector-tchannel
      port: 14267
      protocol: TCP
      targetPort: 14267
    - name: jaeger-collector-http
      port: 14268
      protocol: TCP
      targetPort: 14268
    - name: jaeger-collector-zipkin
      port: 9411
      protocol: TCP
      targetPort: 9411
    selector:
      app.kubernetes.io/name: jaeger
      app.kubernetes.io/component: all-in-one
    type: ClusterIP
- apiVersion: v1
  kind: Service
  metadata:
    name: jaeger-agent
    labels:
      app: jaeger
      app.kubernetes.io/name: jaeger
      app.kubernetes.io/component: agent
  spec:
    ports:
    - name: agent-zipkin-thrift
      port: 5775
      protocol: UDP
      targetPort: 5775
    - name: agent-compact
      port: 6831
      protocol: UDP
      targetPort: 6831
    - name: agent-binary
      port: 6832
      protocol: UDP
      targetPort: 6832
    - name: agent-configs
      port: 5778
      protocol: TCP
      targetPort: 5778
    clusterIP: None
    selector:
      app.kubernetes.io/name: jaeger
      app.kubernetes.io/component: all-in-one
- apiVersion: v1
  kind: Service
  metadata:
    name: zipkin
    labels:
      app: jaeger
      app.kubernetes.io/name: jaeger
      app.kubernetes.io/component: zipkin
  spec:
    ports:
    - name: jaeger-collector-zipkin
      port: 9411
      protocol: TCP
      targetPort: 9411
    clusterIP: None
    selector:
      app.kubernetes.io/name: jaeger
      app.kubernetes.io/component: all-in-one

Выходные данные og kubectl get service jaeger-query

Name:                     jaeger-query
Namespace:                default
Labels:                   app=jaeger
                          app.kubernetes.io/component=query
                          app.kubernetes.io/name=jaeger
Annotations:              kubectl.kubernetes.io/last-applied-configuration:
                            {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"jaeger",
                            "app.kubernetes.io/component":"query","app.kuber...
Selector:                 app.kubernetes.io/component=all-in-one,app.kubernetes.io/name=jaeger
Type:                     LoadBalancer
IP:                       10.24.14.223
LoadBalancer Ingress:     35.222.40.241
Port:                     query-http  80/TCP
TargetPort:               16686/TCP
NodePort:                 query-http  30290/TCP
Endpoints:                10.20.2.7:16686
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

Ответы [ 2 ]

1 голос
/ 11 апреля 2020

Вы добавляете opentracing-spring-jaeger-starter библиотеку в проект, который просто содержит код, необходимый для обеспечения реализации Jaeger интерфейса OpenTracing io.opentracing.Tracer.

Поскольку у вас развернут Jaeger в Kubernetes и показал его через службу loadbalancer. Вы можете использовать IP-адрес loadbalancer и порт для подключения к нему вне кластера Kubernetes.

0 голосов
/ 11 апреля 2020

Таким образом, решение, которое работает для меня, - я внес следующие изменения в мой файл application.properties приложения

opentracing.jaeger.udp-sender.host = http: //: (example " : 80 ") opentracing.jaeger.http-sender.url = http: //: / api / traces (пример открытого порта": 1468 ")

...