擴展性

WebAssembly 是一種沙箱技術,可用於擴展 Istio 代理程式 (Envoy)。Proxy-Wasm 沙箱 API 取代 Mixer 作為 Istio 中的主要擴展機制。

WebAssembly 沙箱目標

  • 效率 - 擴展會增加低延遲、CPU 和記憶體開銷。
  • 功能 - 擴展可以強制執行原則、收集遙測資料,並執行承載變更。
  • 隔離 - 一個外掛程式中的程式設計錯誤或當機不會影響其他外掛程式。
  • 設定 - 外掛程式是使用與其他 Istio API 一致的 API 設定的。擴展可以動態設定。
  • 操作員 - 擴展可以以金絲雀方式部署,並以僅記錄、故障開啟或故障關閉的方式部署。
  • 擴展開發人員 - 外掛程式可以使用多種程式設計語言編寫。

影片演講是關於 WebAssembly 整合架構的簡介。

高階架構

Istio 擴展 (Proxy-Wasm 外掛程式) 有多個元件

  • 用於建置過濾器 Proxy-Wasm 外掛程式的過濾器服務提供者介面 (SPI)
  • 嵌入在 Envoy 中的 沙箱 V8 Wasm 執行階段。
  • 用於標頭、尾部和中繼資料的 主機 API
  • 用於 gRPC 和 HTTP 呼叫的 呼叫 API
  • 用於指標和監控的 統計資料和記錄 API
Extending Istio/Envoy
擴展 Istio/Envoy

範例

可以在此處找到過濾器的 C++ Proxy-Wasm 外掛程式範例。您可以遵循本指南,使用 C++ 實作 Wasm 擴展。

生態系統

這個資訊對您有幫助嗎?
您有任何改進建議嗎?

感謝您的回饋!