系列文章:


总目录索引:九析带你轻松完爆 istio 服务网格系列教程

目录

1 前言

2 邀约

3 jaeger 介绍

4 jaeger 安装

5 jaeger 配置

6 kiali 关联 jaeger

7 设置 kiali jaeger 外部链接地址

8 kiali jaeger 流量关联


1 前言

        如果你对博客有任何疑问,请告诉我。第十六章 九析带你轻松完爆 service mesh - istio kiali jaeger 关联_第1张图片


2 邀约

        你可以从 b 站搜索 “九析”,获取免费的、更生动的视频资料:第十六章 九析带你轻松完爆 service mesh - istio kiali jaeger 关联_第2张图片


3 jaeger 介绍

        jaeger 官网请点击

        jaeger 是 Uber 开源的分布式跟踪系统,用于微服务的监控和全链路跟踪,其设计思想来自于 Dapper 和 zipkin。jaeger 特征包括:

分布式上下文传播

分布式事务监控

Root 原因分析

服务依赖性分析

性能/延迟优化

        本博客主要介绍将 istio、kiali、jaeger 关联在一起形成一个统一的整体。istio 版本采用的是 1.5.0。有关 istio 和 kiali 组件如何安装和使用,请参考本人的连载博客《轻松完爆 istio 系列》。如果你觉得不过瘾,也可以看我的免费视频,相信你会听得很开心。


4 jaeger 安装

        如果你使用 istioctl profile demo 安装 istio 的话,jaeger 默认就是安装好的。你可以参考《轻松完爆 istio 安装》轻松完爆 jaeger 的安装。

        安装后的截图如下:第十六章 九析带你轻松完爆 service mesh - istio kiali jaeger 关联_第3张图片


5 jaeger 配置

        为了可以将 jaeger 暴露在 k8s 集群外访问,需要将 jaeger-query 的 ClusterIP 服务类型更改为 NodePort。执行语句如下,执行结果如上截图所示:

kubectl patch svc -n istio-system jaeger-query -p '{"spec":{"type": "NodePort"}}'


6 kiali 关联 jaeger

        kiali 是可视化服务网格组件,截图如下:第十六章 九析带你轻松完爆 service mesh - istio kiali jaeger 关联_第4张图片

        点击上面箭头 Distributed Tracing 链接可以打开 jaeger。如果访问不到,说明你本地的浏览器并不能直接访问到 kiali 设置的 jaeger 外部链接。


7 设置 kiali jaeger 外部链接地址

        编辑 kiali configmap:

kubectl edit configmap -n istio-system kiali

        在 external_services.tracing.url 内容下添加 jaeger 外部链接,链接地址就是 istio-system 命名空间下 jaeger-query 服务的宿主机地址和 nodeport。第十六章 九析带你轻松完爆 service mesh - istio kiali jaeger 关联_第5张图片

        添加内容如下截图所示:第十六章 九析带你轻松完爆 service mesh - istio kiali jaeger 关联_第6张图片

        编辑 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 值已经生效:

# 注意 kiali pod 根据自己情况填写,不要直接照抄哥的

kubectl exec -it -n istio-system kiali-76f556db6d-88vtd -- cat /kiali-configuration/config.yaml

        命令直接结果如下图所示:第十六章 九析带你轻松完爆 service mesh - istio kiali jaeger 关联_第7张图片

        再次访问 kiali,发现 Distributed Tracing 链接可以访问,并且可以打开 jaeger 页面,如下图所示:第十六章 九析带你轻松完爆 service mesh - istio kiali jaeger 关联_第8张图片


8 kiali jaeger 流量关联

        以上的操作中通过 kiali 可以打开 jaeger 了,还可以通过实际流量将 kiali 和 jaeger 关联起来,首先打入一些流量,这里采用的是 istio 的官方用例 bookinfo:

while true; do curl 10.98.126.37/productpage; done

        访问 kiali 的 service 菜单标签:第十六章 九析带你轻松完爆 service mesh - istio kiali jaeger 关联_第9张图片

        双击 productpage 进入微服务,然后选择标签页 Traces,再点击蓝色圆圈(trace 点)后会显示该 tracing 的路径信息,然后再选择链接(View Trace in Tracing):第十六章 九析带你轻松完爆 service mesh - istio kiali jaeger 关联_第10张图片

        点击后的 jaeger 截图如下:第十六章 九析带你轻松完爆 service mesh - istio kiali jaeger 关联_第11张图片

        自此,九析带你轻松完爆 istio、kiali、jaeger 的关联。