接下來講講Istio的架構及核心組件。
Istio控制平面的安裝非常簡單,比想象中的更簡單。
Istio 1.4版本中,Envoy代理在每次請求后都調用Mixer的API來發送遙測數據,數據主要包括請求的來源和目的地址、來源和目的負載的ID(K8SPODID)等。Mixer還會從K8S中獲取一些元數據,經整合處理后再發給Prometheus。盡管Envoy代理會緩存數據,但這種架構依然會占用很大的資源消耗。Envoy會消耗很多的CPU和內存,同時還會帶來很高的延遲。
為了降低Envoy的資源消耗,更為了降低所增加的網絡延遲,遙測數據收集架構被重新設計。Istio TelemetryV2 使用兩個Envoy WASM插件來實現原本在Mixer實現的遙測數據收集功能。根據最新的Istio文檔,V2版本中增加的網絡延遲由之前的7ms下降到了3.3ms,而且資源消耗下降了50%。
Istio社區使用Google的V8引擎為Envoy實現了一個WebAssembly運行時。Envoy有了WASM插件機制后,開發人員可以為Envoy采用任何語言編寫插件,然后配置Envoy去執行插件。V2版本的實現采用了兩個定制插件,metadata-exchange和stats。metadata-exchange插件用於獲取一請求的連接的元數據;Stats插件則將請求的遙測數據保存到Envoy統計子系統並能被Prometheus獲取到。
2020年4月23日在線分享視頻:https://v.qq.com/x/page/x0956onffge.html
PPT下載:關注本公眾號,在后台輸入 Istio原理與實踐,就可以獲得下載鏈接。
感謝您的閱讀,歡迎關注我的微信公眾號: