Jaeger基於分散式的架構設計,主要包含以下幾個元件:

Jaeger Client,負責在客戶端收集跟蹤資訊。
Jaeger Agent,負責和客戶端通訊,把收集到的追蹤資訊上報個收集器 Jaeger Collector
Jaeger Colletor把收集到的資料存入資料庫或者其它儲存器
Jaeger Query 負責對追蹤資料進行查詢
Jaeger UI負責使用者互動

這個架構很像ELK,Collector之前類似Logstash負責採集資料,Query類似Elastic負責搜尋,而UI類似Kibana負責使用者介面和互動。這樣的分散式架構使得Jaeger的擴充套件性更好,可以根據需要,構建不同的部署。

Jaeger作為分散式追蹤的後起之秀,隨著雲原生和K8s的廣泛採用,正變得越來越流行。利用官方給出的K8s部署模版,使用者可以快速的在自己的k8s叢集上部署Jaeger。

Jaeger的各元件關係如下圖所示

[root@localhost kubernetes]# git clone https://github.com/jaegertracing/jaeger-kubernetes
Cloning into 'jaeger-kubernetes'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 449 (delta 0), reused 1 (delta 0), pack-reused 446
Receiving objects: 100% (449/449), 155.18 KiB | 0 bytes/s, done.
Resolving deltas: 100% (194/194), done.

編輯設定檔 如果是local測試改成NodePort

/root/kubernetes/jaeger-kubernetes/all-in-one/jaeger-all-in-one-template.yml

套用設定 kubectl create -f ./all-in-one/jaeger-all-in-one-template.yml

[root@localhost all-in-one]# kubectl create -f jaeger-all-in-one-template.yml
deployment.extensions/jaeger created
service/jaeger-query created
service/jaeger-collector created
service/jaeger-agent created
service/zipkin created

使用kubectl get svc 查看服務的Port

服務port是jaeger-query NodePort 10.100.198.65 <none> 80:31100/TCP

開啟瀏覽器 http://192.168.0.218:31100

點選請求可以查詢

 

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料