すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:Envoy フィルターテンプレートを使用して Envoy フィルターを作成する

最終更新日:Jan 13, 2025

サービスメッシュ(ASM)では、Envoy フィルターテンプレートを使用して Envoy フィルターを作成できます。同じ Envoy フィルターテンプレートを使用して複数の Envoy フィルターを作成し、これらの Envoy フィルターを異なるワークロードと名前空間に適用できます。これにより、設定を再利用でき、管理効率が向上します。ASM インスタンスのバージョンが更新されると、Envoy フィルターテンプレートは対応する Envoy フィルターを自動的に作成または変更できます。これにより、スムーズなバージョン更新が保証され、複雑な手動操作と潜在的なエラーが軽減されます。

前提条件

v1.12.4.0 以降の ASM インスタンスにクラスターが追加されています。ASM インスタンスへのクラスターの追加方法の詳細については、「ASM インスタンスへのクラスターの追加」をご参照ください。ASM インスタンスの更新方法の詳細については、「ASM インスタンスの更新」をご参照ください。

Envoy フィルターテンプレートと Envoy フィルターの関係

Envoy フィルターは、Envoy フィルターテンプレートのインスタンスです。Envoy フィルターテンプレートは、Envoy フィルターの作成に必要な設定とパラメーターを指定する設計図または定義として機能します。

  • Envoy フィルターテンプレート:Envoy フィルターの作成に必要なすべてのルールとパラメーターのテンプレートを含む事前定義された構成構造。テンプレートは、Envoy プロキシを通過するトラフィックの処理方法を定義しますが、トラフィックに直接適用されるわけではありません。

  • Envoy フィルター:テンプレートを使用して作成される実際の構成エンティティ。Envoy フィルターは、ASM インスタンスの Envoy プロキシに適用され、プロキシを通過するトラフィックをフィルタリングおよび処理します。Envoy フィルターはテンプレートのインスタンスであり、テンプレート内のルールとパラメーターを実際のトラフィックに適用します。

自己管理型 Envoy フィルターは、インスタンスの更新またはメンテナンス後、ASM インスタンスと互換性がない場合があります。 v1.12.4.0 以降の ASM インスタンスでは、Envoy フィルターテンプレートを使用して Envoy フィルターを作成できます。ASM インスタンスを更新すると、システムは Envoy フィルターテンプレートを使用して新しい Envoy フィルターを自動的に作成するか、既存の Envoy フィルターを変更して、Envoy フィルターが ASM インスタンスと互換性があることを確認します。これにより、Envoy フィルターのバージョンの互換性の問題を防ぎ、Envoy フィルターを使いやすくします。

Envoy フィルターテンプレートを作成したら、Envoy フィルターテンプレートをワークロードまたは名前空間にバインドする必要があります。その後、ASM はテンプレートを使用して Envoy フィルターを自動的に作成します。 Envoy フィルターテンプレートは、複数のワークロードと名前空間にバインドできます。このようにして、テンプレートを使用して複数の Envoy フィルターを作成できます。

手順 1:Envoy フィルターテンプレートを作成する

  1. ASM コンソール にログインします。左側のナビゲーションペインで、[サービスメッシュ] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、[プラグイン拡張センター] > [envoyfilter テンプレート] を選択します。表示されるページで、[envoyfilter テンプレートの作成] をクリックします。

  3. [基本情報] セクションの [作成] ページで、Envoy フィルターテンプレートの名前を入力します。

  4. [複数バージョンの Envoyfilter テンプレート] セクションで、[特定の Istio バージョンに適合した Envoyfilter テンプレートを追加] をクリックし、[適合 Istio バージョン] ドロップダウンリストから Istio バージョンを選択し、パラメーターを設定して、[作成] をクリックします。

    説明
    • ASM インスタンスのバージョンが 1.18.0.146 以降の場合、[最小バージョン制限なし][最大バージョン制限なし] は、[適合 Istio バージョン] セクションでデフォルトで選択されています。Envoy フィルターテンプレートが適用される Istio バージョンの範囲をカスタマイズするには、[最小バージョン制限なし] または [最大バージョン制限なし] をクリアして、バージョンを入力します。

    • Envoy フィルターの設定例とフィールドの詳細については、「Envoy Filter」をご参照ください。

    Envoy フィルターテンプレートを作成した後、[envoyfilter テンプレート] ページで Envoy フィルターテンプレートを表示できます。

