成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linkerd 2.10(Step by Step)之使用 Linkerd 進行分布式跟蹤

開發 前端 分布式
在實踐中使用分布式跟蹤可能很復雜, 為了從高層次解釋您得到了什么以及它是如何完成的, 我們整理了一個list of myths。

[[406175]]

Linkerd 2.10 中文手冊持續修正更新中:

https://linkerd.hacker-linner.com

在實踐中使用分布式跟蹤可能很復雜, 為了從高層次解釋您得到了什么以及它是如何完成的, 我們整理了一個list of myths。

本指南將引導您完成 emojivoto 的配置和啟用跟蹤。關于使用 Linkerd 使用分布式跟蹤的最佳方式的一些建議,請跳到最后。

要使用分布式跟蹤,您需要:

  • 安裝 Linkerd-Jaeger 擴展。
  • 修改您的應用程序以發出跨度。

在 emojivoto 的情況下,一旦所有這些步驟都完成,就會有一個看起來像這樣的拓撲:

先決條件

  • 要使用本指南,您需要在集群上安裝 Linkerd。如果您還沒有這樣做,請按照安裝 Linkerd 指南進行操作。

安裝 Linkerd-Jaeger 擴展

獲取分布式跟蹤設置的第一步是將 Linkerd-Jaeger 擴展安裝到您的集群上。這個擴展由一個收集器(collector)、一個 Jaeger 后端和一個 Jaeger-injector 組成。收集器消耗從網格和您的應用程序發出的跨度, 并將它們發送到 Jaeger 后端,后者存儲它們并提供儀表板以查看它們。Jaeger-injector 負責配置 Linkerd 代理以發出 span。

要安裝 Linkerd-Jaeger 擴展,請運行以下命令:

  1. linkerd jaeger install | kubectl apply -f - 

您可以通過運行以下命令來驗證 Linkerd-Jaeger 擴展是否已正確安裝:

  1. linkerd jaeger check 

安裝 Emojivoto

將 emojivoto 添加到您的集群并使用 Linkerd 代理注入它:

  1. linkerd inject https://run.linkerd.io/emojivoto.yml | kubectl apply -f - 

在進入下一步之前,請確保一切都已啟動并使用 kubectl 運行以下命令:

  1. kubectl -n emojivoto rollout status deploy/web 

修改應用

與服務網格的大多數功能不同,分布式跟蹤需要修改應用程序的源。跟蹤需要某種方式將傳入的請求與您的應用程序與傳出的請求綁定到相關服務。為此,將向每個請求添加一些標頭,其中包含跟蹤的唯一 ID。Linkerd 使用 b3 propagation 傳播格式將這些東西聯系在一起。

我們已經修改了 emojivoto 以使用此信息檢測其請求,此 commit 顯示了這是如何完成的。對于大多數編程語言,它只需要添加一個客戶端庫來處理這個問題。Emojivoto 使用 OpenCensus 客戶端,但也可以使用其他客戶端。

要在 emojivoto 中啟用跟蹤,請運行:

  1. kubectl -n emojivoto set env --all deploy OC_AGENT_HOST=collector.linkerd-jaeger:55678 

此命令將添加一個環境變量,使應用程序能夠傳播上下文并發出跨度。

探索 Jaeger

隨著 vote-bot 開始跟蹤每個請求,跨度現在應該出現在 Jaeger。要進入 UI,運行:

  1. linkerd jaeger dashboard 

 

您可以在下拉列表中搜索任何服務,然后單擊 Find Traces。vote-bot 是一個很好的入門方式。

單擊特定跟蹤將提供所有詳細信息,您將能夠看到每個代理的跨度!

該輸出中肯定有很多 linkerd-proxy 跨度。在內部,代理具有服務器端和客戶端。當請求通過代理時,由服務器接收,然后由客戶端發出。對于在兩個網狀 Pod 之間傳遞的單個請求,總共會有 4 個跨度。當請求遍歷該代理時,兩個將在源端,當遠程代理接收到請求時,兩個將在目標端。

