Knative 云原生应用开发指南

Version 0.11

调用链管理

阿里云链路追踪 Tracing Analysis 为分布式应用的开发者提供了完整的调用链路还原、调用请求量统计、链路拓扑、应用依赖分析等工具。本文介绍了如何在 Knative 上实现 Tracing 分布式追踪, 以帮助开发者快速分析和诊断 Knative 中部署的应用服务。

前提条件

  • 您已经成功创建一个 Kubernetes 集群,参见创建Kubernetes集群
  • 部署 Istio,参见部署Istio,这里需要注意以下几点:
    • Pilot 设置跟踪采样百分比,推荐设置大一些(如:100),便于数据采样 undefined

    • 启用阿里云链路追踪服务,查看 token 点击 on, 客户端采集工具选择 zipkin (目前仅支持使用 zipkin 的 /api/v1/spans 接口访问), 选择集群所在 Region 的接入点(推荐使用内网接入地址),以华南1 Region 为例如下: undefined

    • 选择启用链路追踪。设置链路追踪服务地址 undefined

  • 部署成功 Knative , 参见部署Knative
  • 部署成功 Serving 组件

调用链追踪

  1. 选择命名空间设置如下标签启用 Sidecar 自动注入:istio-injection=enabled。通过这种方式就注入了 Istio 的 envoy 代理(proxy)容器, Istio 的 envoy 代理拦截流量后会主动上报 trace 系统。以设置 default 命名空间为例:
kubectl label namespace default istio-injection=enabled
  1. 部署 Knative Service 服务。参考 Serving Hello World 章节
  2. 访问 Hello World 示例服务。
$ curl -H "Host: helloworld-go.default.example.com" http://112.124.XX.XX
Hello Go Sample v1!
  1. 登录阿里云链路追踪服务控制台, 选择应用列表,可以查看对应应用的 tracing 信息。 undefined
  2. 选择应用,点击查看应用详情,可以看到服务调用的平均响应时间。 undefined

总结

在 Knative 中,推荐开启阿里云链路追踪服务。通过 Tracing 不仅有助于复杂应用服务之间的问题排查及效率优化,同时也是 Knative 的最佳实践方式。