手順 2:Envoy フィルターテンプレートをワークロードまたは名前空間にバインドする

Envoy フィルターテンプレートを作成したら、Envoy フィルターテンプレートをワークロードまたは名前空間にバインドする必要があります。このようにして、このテンプレートに基づいて作成された Envoy フィルターは、指定されたワークロードまたは名前空間にのみ有効になります。 Envoy フィルターテンプレートをワークロードまたは名前空間にバインドすると、ASM はテンプレートを使用して Envoy フィルターを自動的に作成します。 ASM インスタンスのバージョンに基づいて、次の操作を実行します。

1.18.0.146 より前のバージョンの ASM インスタンスの場合

Envoy フィルターテンプレートをワークロードにバインドする

  1. ASM コンソール にログインします。左側のナビゲーションペインで、[サービスメッシュ] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、[プラグイン拡張センター] > [envoyfilter テンプレート] を選択します。

  3. [envoyfilter テンプレート] ページで、設定する Envoy フィルターテンプレートを見つけて、[テンプレートの編集] 列の [アクション] をクリックします。

  4. [envoyfilter テンプレートの編集] ページで、[テンプレートをワークロードにバインド] タブをクリックし、[envoyfilter をワークロードにバインド] をクリックします。

  5. [envoyfilter をワークロードにバインド] ダイアログボックスで、[名前空間] パラメーターと [ワークロードタイプ] パラメーターを設定し、バインド[バインドされていません] セクションのワークロードの横にある OK をクリックし、 をクリックします。

    ASM インスタンスの詳細ページで、左側のナビゲーションペインの [プラグイン拡張センター] > [envoyfilter] を選択します。 [envoyfilter] ページで、自動的に作成された Envoy フィルターを表示できます。

Envoy フィルターテンプレートを名前空間にバインドする

  1. ASM コンソール にログインします。左側のナビゲーションペインで、[サービスメッシュ] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、[プラグイン拡張センター] > [envoyfilter テンプレート] を選択します。

  3. [envoyfilter テンプレート] ページで、設定する Envoy フィルターテンプレートを見つけて、[テンプレートの編集] 列の [アクション] をクリックします。

  4. [envoyfilter テンプレートの編集] ページで、[テンプレートをワークロードにバインド] タブをクリックし、[envoyfilter を名前空間にバインド] をクリックします。

  5. [envoyfilter を名前空間にバインド] ダイアログボックスで、[バインドされていません] セクションで設定する名前空間をクリックし、[OK] をクリックします。

    説明

    Envoy フィルターテンプレートを istio-system 名前空間にバインドすると、Envoy フィルターテンプレートはグローバルに有効になります。 Envoy フィルターテンプレートは、テンプレートがバインドされている他のワークロードまたは名前空間から自動的にバインド解除されます。したがって、Envoy フィルターテンプレートを istio-system 名前空間にバインドすることを確認する必要があります。

    ASM インスタンスの詳細ページで、左側のナビゲーションペインの [プラグイン拡張センター] > [envoyfilter] を選択します。 [envoyfilter] ページで、自動的に作成された Envoy フィルターを表示できます。

バージョン 1.18.0.146 以降の ASM インスタンスの場合

Envoy フィルターテンプレートをワークロードにバインドする

  1. ASM コンソール にログインします。左側のナビゲーションペインで、[サービスメッシュ] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、[プラグイン拡張センター] > [envoyfilter テンプレート] を選択します。

  3. [envoyfilter テンプレート] ページで、構成する Envoy フィルターテンプレートを探し、[テンプレートの編集] 列の [アクション] をクリックします。

  4. [envoyfilter テンプレートの編集] ページの下部で、[テンプレートをワークロードにバインド] セクションを表示します。

    [envoyfilter テンプレートはこのバージョンに適合していますが、対応する Envoyfilter は作成されていません] というメッセージが表示されたら、[作成] をクリックします。

  5. [テンプレートをワークロードにバインド] セクションで、[envoyfilter をワークロードにバインド] をクリックします。 [envoyfilter をワークロードにバインド] ダイアログボックスで、[名前空間] パラメーターと [ワークロードタイプ] パラメーターを設定し、[バインドされていません] セクションの目的のワークロードの [アクション] 列の [バインド] をクリックし、[OK] をクリックします。

    ASM インスタンスの詳細ページで、左側のナビゲーションペインの [プラグイン拡張センター] > [envoyfilter] を選択します。 [EnvoyFilter] ページで、自動的に作成された Envoy フィルターを表示できます。