此外,由于代理添加了應用元數據作為跟蹤屬性,用戶可以通過單擊度量表中的 Jaeger 圖標, 直接從 linkerd-web 儀表板直接跳轉到相關資源跟蹤,如下所示

清理

要進行清理,請通過運行以下命令卸載 Linkerd-Jaeger 擴展和 emojivoto:

  1. linkerd jaeger uninstall | kubectl delete -f - 
  2. kubectl delete ns emojivoto 

帶上你自己的 Jaeger

如果您有一個現有的 Jaeger 安裝, 您可以配置 OpenCensus 收集器向它發送跟蹤, 而不是 Linkerd-Jaeger 擴展中內置的 Jaeger 實例。

  1. linkerd jaeger install --set collector.jaegerAddr='http://my-jaeger-collector.my-jaeger-ns:14268/api/traces' | kubectl apply -f - 

也可以手動編輯 OpenCensus 配置以將其導出到它支持的任何后端。有關完整列表,請參閱 OpenCensus 文檔。

故障排除

我沒有看到代理的任何跨度

Linkerd 代理使用 b3 propagation 傳播格式。一些客戶端庫,例如 Jaeger,默認使用不同的格式。您需要將客戶端庫配置為使用 b3 格式讓代理參與跟蹤。

建議

Ingress

ingress 是分布式跟蹤的一個特別重要的組件,因為它創建每個跟蹤的根跨度, 并負責決定是否應該對該跟蹤進行采樣。讓 ingress 做出所有采樣決策可確保對整個軌跡進行采樣或不采樣, 并避免創建“部分軌跡(partial traces)”。

分布式跟蹤系統都依賴于服務來傳播有關從接收到的請求到發送的請求的當前跟蹤的元數據。這一元數據稱為跟蹤上下文,通常編碼在一個或多個請求標頭中。有許多不同的跟蹤上下文標頭格式,雖然我們希望生態系統最終會收斂于像 W3C tracecontext 跟蹤上下文這樣的開放標準, 但我們今天只使用 b3 format。作為最早廣泛使用的格式之一,它具有最廣泛的支持,尤其是在 Nginx 等入口中。

此參考架構包括一個簡單的 Nginx 配置,該配置對 50% 的跟蹤進行采樣并將跟蹤數據發送到 收集器(使用 Zipkin 協議)。任何入口控制器都可以在這里代替 Nginx 使用,只要它:

  • 支持概率采樣
  • 以 b3 格式編碼跟蹤上下文
  • 在 OpenCensus 收集器支持的協議中發出 span

如果使用 helm 安裝 ingress-nginx,您可以使用以下命令配置跟蹤:

  1. controller: 
  2.   config: 
  3.     enable-opentracing: "true" 
  4.     zipkin-collector-host: linkerd-collector.linkerd 

客戶端庫

雖然服務可以手動傳播跟蹤傳播標頭,但使用執行以下三件事的庫通常要容易得多:

  • 將跟蹤上下文從傳入請求頭傳播到傳出請求頭
  • 修改跟蹤上下文(即開始一個新的跨度)
  • 將此數據傳輸到跟蹤收集器

我們建議在您的服務中使用 OpenCensus 并配置它:

  • b3 propagation (這是默認設置)
  • the OpenCensus agent exporter

OpenCensus agent exporter 將通過 gRPC API 將跟蹤數據導出到 OpenCensus 收集器。如何配置 OpenCensus 的詳細信息會因語言而異,但有許多流行語言的指南。您還可以使用我們的示例應用程序 Emojivoto 在 Go 中查看端到端示例。

您可能會注意到 OpenCensus 項目處于維護模式并將成為 OpenTelemetry 的一部分。不幸的是,OpenTelemetry 尚未準備好投入生產,因此 OpenCensus 仍然是我們目前的建議。

也可以使用許多其他跟蹤客戶端庫。只需確保正在使用 b3 傳播格式, 并且客戶端庫可以以收集器已配置為接收的格式導出其跨度。

