jaeger部署

1.jaeger部署,all-in-one模式,使用opensearch作为存储后端

配置文件参考https://github.com/jaegertracing/jaeger/tree/v2.3.0/cmd/jaeger目录下的

auth.basic和tls的配置都是网上找的,官方示例并没有

apiVersion: v1
data:
  config.yaml: |
    service:
      extensions: [jaeger_storage, jaeger_query, healthcheckv2]
      pipelines:
        traces:
          receivers: [otlp]
          processors: [batch]
          exporters: [jaeger_storage_exporter]
      telemetry:
        resource:
          service.name: jaeger
        metrics:
          level: detailed
          readers:
            - pull:
                exporter:
                  prometheus:
                    host: 0.0.0.0
                    port: 8888
        logs:
          level: debug
        # TODO Initialize telemetry tracer once OTEL released new feature.
        # https://github.com/open-telemetry/opentelemetry-collector/issues/10663
    
    extensions:
      healthcheckv2:
        use_v2: true
        http:
    
      jaeger_query:
        storage:
          traces: some_storage
          traces_archive: another_storage
        #ui:
        #  config_file: ./cmd/jaeger/config-ui.json
    
      jaeger_storage:
        backends:
          some_storage:
            opensearch:
              server_urls:
                - https://100.10.10.10:9200
              auth:
                basic:
                  username: "admin"
                  password: "admin"
              tls:
                insecure_skip_verify: true  ###跳过opensearch的tls认证
              indices:
                index_prefix: "jaeger-main"
                spans:
                  date_layout: "2006-01-02"
                  rollover_frequency: "day"
                  shards: 5
                  replicas: 1
                services:
                  date_layout: "2006-01-02"
                  rollover_frequency: "day"
                  shards: 5
                  replicas: 1
                dependencies:
                  date_layout: "2006-01-02"
                  rollover_frequency: "day"
                  shards: 5
                  replicas: 1
                sampling:
                  date_layout: "2006-01-02"
                  rollover_frequency: "day"
                  shards: 5
                  replicas: 1
          another_storage:
            opensearch:
              server_urls:
                - https://100.10.10.10:9200
              auth:
                basic:
                  username: "admin"
                  password: "admin"
              tls:
                insecure_skip_verify: true  ###跳过opensearch的tls认证
              indices:
                index_prefix: "jaeger-archive"
    
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: 0.0.0.0:4317
          http:
            endpoint: 0.0.0.0:4318
      jaeger:
        protocols:
          grpc:
            endpoint: 0.0.0.0:14250
          thrift_compact:
            endpoint: 0.0.0.0:6831
          thrift_binary:
            endpoint: 0.0.0.0:6832
    
    processors:
      batch:
    
    exporters:
      jaeger_storage_exporter:
        trace_storage: some_storage
kind: ConfigMap
metadata:
   name: xdd-jaeger-cm
   namespace: pero
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: xdd-jaeger-deployment
  namespace: pero
spec:
  replicas: 2
  selector:
    matchLabels:
      name: xdd-jaeger
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
  template:
    metadata:
      labels:
        name: xdd-jaeger
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: name
                  operator: In
                  values:
                  - xdd-jaeger
              topologyKey: "kubernetes.io/hostname"
      containers:
      - args:
        - --config=/etc/config/config.yaml
	    image: jaegertracing/jaeger:v2.3.0
        imagePullPolicy: Always
        name: xdd-jaeger-container
        ports:
        - containerPort: 16685
          name: port-1
          protocol: TCP
        - containerPort: 16686
          name: port-2
          protocol: TCP
        - containerPort: 5778
          name: port-3
          protocol: TCP
        - containerPort: 5779
          name: port-4
          protocol: TCP
        - containerPort: 27777
          name: port-5
          protocol: TCP
        - containerPort: 27778
          name: port-6
          protocol: TCP
        - containerPort: 4317
          name: port-7
          protocol: TCP
        - containerPort: 4318
          name: port-8
          protocol: TCP
        - containerPort: 6831
          name: port-9
          protocol: TCP
        - containerPort: 6832
          name: port-10
          protocol: TCP
        - containerPort: 14268
          name: port-11
          protocol: TCP
        - containerPort: 14250
          name: port-12
          protocol: TCP
        volumeMounts:
        - mountPath: /etc/config
          name: xdd-jaeger-cm
      dnsPolicy: ClusterFirst
      volumes:
      - configMap:
          defaultMode: 420
          name: xdd-jaeger-cm
        name: xdd-jaeger-cm
---
apiVersion: v1
kind: Service
metadata:
  name: xdd-jaeger-svc
  namespace: pero
spec:
  ipFamilies:
  - IPv4
  - IPv6
  ipFamilyPolicy: RequireDualStack
  ports:
  - name: port-1
    port: 16685
    protocol: TCP
    targetPort: 16685
  - name: port-2
    port: 16686
    protocol: TCP
    targetPort: 16686
  - name: port-3
    port: 5778
    protocol: TCP
    targetPort: 5778
  - name: port-4
    port: 5779
    protocol: TCP
    targetPort: 5779
  - name: port-5
    port: 27777
    protocol: TCP
    targetPort: 27777
  - name: port-6
    port: 27778
    protocol: TCP
    targetPort: 27778
  - name: port-7
    port: 4317
    protocol: TCP
    targetPort: 4317
  - name: port-8
    port: 4318
    protocol: TCP
    targetPort: 4318
  - name: port-9
    port: 6831
    protocol: TCP
    targetPort: 6831
  - name: port-10
    port: 6832
    protocol: TCP
    targetPort: 6832
  - name: port-11
    port: 14268
    protocol: TCP
    targetPort: 14268
  - name: port-12
    port: 14250
    protocol: TCP
    targetPort: 14250
  selector:
    name: xdd-jaeger
  sessionAffinity: None
  type: ClusterIP

 

 

2.部署完成后,可以访问opensearch查看索引,可以看到有jaeger开头的索引

curl https://100.10.10.10:9200/_cat/indices --insecure -u'admin:admin'

 

3.访问jaeger页面

100.10.10.10:16686

 

4.otel发送数据到jaeger

receivers:
      otlp:
        protocols:
          grpc:
            endpoint: 0.0.0.0:4317
          http:
            endpoint: 0.0.0.0:4318
    exporters:
      otlp/jaeger:
        endpoint: 100.10.10.10:4317  ###配置jaeger的4317端口,通过grpc协议发送otel格式的数据
        tls:
          insecure: true
    processors:
      #batch:
      k8sattributes:
      resource:
        attributes:
          - key: app.host.ip
            from_attribute: k8s.pod.ip
            action: insert
    #extensions:
    #  zpages: {}
    #  memory_ballast:
    #    # Memory Ballast size should be max 1/3 to 1/2 of memory.
    #    size_mib: 165
    service:
      #extensions: [zpages, memory_ballast]
      pipelines:
        traces:
          receivers: [otlp]
          processors: [k8sattributes, resource]
          exporters: [otlp/jaeger]  ###配置jaeger生效

 

posted @ 2025-02-26 09:28  wdgde  阅读(202)  评论(0)    收藏  举报