Envoy フィルターテンプレートを名前空間にバインドする

  1. ASM コンソール にログインします。左側のナビゲーションペインで、[サービスメッシュ] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、[プラグイン拡張センター] > [envoyfilter テンプレート] を選択します。

  3. [envoyfilter テンプレート] ページで、構成する Envoy フィルターテンプレートを探し、[テンプレートの編集] 列の [アクション] をクリックします。

  4. [envoyfilter テンプレートの編集] ページの下部で、[テンプレートをワークロードにバインド] セクションを表示します。

    [envoyfilter テンプレートはこのバージョンに適合していますが、対応する Envoyfilter は作成されていません] というメッセージが表示されたら、[作成] をクリックします。

  5. [テンプレートをワークロードにバインド] セクションで、[envoyfilter を名前空間にバインド] をクリックします。 [envoyfilter を名前空間にバインド] ダイアログボックスで、[バインドされていません] セクションで Envoy フィルターテンプレートをバインドする名前空間の名前をクリックし、[OK] をクリックします。

    説明

    Envoy フィルターテンプレートを istio-system 名前空間にバインドすると、Envoy フィルターテンプレートはグローバルに有効になります。 Envoy フィルターテンプレートは、テンプレートがバインドされている他のワークロードまたは名前空間から自動的にバインド解除されます。したがって、Envoy フィルターテンプレートを istio-system 名前空間にバインドすることを確認する必要があります。

    ASM インスタンスの詳細ページで、左側のナビゲーションペインの [プラグイン拡張センター] > [envoyfilter] を選択します。 [EnvoyFilter] ページで、自動的に作成された Envoy フィルターを表示できます。

関連操作

Envoy フィルターを変更する

説明

カスタムテンプレートを使用して作成された Envoy フィルターのみを変更できます。プリセットテンプレートを使用して作成された Envoy フィルターは変更できません。 [envoyfilter テンプレート] ページで [ASM プラグイン] として表示される Envoy フィルターテンプレートは、プリセットテンプレートです。

[envoyfilter テンプレート] ページで、変更する Envoy フィルターテンプレートを見つけて、[テンプレートの編集] 列の [アクション] をクリックします。テンプレートパラメーターを変更し、[テンプレートの内容を変更] をクリックします。 Envoy フィルターテンプレートを変更すると、テンプレートを使用して作成された Envoy フィルターは自動的に更新されます。

Envoy フィルターを削除する

  • ワークロードから Envoy フィルターテンプレートのバインドを解除して Envoy フィルターを削除する

    [envoyfilter テンプレート] ページで、構成する Envoy フィルターテンプレートを見つけて、[テンプレートの編集] 列の [アクション] をクリックします。 [テンプレートをワークロードにバインド] タブで、[envoyfilter をワークロードにバインド] をクリックします。 [envoyfilter をワークロードにバインド] ダイアログボックスで、[バインド済み] セクションでテンプレートのバインドを解除するワークロードの横にある [バインド解除] をクリックし、[OK] をクリックします。ワークロードから Envoy フィルターテンプレートのバインドを解除すると、テンプレートを使用してワークロード用に作成された Envoy フィルターは自動的に削除されます。

  • 名前空間から Envoy フィルターテンプレートのバインドを解除して Envoy フィルターを削除する

    [envoyfilter テンプレート] ページで、構成する Envoy フィルターテンプレートを見つけて、[テンプレートの編集] 列の [アクション] をクリックします。 [テンプレートをワークロードにバインド] タブで、[envoyfilter を名前空間にバインド] をクリックします。 [envoyfilter を名前空間にバインド] ダイアログボックスで、[バインド済み] セクションでテンプレートのバインドを解除する名前空間をクリックし、[OK] をクリックします。名前空間から Envoy フィルターテンプレートのバインドを解除すると、テンプレートを使用して名前空間用に作成された Envoy フィルターは自動的に削除されます。

  • Envoy フィルターテンプレートを削除して Envoy フィルターを削除する

    [envoyfilter テンプレート] ページで、削除する Envoy フィルターテンプレートを見つけて、[削除] 列の [アクション] をクリックします。表示されるメッセージで、[OK] をクリックします。 Envoy フィルターテンプレートを削除すると、テンプレートを使用して作成された Envoy フィルターは自動的に削除されます。