收集器: OpenCensus

OpenCensus collector 從 OpenCensus agent exporter 接收跟蹤數據, 并可能在將該數據發送到 Jaeger 之前進行轉換和過濾。將 OpenCensus exporter 發送到 OpenCensus collector 為我們提供了很大的靈活性:我們可以切換到 OpenCensus 支持的任何后端,而無需中斷應用程序。

后端: Jaeger

Jaeger 是使用最廣泛的跟蹤后端之一,并且有充分的理由:它易于使用并且在可視化跟蹤方面做得很好。但是,可以改用 OpenCensus 支持的任何后端。

Linkerd

如果您的應用程序注入了 Linkerd,Linkerd 代理將參與跟蹤并將跟蹤數據發送到 OpenCensus 收集器。這豐富了跟蹤數據,并允許您準確查看請求在代理和線路上花費的時間。

雖然 Linkerd 只能主動參與使用 b3 傳播格式的trace, 但 Linkerd 將始終透明地轉發未知的請求頭, 這意味著它永遠不會干擾使用其他傳播格式的 trace。

 

責任編輯:姜華 來源: 黑客下午茶
相關推薦

2021-06-22 06:24:57

Linkerd Ingress 流量網絡技術

2021-06-16 17:42:48

Linkerd 配置CPU

2021-06-17 06:20:43

Linkerd Kustomize網絡技術

2021-06-15 05:45:56

Linkerd annotations網絡技術

2021-06-22 06:16:24

Linkerd books webapp

2021-06-22 06:41:38

Linkerd 安裝多集群組件網絡技術

2021-06-17 06:13:29

Linkerd Prometheus 網絡技術

2021-06-24 07:20:21

Linked GitOps Argo CD

2021-06-15 05:52:33

Linkerd canary網絡技術

2021-06-16 06:31:55

Linkerd 2.1Step by SteWebhook TLS

2021-06-29 13:09:07

服務配置文件

2021-03-23 22:43:09

Grafana Tem分布式跟蹤開源

2022-09-04 21:17:03

高可用Linkerd

2022-08-21 07:17:16

LinkerdKubernetes服務網格

2021-12-08 17:54:55

架構控制平面

2011-04-19 14:02:09

SSAS

2010-09-08 09:41:03

私有云部署

2022-02-18 09:30:48

分布式Spring應用程序

2009-04-22 17:18:29

Vxworks驅動加載step by ste

2022-08-28 19:58:59

LinkerdKubernetes
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: a在线免费观看视频 | 国产精品久久久久久久久久久免费看 | 亚洲精品久久久一区二区三区 | 亚洲国产精品自拍 | 国产黑丝av | 九九热视频这里只有精品 | 99久久久99久久国产片鸭王 | 欧美一级二级在线观看 | 精品欧美一区二区中文字幕视频 | 亚洲综合色丁香婷婷六月图片 | 国产成人精品一区二区三 | 久久人人爽人人爽 | 久久久久久久97 | 一区二区三区四区在线播放 | 久久99精品视频 | 国产乱肥老妇国产一区二 | 特一级黄色毛片 | 日韩精品成人 | 亚洲大片在线观看 | 91精品久久久久久久久久 | 特黄特色大片免费视频观看 | 国产成人精品免费视频大全最热 | 日韩精品久久久 | 亚洲午夜小视频 | 黄色一级大片在线免费看产 | 国产区在线 | 亚洲精品99| 青青久在线视频 | 精品久久香蕉国产线看观看亚洲 | 日韩精品一区二区三区中文字幕 | 国产精品美女久久久久久久久久久 | 日韩不卡在线观看 | 国产精品一区二区三级 | 成人小视频在线观看 | 日韩成人影院在线观看 | 国产精品精品视频一区二区三区 | 成人国产在线视频 | 精品视频在线一区 | 欧美久久久久久久 | 精品1区2区3区 | 中文字幕免费 |