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