基于kubernetes的jaeger 链路追踪部署

Jaeger是Uber开发的分布式追踪系统,用于微服务监控和问题排查。本文详细介绍了如何在Kubernetes环境中配置Jaeger,包括jaeger-agent、jaeger-collector、jaeger-query的部署,以及使用Elasticsearch作为存储后端。此外,还涉及了hotrod测试案例和通过Ingress访问服务的方法。

jaeger的相关知识

https://blog.youkuaiyun.com/douzizuibang/article/details/83312674
https://yq.aliyun.com/articles/514488
官网:https://www.jaegertracing.io/docs/1.7/
github上的jaeger: https://github.com/jaegertracing,https://github.com/jaegertracing/jaeger-kubernetes

介绍

Jaeger是Uber Technologies用GO语言开发的分布式跟踪系统,现已开源。它用于监视和排除基于微服务的分布式系统,包括:

  • 分布式上下文传播
  • 分布式事务监控
  • 根本原因分析
  • 服务依赖性分析
  • 性能/延迟优化

架构图

在这里插入图片描述

对OpenTracing的原生支持

Jaeger后端,Web UI和仪器库已经完全设计为支持OpenTracing标准。

  • 通过跨度参考将跟踪表示为有向非循环图(不仅仅是树)
  • 支持强类型span 标记和结构化日志
  • 通过行李支持通用分布式上下文传播机制

多个存储后端

Jaeger支持两个流行的开源NoSQL数据库作为跟踪存储后端:Cassandra 3.4+和Elasticsearch 6.x / 7.x. 正在进行使用其他数据库的社区实验,例如ScyllaDB,InfluxDB,Amazon DynamoDB。Jaeger还提供了一个简单的内存存储器,用于测试设置。

jaeger-agent(代理)

Jaege-agent client 与 collector 中间的代理层,监听发送过来的 spans 数据并批量发送至 collector。

jaeger-collector

Jaeger-collector接收发送自 jaeger-agent 的 trace 数据(或者可直接发送 zipkin spans 至 collector),验证、索引、转换及存储 trace 数据。

Jaeger的存储是一个可插拔的组件,目前支持Cassandra,Elasticsearch和Kafka。

jaeger-query

jaeger-query从storage 中查询 trace 及前端 ui 展示。

hotrod

测试案例部署。

基于k8s的jaeger安装

PS:因为需要使用到es所有与es与kibana、fluentd放入同一namespace

1.configmap 部署: jaeger-config.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: jaeger-configuration
  namespace: logging
  labels:
    app: jaeger
    jaeger-infra: configuration
data:
  span-storage-type: elasticsearch
  collector: |
    es:
      server-urls: http://elasticsearch:9200
      username: elastic
      password: changeme
    collector:
      zipkin:
        http-port: 9411
  query: |
    es:
      server-urls: http://elasticsearch:9200
      username: elastic

2. jaeger-query 部署安装: jaeger-query-deployment.yml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: jaeger-query
  namespace: logging
  labels:
    app: jaeger
    jaeger-infra: query-deployment
spec:
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: jaeger
        jaeger-infra: query-pod
      annotations:
        prometheus.io/scrape: "true"
        prometheus.io/port: "16686"
    spec:
      containers:
        - image: jaegertracing/jaeger-query:latest
          name: jaeger-query
          args: ["--config-file=/conf/query.yaml"]
          ports:
            - containerPort: 16686
              protocol: TCP
          readinessProbe:
            httpGet:
              path: "/"
              port: 16687
          volumeMounts:
            - name: jaeger-configuration-volume
              mountPath: /conf
          env:
            - name: SPAN_STORAGE_TYPE
              valueFrom:
                configMapKeyRef:
                  name: jaeger-configuration
                  key: span-storage-type
      volumes:
        - configMap:
            name: jaeger-configuration
            items:
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值