拡張性
WebAssemblyは、Istioプロキシ(Envoy)を拡張するために使用できるサンドボックス化技術です。Proxy-WasmサンドボックスAPIは、Istioにおける主要な拡張メカニズムとしてMixerに取って代わりました。
WebAssemblyサンドボックスの目標
- 効率性 - 拡張は、低レイテンシ、CPU、およびメモリオーバーヘッドを追加します。
- 機能 - 拡張は、ポリシーの適用、テレメトリの収集、ペイロードの変更を実行できます。
- 分離 - 1つのプラグインのプログラミングエラーやクラッシュが、他のプラグインに影響を与えることはありません。
- 構成 - プラグインは、他のIstio APIと整合性のあるAPIを使用して構成されます。拡張は動的に構成できます。
- オペレーター - 拡張は、カナリアリリースとして、ログのみ、フェイルオープン、またはフェイルクローズとしてデプロイできます。
- 拡張開発者 - プラグインは、複数のプログラミング言語で記述できます。
このビデオトークは、WebAssembly統合のアーキテクチャに関する紹介です。
ハイレベルアーキテクチャ
Istio拡張機能(Proxy-Wasmプラグイン)は、いくつかのコンポーネントで構成されています。
- フィルタサービスプロバイダインターフェース(SPI) フィルタ用のProxy-Wasmプラグインを構築するためのインターフェースです。
- サンドボックス Envoyに組み込まれたV8 Wasmランタイムです。
- ホストAPI ヘッダー、トレーラー、メタデータのためのAPIです。
- コールアウトAPI gRPCおよびHTTP呼び出しのためのAPIです。
- 統計とロギングAPI メトリクスとモニタリングのためのAPIです。
例
フィルタ用のC++ Proxy-Wasmプラグインの例はこちらにあります。C++でWasm拡張機能を実装するには、このガイドに従ってください。