1.19. 拡張
WebAssembly 拡張機能を使用して、Red Hat Service Mesh プロキシーに直接新しい機能を追加できます。これにより、お使いのアプリケーションから、さらに一般的な機能を移動して、単一の言語で実装して、WebAssembly bytecode にコンパイルできます。
WebAssembly 拡張機能は、IBM Z および IBM Power ではサポートされていません。
1.19.1. WebAssembly モジュールの概要
WebAssembly モジュールは、プロキシーなどの多くのプラットフォームで実行でき、これには、幅広い言語サポート、高速実行、および sandboxed-by-default (デフォルトでサンドボックス化される) セキュリティーモデルが含まれます。
Red Hat OpenShift Service Mesh 拡張機能として Envoy HTTP フィルター を使用でき、幅広い機能を提供します。
- 要求と応答の本体とヘッダーの操作
- 認証やポリシーのチェックなど、要求パスにないサービスへの帯域外 HTTP 要求
- 相互に通信するフィルター用のサイドチャネルデータストレージおよびキュー
新しい WebAssembly 拡張機能を作成するときは、WasmPluginAPI を使用してください。ServiceMeshExtension API は、Red Hat OpenShift Service Mesh バージョン 2.2 で非推奨になり、今後のリリースで削除される予定です。
Red Hat OpenShift Service Mesh 拡張機能の作成には 2 つの部分があります。
- proxy-wasm API を公開する SDK を使用して拡張機能を記述し、それを WebAssembly モジュールにコンパイルする必要があります。
- 次に、モジュールをコンテナーにパッケージ化する必要があります。
サポートされる言語
WebAssembly バイトコードにコンパイルする言語を使用して Red Hat OpenShift Service Mesh 拡張を作成できますが、以下の言語には proxy-wasm API を公開する既存の SDK があるため、これを直接使用できます。
言語 | 保守管理者 | リポジトリー |
---|---|---|
AssemblyScript | solo.io | |
C++ | proxy-wasm チーム (Istio コミュニティー) | |
Go | tetrate.io | |
Rust | proxy-wasm チーム (Istio コミュニティー) |