1.19.5. ServiceMeshExtension リファレンス
ServiceMeshExtension API には、WebAssembly フィルターを介して Istio プロキシーによって提供される機能を拡張するメカニズムがあります。WebAssembly 拡張機能の作成には 2 つの部分があります。
- proxy-wasm API を公開する SDK を使用して拡張機能を記述し、それを WebAssembly モジュールにコンパイルします。
- コンテナーにパッケージ化します。
新しい WebAssembly 拡張機能を作成するときは、WasmPlugin を使用してください。ServiceMeshExtension は、Red Hat OpenShift Service Mesh バージョン 2.2 で非推奨になり、今後のリリースで削除される予定です。
フィールド | 説明 |
---|---|
metadata.namespace |
|
spec.workloadSelector |
|
spec.config | これは、拡張に転送される構造化フィールドで、セマンティクスはデプロイしている拡張に依存します。 |
spec.image | 拡張を保持するイメージを参照するコンテナーイメージ URI です。 |
spec.phase |
このフェーズでは、認証、認可、メトリクスの生成などの既存の Istio 機能に関連して、拡張が挿入されるフィルターチェーン内の場所を決定します。有効な値は、PreAuthN、PostAuthN、PreAuthZ、PostAuthZ、PreStats、PostStats です。このフィールドは、拡張の |
spec.priority |
同じ |
1.19.5.1. ServiceMeshExtension
リソースのデプロイ
Red Hat OpenShift Service Mesh 拡張機能は ServiceMeshExtension
リソースを使用して有効にできます。この例では、istio-system
が Service Mesh コントロールプレーンプロジェクトの名前です。
新しい WebAssembly 拡張機能を作成するときは、WasmPlugin を使用してください。ServiceMeshExtension は、Red Hat OpenShift Service Mesh バージョン 2.2 で非推奨になり、今後のリリースで削除される予定です。
Rust SDK を使用してビルドされる完全なサンプルについては、header-append-filter を参照してください。これは、拡張の config
フィールドから取られた名前および値で HTTP 応答に 1 つ以上のヘッダーを追加する単純なフィルターです。以下のスニペットの設定例を参照してください。
手順
以下のリソース例を作成します。
ServiceMeshExtension リソース拡張機能の例
apiVersion: maistra.io/v1 kind: ServiceMeshExtension metadata: name: header-append namespace: istio-system spec: workloadSelector: labels: app: httpbin config: first-header: some-value another-header: another-value image: quay.io/maistra-dev/header-append-filter:2.1 phase: PostAuthZ priority: 100
以下のコマンドを使用して
extension.yaml
ファイルを適用します。$ oc apply -f <extension>.yaml