总目录索引:istio从入门到放弃系列
1、jaeger 介绍
jaeger 官网:https://www.jaegertracing.io/
jaeger 是 Uber 开源的分布式跟踪系统,用于微服务的监控和全链路跟踪,其设计思想来自于 Dapper 和 zipkin。jaeger 特征包括:
分布式上下文传播
分布式事务监控
Root 原因分析
服务依赖性分析
性能/延迟优化
2、jaeger 安装
如果你使用 istioctl profile demo 安装 istio 的话,jaeger 默认就是安装好的
为了可以将 jaeger 暴露在 k8s 集群外访问,需要将 jaeger-query 的 ClusterIP 服务类型更改为 NodePort。执行语句如下
kubectl patch svc -n istio-system jaeger-query -p '{"spec":{"type": "NodePort"}}'
3、kiali 关联 jaeger
kiali 是可视化服务网格组件,截图如下:
点击上面箭头 Distributed Tracing 链接可以打开 jaeger。如果访问不到,说明你本地的浏览器并不能直接访问到 kiali 设置的 jaeger 外部链接。
4、设置 kiali jaeger 外部链接地址
编辑 kiali configmap:
kubectl edit configmap -n istio-system kiali
在 external_services.tracing.url 内容下添加 jaeger 外部链接,链接地址就是 istio-system 命名空间下 jaeger-query 服务的宿主机地址和 nodeport
编辑 kiali configmap 后,需要删除并重新生成 kiali pod,好让配置挂载生效,执行语句如下:
kubectl delete pod -n istio-system $(kubectl get pod -n istio-system | grep -i kiali | awk '{print $1}')
执行完后,再次查看 kiali pod,发现 url 值已经生效:
kubectl exec -it -n istio-system kiali-57fb5bb5c6-rvqcm -- cat /kiali-configuration/config.yaml
再次访问 kiali,发现 Distributed Tracing 链接可以访问,并且可以打开 jaeger 页面,如下图所示:
5、kiali jaeger 流量关联
以上的操作中通过 kiali 可以打开 jaeger 了,还可以通过实际流量将 kiali 和 jaeger 关联起来,首先打入一些流量,这里采用的是 istio 的官方用例 bookinfo:
while true; do curl http://10.43.16.187/productpage; done #IP是istio-ingressgateway的Cluster IP
访问 kiali 的 service 菜单标签:
双击 productpage 进入微服务,然后选择标签页 Traces,再点击蓝色圆圈(trace 点)后会显示该 tracing 的路径信息,然后再选择链接(View Trace in Tracing):
点击后的 jaeger 截图如下:
来源:oschina
链接:https://my.oschina.net/u/4337873/blog/3288506