日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

云原生 - Istio可观察性之分布式跟踪(三)

發布時間:2023/12/4 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 云原生 - Istio可观察性之分布式跟踪(三) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:justmine
頭條號:大數據與云原生
微信公眾號:大數據與云原生
創作不易,在滿足創作共用版權協議的基礎上可以轉載,但請以超鏈接形式注明出處。
為了方便閱讀,微信公眾號已按分類排版,后續的文章將在移動端首發,想學習云原生相關知識,請關注我

一、回顧

云原生 - 體驗Istio的完美入門之旅(一)

云原生 - Why is istio(二)

[請持續關注...]

如前所述,業務微服務化后,每個單獨的微服務可能會有很多副本,多個版本,這么多微服務之間的相互調用、管理和治理非常復雜,Istio統一封裝了這塊內容在代理層,最終形成一個分布式的微服務代理集群(服務網格)。管理員通過統一的控制平面來配置整個集群的應用流量、安全規則等,代理會自動從控制中心獲取動態配置,根據用戶的期望來改變行為。

話外音:借著微服務和容器化的東風,傳統的代理搖身一變,成了如今炙手可熱的服務網格。

Istio就是上面service mesh架構的一種實現,通過代理(默認是envoy)全面接管服務間通信,完全支持主流的通信協議HTTP/1.1,HTTP/2,gRPC ,TCP等;同時進一步細分控制中心,包括Pilot、Mixer、Citadel等。

話外音:后面系列會詳細介紹控制中心的各個組件,請持續關注。

整體功能描述如下:

  • 連接(Connect)

    控制中心從集群中獲取所有微服務的信息,并分發給代理,這樣代理就能根據用戶的期望來完成服務之間的通信(自動地服務發現、負載均衡、流量控制等)。

  • 保護(Secure)

    所有的流量都是通過代理,當代理接收到未加密流量時,可以自動做一次封裝,把它升級成安全的加密流量。

  • 控制(Control)

    用戶可以配置各種規則(比如 RBAC 授權、白名單、rate limit 、quota等),當代理發現服務之間的訪問不符合這些規則,就直接拒絕掉。

  • 觀察(Observe)

    所有的流量都經過代理,因此代理對整個集群的訪問情況知道得一清二楚,它把這些數據上報到控制中心,那么管理員就能觀察到整個集群的流量情況。

二、前言

作為服務網格的一個完整解決方案,為了追求完美,Istio高度抽象并設計了一個優雅的架構,涉及到眾多的組件,它們分工協作,共同組成了完整的控制平面。為了更好地學習如何運用Istio的連接、安全、控制、可觀察性全面地治理分布式微服務應用,先從戰略上鳥瞰Istio,進一步從戰術上學習Istio將更加容易,故作者決定從可觀察性開始Istio的布道,先體驗,再實踐,最后落地,一步步愛上Istio,愛上云原生,充分利用云資源的優勢,解放應用開發工程師的雙手,使他們僅僅關注業務實現,讓專業的人做專業的事,為企業創造更大的價值。

三、Why - 為什么需要分布式跟蹤?

當業務微服務化后,一次業務請求,可能會涉及到多個微服務,分布式跟蹤可以對跨多個分布式服務網格的1個請求進行追蹤分析,并通過可視化的方式深入地了解請求的延遲,序列化和并發,充分地了解服務流量實況,從而快速地排查和定位問題。

四、What - Istio的分布式跟蹤?

概述

Istio利用Envoy 的分布式追蹤功能提供了開箱即用的追蹤集成。確切地說,Istio 提供了安裝各種各種追蹤后端服務的選項,并且通過配置代理來自動發送追蹤span到追蹤后端服務。

話外音:Istio目前支持的追蹤后端服務包括Zipkin、Jaeger、LightStep。

話外音:Istio分布式追蹤的整體功能,請參考文末鏈接。

采樣率

默認情況下,使用demo配置文件安裝時,Istio會捕獲所有請求的追蹤信息,即每次訪問?/productpage?接口時,都可以在dashboard中看到一條相應的追蹤信息。此采樣頻率適用于測試或低流量網格。對于高流量網格(如:生產環境),請通過下面的兩種方法之一來降低追蹤采樣頻率:

  • 在安裝時,使用可選項?values.pilot.traceSampling?來設置采樣百分比。

  • 在運行時,通過編輯?istio-pilot?deployment并通過以下步驟來改變環境變量:

    root@just:~# kubectl -n istio-system get deploy istio-pilot -o yaml apiVersion: extensions/v1beta1 kind: Deployment [...] name: istio-pilot namespace: istio-system [...] env: - name: PILOT_TRACE_SAMPLINGvalue: "1" [...]

Istio默認的追蹤采樣率為1%,即100個請求生成一次追蹤報告,有效值的范圍從 0.0 到100.0,精度為 0.01。

五、How - Istio如何配置分布式跟蹤?

本篇以zipkin為例,體驗Istio的分布式追蹤功能。

準備工作

請先部署Istio系統和在線書店例子,詳情請參考:云原生 - 體驗Istio的完美入門之旅(一)。

部署

istioctl manifest apply --set values.tracing.enabled=true \ --set values.tracing.provider=zipkin

模擬請求

要查看追蹤數據,必須向服務發送請求。請求的數量取決于Istio的追蹤采樣率,默認為1%,即在第一個追蹤報告可見之前,需要發送至少100個請求。

使用如下命令向productpage服務發送200個請求:

for i in `seq 1 200`; do curl -s -o /dev/null http://$GATEWAY_URL/productpage; done

查看追蹤報告

概覽

從上可以看出,產生了兩份追蹤報告,完全符合追蹤采集率。

請求完整鏈路

Span詳情

關于追蹤報告的分析,這里就不贅述了。

六、總結

本篇先回顧了微服務架構的痛點,以及服務網格的本質,然后大致概述了Istio的整體功能,最后從why、what、how的角度體驗了Istio的可觀察性特性。除了分布式跟蹤,Istio的可觀察性還包括:日志、監控,敬請期待,未完待續。

七、最后

如果有什么疑問和見解,歡迎評論區交流。

如果覺得本篇有幫助的話,歡迎推薦轉發

如果覺得本篇非常不錯的話,可以請作者吃個雞腿,創作的源泉將如滔滔江水連綿不斷,嘿嘿。

八、參考

https://istio.io/docs/tasks/observability/distributed-tracing/overview

https://istio.io/docs/tasks/observability/distributed-tracing/zipkin

https://www.envoyproxy.io/docs/envoy/v1.12.0/intro/arch_overview/observability/tracing

總結

以上是生活随笔為你收集整理的云原生 - Istio可观察性之分布式跟踪(三)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。