2.21.5. ServiceMeshExtension リファレンス


ServiceMeshExtension API には、WebAssembly フィルターを介して Istio プロキシーによって提供される機能を拡張するメカニズムがあります。WebAssembly 拡張機能の作成には 2 つの段階があります。

  1. proxy-wasm API を公開する SDK を使用して拡張機能を記述し、それを WebAssembly モジュールにコンパイルします。
  2. コンテナーにパッケージ化します。
注記

新しい WebAssembly 拡張機能を作成するときは、WasmPlugin API を使用してください。Red Hat OpenShift Service Mesh バージョン 2.2 で非推奨となった ServiceMeshExtension API が、Red Hat OpenShift Service Mesh バージョン 2.3 で削除されました。

Expand
表2.20 ServiceMeshExtension フィールドの参照情報
フィールド説明

metadata.namespace

ServiceMeshExtension ソースの metadata.namespace フィールドには特殊なセマンティクスが含まれます。これが Control Plane Namespace と等しい場合、拡張はその workloadSelector の値に一致する Service Mesh のすべてのワークロードに適用されます。これは、その他の Mesh namespace にデプロイされる場合に、同じ namespace のワークロードにのみ適用されます。

spec.workloadSelector

spec.workloadSelector フィールドには、Istio Gateway リソースspec.selector フィールドと同じセマンティクスが含まれます。これは Pod ラベルに基づいてワークロードに一致します。workloadSelector の値が指定されていない場合、拡張は namespace のすべてのワークロードに適用されます。

spec.config

これは、拡張に転送される構造化フィールドで、セマンティクスはデプロイしている拡張に依存します。

spec.image

拡張を保持するイメージを参照するコンテナーイメージ URI です。

spec.phase

このフェーズでは、認証、認可、メトリクス生成などの既存の Istio 機能に関連して、フィルターチェーンのどこに拡張を注入するかを決定します。有効な値は、PreAuthN、PostAuthN、PreAuthZ、PostAuthZ、PreStats、PostStats です。このフィールドは、拡張の manifest.yaml ファイルで設定される値にデフォルト設定されますが、ユーザーが上書きできます。

spec.priority

同じ spec.phase の値を持つ複数の拡張が同じワークロードインスタンスに適用される場合、spec.priority によって実行の順序が決定されます。優先度が高い拡張が最初に実行されます。これにより、相互に依存する拡張が使用可能になります。このフィールドは、拡張の manifest.yaml ファイルで設定される値にデフォルト設定されますが、ユーザーが上書きできます。

2.21.5.1. ServiceMeshExtension リソースのデプロイ

ServiceMeshExtension リソースを使用して、Red Hat OpenShift Service Mesh 拡張機能を有効にできます。この例では、istio-system が Service Mesh コントロールプレーンプロジェクトの名前となります。

注記

新しい WebAssembly 拡張機能を作成するときは、WasmPlugin API を使用してください。ServiceMeshExtension API は、Red Hat OpenShift Service Mesh バージョン 2.2 で非推奨となり、Red Hat OpenShift Service Mesh バージョン 2.3 で削除されました。

Rust SDK を使用してビルドされる完全なサンプルは、header-append-filter を参照してください。これは、拡張の config フィールドから取られた名前および値で HTTP 応答に 1 つ以上のヘッダーを追加する単純なフィルターです。以下のスニペットの設定例を参照してください。

手順

  1. 以下のリソース例を作成します。

    ServiceMeshExtension リソースの extension.yaml の例

    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

  2. 以下のコマンドを使用して extension.yaml ファイルを適用します。

    $ oc apply -f <extension>.yaml
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る