文档首页/ 应用服务网格 ASM/ 常见问题/ 流量监控/ 如何对接Jaeger/Zipkin查看调用链
更新时间:2024-10-08 GMT+08:00

如何对接Jaeger/Zipkin查看调用链

ASM支持向Jaeger/Zipkin导出追踪数据,导出后可在Jaeger/Zipkin界面查看应用的调用链信息。下文以对接zipkin为例介绍完整的使用流程。

前提条件

已明确待安装zipkin的集群和命名空间。

操作步骤

  1. 创建zipkin deploy。

    登录云容器引擎CCE界面,依次单击“集群名称-工作负载-无状态工作负载-YAML创建”,复制粘贴下面的内容到YAML创建输入框中。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: zipkin
      namespace: monitoring
    spec:
      progressDeadlineSeconds: 600
      replicas: 1
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          app.kubernetes.io/instance: zipkin
          app.kubernetes.io/name: zipkin
      strategy:
        rollingUpdate:
          maxSurge: 25%
          maxUnavailable: 25%
        type: RollingUpdate
      template:
        metadata:
          labels:
            app.kubernetes.io/instance: zipkin
            app.kubernetes.io/name: zipkin
        spec:
          automountServiceAccountToken: false
          containers:
          - env:
            - name: STORAGE_TYPE
              value: mem
            image: openzipkin/zipkin-slim:latest                                  # 社区zipkin镜像地址,请自行确保网络可达
            imagePullPolicy: IfNotPresent
            name: zipkin
            readinessProbe:
              failureThreshold: 3
              httpGet:
                path: /health
                port: 9411
                scheme: HTTP
              initialDelaySeconds: 5
              periodSeconds: 5
              successThreshold: 1
              timeoutSeconds: 1
            resources:
              limits:
                cpu: 500m
                memory: 4Gi
              requests:
                cpu: 100m
                memory: 128Mi
            securityContext:
              readOnlyRootFilesystem: true
              runAsNonRoot: true
              runAsUser: 1000
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
          terminationGracePeriodSeconds: 30

    预期结果:

    创建完成后会在无状态负载页面新增一条名称为zipkin的记录,其状态变为运行中表示zipkin已成功安装到该集群的monitoring命名空间下。

    也可参考zipkin官网资料自行完成安装。

  2. 创建负载均衡服务。

    在集群详情页面,单击“服务-服务-创建服务”,如下设置参数:

    • Service名称:自定义填写,此处以zipkin为例。
    • 访问类型:选择负载均衡。
    • 选择器:单击“引用负载标签”,自动添加。
    • 端口配置:配置容器端口和服务端口,此处以9411为例。

    其他参数使用默认值即可。

    预期结果:

    设置完成后会在服务页面增加一条服务名称为zipkin的记录,如下:

    如果不需要访问Zipkin UI,访问类型可选择集群内访问。

  3. 购买网格,配置对接Zipkin服务。

    登录应用服务网格页面,单击“购买网格”,选择步骤1的集群,“可观测性配置--调用链”启用调用链,选择“第三方Jaeger/Zipkin服务”,填写服务地址和服务端口,其他参数根据需要自行填写。

    服务地址为步骤2中所创建服务的<服务名称>.<命名空间>.svc.cluster.local。

    服务端口为步骤2创建负载均衡服务中填写的服务端口,本例中为9411。

  4. 参考一键创建Bookinfo应用部署体验服务,部署完成后应用服务网格的服务页面会展示如下几个服务。

  5. 访问productpage触发产生调用链数据。

    进入ASM网格详情页,单击服务管理页面productpage服务的外部访问地址http://ip:port/productpage。

  6. 在Zipkin客户端页面查看调用链信息。Zipkin 客户端登录的地址格式如下:http://Zipkin服务的负载均衡公网 IP:Zipkin服务的访问端口/zipkin/ 。

    Zipkin 客户端登录的IP地址和端口可从如下路径获取:

    • IP地址:进入安装Zipkin集群详情页面,“服务-服务”页面中Zipkin服务的负载均衡公网 IP。
    • 端口:“服务-服务”页面中Zipkin服务的访问端口。