istio kiali jaeger 關聯

總目錄索引:istio從入門到放棄系列

1、jaeger 介紹

jaeger 官網:https://www.jaegertracing.io/

jaeger 是 Uber 開源的分佈式跟蹤系統,用於微服務的監控和全鏈路跟蹤,其設計思想來自於 Dapper 和 zipkin。jaeger 特徵包括:

  1. 分佈式上下文傳播

  2. 分佈式事務監控

  3. Root 原因分析

  4. 服務依賴性分析

  5. 性能/延遲優化

2、jaeger 安裝

如果你使用 istioctl profile demo 安裝 istio 的話,jaeger 默認就是安裝好的

image-20200420150548367.png

爲了可以將 jaeger 暴露在 k8s 集羣外訪問,需要將 jaeger-query 的 ClusterIP 服務類型更改爲 NodePort。執行語句如下

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

3、kiali 關聯 jaeger

   kiali 是可視化服務網格組件,截圖如下:

image-20200420150839695.png

點擊上面箭頭 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

image-20200420163511342.png

編輯 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

image-20200420163615043.png

再次訪問 kiali,發現 Distributed Tracing 鏈接可以訪問,並且可以打開 jaeger 頁面,如下圖所示:

image-20200420151945553.png

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 菜單標籤:

image-20200420152203658.png

雙擊 productpage 進入微服務,然後選擇標籤頁 Traces,再點擊藍色圓圈(trace 點)後會顯示該 tracing 的路徑信息,然後再選擇鏈接(View Trace in Tracing):

image-20200420163709815.png

點擊後的 jaeger 截圖如下:

image-20200420163759613.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章