1.19.5. ServiceMeshExtension リファレンス


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

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

新しい WebAssembly 拡張機能を作成するときは、WasmPlugin を使用してください。ServiceMeshExtension は、Red Hat OpenShift Service Mesh バージョン 2.2 で非推奨になり、今後のリリースで削除される予定です。

表1.21 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 ファイルで設定される値にデフォルト設定されますが、ユーザーが上書きできます。

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 つ以上のヘッダーを追加する単純なフィルターです。以下のスニペットの設定例を参照してください。

手順

  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

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

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

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

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

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

会社概要

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

© 2024 Red Hat, Inc.