istio获取外部连接的调用链

问题

我在kubernetes搭建istio,启用trace(jeager+zipkin),怎么获取访问外部mysql或者外部网页的调用链?

环境

istio: 1.2,
采样比: 100

详细描述

我在一个应用里面开启了sidecar,启用了trace,应用里面有 curl https://www.baidu.com 以及curl k8s里面的一个内部服务,内部服务有,外部服务没有生成调用链,而且调用链也不再一个里面

理解(我的)

内部服务由于在istio route里面能找到(istioctl pc route),所以调用能生成

结果

想得到外部服务的调用链,我应该怎么做

你好, service entry 应该可以解决你的问题
具体可参考官方关于service entry 的文档

ServiceEntry

ServiceEntry 用于将附加条目添加到 Istio 内部维护的服务注册表中。 它最常用于对访问网格外部依赖的流量进行建模,例如访问 Web 上的 API 或遗留基础设施中的服务。 由于 ServiceEntry 配置只是将服务添加到网格内部的服务注册表中,因此它可以像注册表中的任何其他服务一样,与 VirtualService 和/或 DestinationRule 一起使用。

例如配置一个_httpbin_的外部服务:

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: httpbin-egress-rule
  namespace: istioegress
spec:
  hosts:
  - httpbin.org
  ports:
  - name: http-80
    number: 80
    protocol: http