如何对接Jaeger/Zipkin查看调用链
ASM支持向Jaeger/Zipkin导出追踪数据,导出后可在Jaeger/Zipkin界面查看应用的调用链信息。下文以对接zipkin为例介绍完整的使用流程。
前提条件
已明确待安装zipkin的集群和命名空间。
操作步骤
- 创建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官网资料自行完成安装。
- 创建负载均衡服务。
在集群详情页面,单击“服务-服务-创建服务”,如下设置参数:
- Service名称:自定义填写,此处以zipkin为例。
- 访问类型:选择负载均衡。
- 选择器:单击“引用负载标签”,自动添加。
- 端口配置:配置容器端口和服务端口,此处以9411为例。
其他参数使用默认值即可。
预期结果:
设置完成后会在服务页面增加一条服务名称为zipkin的记录,如下:
如果不需要访问Zipkin UI,访问类型可选择集群内访问。
- 购买网格,配置对接Zipkin服务。
登录应用服务网格页面,单击“购买网格”,选择步骤1的集群,“可观测性配置--调用链”启用调用链,选择“第三方Jaeger/Zipkin服务”,填写服务地址和服务端口,其他参数根据需要自行填写。
- 参考一键创建Bookinfo应用部署体验服务,部署完成后应用服务网格的服务页面会展示如下几个服务。
- 访问productpage触发产生调用链数据。
进入ASM网格详情页,单击服务管理页面productpage服务的外部访问地址http://ip:port/productpage。
- 在Zipkin客户端页面查看调用链信息。Zipkin 客户端登录的地址格式如下:http://Zipkin服务的负载均衡公网 IP:Zipkin服务的访问端口/zipkin/ 。
Zipkin 客户端登录的IP地址和端口可从如下路径获取:
- IP地址:进入安装Zipkin集群详情页面,“服务-服务”页面中Zipkin服务的负载均衡公网 IP。
- 端口:“服务-服务”页面中Zipkin服务的访问端口。