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

Alibaba Cloud Service Mesh:EnvoyFilterTemplateとEnvoyFilterTemplateBindingのフィールドの説明

最終更新日:Jan 13, 2025

サービスメッシュ(ASM)では、EnvoyFilterTemplateおよびEnvoyFilterTemplateBinding CustomResourceDefinitions(CRD)を使用してEnvoyフィルターを作成できます。同じEnvoyフィルターテンプレートを使用して複数のEnvoyフィルターを作成し、これらのEnvoyフィルターを異なるワークロードと名前空間に適用できます。これにより、構成を再利用でき、管理効率が向上します。

構成例

次のコードブロックは、EnvoyFilterTemplate CRDを指定しています。このCRDは、Istioバージョンが 1.19 以降のASMインスタンスに適用されるEnvoyフィルターテンプレートのコンテンツを指定します。また、EnvoyFilterTemplateBinding CRDも指定しています。このCRDを使用して、istio-system名前空間で有効になるEnvoyフィルターを作成できます。これは、EnvoyフィルターがASMインスタンスでグローバルに有効になることを示します。Envoyフィルターは、バージョンが 1.20 のすべてのEnvoyプロキシに適用されます。フィルターコンテンツは、EnvoyFilterTemplate CRDで定義されているEnvoyフィルターテンプレートから派生します。このテンプレートは、Istioバージョンが 1.19 以降のASMインスタンスに適用されます。

EnvoyFilterTemplateのYAMLコードを表示

apiVersion: istio.alibabacloud.com/v1
kind: EnvoyFilterTemplate
metadata:
  name: seth2windows
  namespace: istio-system
spec:
  templates:
  - istioVersion: "1.19-MAX_VERSION"
    value: |
      apiVersion: networking.istio.io/v1alpha3
      kind: EnvoyFilter
      spec:
        configPatches:
        - applyTo: NETWORK_FILTER
          match:
            context: ANY
            listener:
              filterChain:
                filter:
                  name: envoy.filters.network.http_connection_manager
              portNumber: 80
          patch:
            operation: MERGE
            value:
              typed_config:
                '@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                http2_protocol_options:
                  initial_connection_window_size: 65536
                  initial_stream_window_size: 65536
        priority: 0
---
apiVersion: istio.alibabacloud.com/v1
kind: EnvoyFilterTemplateBinding
metadata:
  name: seth2windows-binding-1.20
  namespace: istio-system
spec:
  templateRef:
    istioVersion: "1.20"
    name: seth2windows
  workloads:
  - kind: Namespace
    namespace: istio-system

上記のYAMLコードは、次のEnvoyフィルターを作成します。

EnvoyフィルターのYAMLコードを表示

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  labels:
    asm-system: "true"
    binding-name: seth2windows-binding-1.20
    binding-namespace: istio-system
    provider: asm
    workload-name: ""
    workload-namespace: istio-system
  name: seth2windows-binding-1.20-for-istio-system
  namespace: istio-system
spec:
  configPatches:
  - applyTo: NETWORK_FILTER
    match:
      context: ANY
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
        portNumber: 80
      proxy:
        proxyVersion: ^1\.20.*
    patch:
      operation: MERGE
      value:
        typed_config:
          '@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          http2_protocol_options:
            initial_connection_window_size: 65536
            initial_stream_window_size: 65536
  priority: 0

EnvoyFilterTemplateフィールドの説明

EnvoyFilterTemplateは、一連のEnvoyフィルターを定義します。これらのEnvoyフィルターは、異なるIstioバージョンに適用されます。セルフマネージドEnvoyフィルターは、インスタンスの更新またはメンテナンス後、ASMインスタンスと互換性がない場合があります。 EnvoyFilterTemplate CRDを使用すると、Istioバージョンごとに異なるEnvoyフィルターをカスタマイズできます。 Envoyプロキシのバージョンをアップグレードした後、アップグレードされたプロキシで適切なEnvoyフィルターを適用できます。これにより、互換性のリスクが軽減されます。

EnvoyFilterTemplateSpec

EnvoyFilterTemplateSpec、つまり上記の例のspecセクションは、EnvoyFilterTemplateの中核となる構成です。

フィールド

タイプ

必須

説明

templates

TemplateValue[]

はい

一連のEnvoyフィルターテンプレート値を指定します。各テンプレート値は、特定のIstioバージョンまたはIstioバージョンの範囲に適用されます。複数のテンプレート値の適用可能なIstioバージョンの範囲は重複できません。

TemplateValue

各TemplateValueは、EnvoyフィルターのYAMLコンテンツと、Envoyフィルターの適用可能なIstioバージョンまたはIstioバージョンの範囲を指定します。

フィールド

タイプ

必須

説明

istioVersion

string

はい

Envoyフィルターが適用可能なIstioバージョンまたはIstioバージョンの範囲。バージョンは、 1.19 や 1.20 などのIstioマイナーバージョンである必要があります。 2つのバージョンをハイフンでつなぐことで、Envoyフィルターが指定されたバージョンの範囲で有効になることを示すことができます。

Envoyフィルターがバージョンの範囲で有効になるように指定する場合、MIN_VERSIONを使用して既知の最も古いバージョンを表し、MAX_VERSIONを使用して既知の最新のバージョンを表すことができます。

例:

  • "1.19":Envoyフィルターは v1.19 のASMインスタンスに適用されます。

  • "1.18-1.20":Envoyフィルターは v1.18、v1.19、v1.20 のASMインスタンスに適用されます。

  • "1.19-MAX_VERSION":Envoyフィルターは、バージョンが 1.19 以降のASMインスタンスに適用されます。

  • "MIN_VERSION-1.19":Envoyフィルターは、バージョンが 1.19 以前のASMインスタンスに適用されます。

value

string

はい

EnvoyフィルターのYAMLコンテンツ。 YAMLコンテンツは文字列である必要があり、EnvoyフィルターのCRDフィールドの説明に準拠している必要があります。

TemplateValueフィールドを使用してEnvoyフィルターを定義する場合、metadataフィールドとworkloadSelectorフィールドを構成する必要はありません。 Envoyフィルターを作成すると、EnvoyFilterTemplateBinding CRDに基づいてmetadataフィールドとworkloadSelectorフィールドに自動的に入力されます。

EnvoyFilterTemplateBindingフィールドの説明

1つのEnvoyFilterTemplateBinding CRDはEnvoyFilterTemplate CRDに関連付けられており、EnvoyFilterTemplate CRDで定義されているEnvoyフィルターが有効になるワークロードとEnvoyプロキシのバージョンを指定します。

EnvoyFilterTemplateBindingSpec

EnvoyFilterTemplateBindingSpec、つまりspecセクションは、EnvoyFilterTemplateBindingの中核となる構成です。

フィールド

タイプ

必須

説明

templateRef

EnvoyFilterTemplateRef

はい

テンプレート参照。 EnvoyFilterTemplateBinding CRDによって参照されるEnvoyFilterTemplate CRDと、バインドされたASMインスタンスのバージョンを指定します。

workloads

WorkloadRef[]

いいえ

Envoyフィルターを作成する必要があるワークロードを指定します。

EnvoyFilterTemplateRef

フィールド

タイプ

必須

説明

name

string

はい

参照されるEnvoyFilterTemplateの名前。

istioVersion

string

はい

Envoyフィルターが有効になるEnvoyプロキシのバージョンを指定します。

バージョンは、 1.19 や 1.20 などのIstioマイナーバージョンである必要があります。 2つのバージョンをハイフンでつなぐことで、Envoyフィルターが指定されたバージョンの範囲で有効になることを示すことができます。

Envoyフィルターがバージョンの範囲で有効になるように指定する場合、MIN_VERSIONを使用して既知の最も古いバージョンを表し、MAX_VERSIONを使用して既知の最新のバージョンを表すことができます。

例:

  • "1.19":Envoyフィルターは v1.19 のASMインスタンスに適用されます。

  • "1.18-1.20":Envoyフィルターは v1.18、v1.19、v1.20 のASMインスタンスに適用されます。

  • "1.19-MAX_VERSION":Envoyフィルターは、バージョンが 1.19 以降のASMインスタンスに適用されます。

  • "MIN_VERSION-1.19":Envoyフィルターは、バージョンが 1.19 以前のASMインスタンスに適用されます。

WorkloadRef

WorkloadRefは、Envoyフィルターが有効になるワークロードを定義します。

フィールド

タイプ

必須

説明

namespace

string

はい

Envoyフィルターが作成される名前空間の名前。

name

string

いいえ

ワークロードの名前。この名前は、作成されたEnvoyフィルターの名前の一部です。このフィールドには、サービスまたはデプロイメントの名前を設定することをお勧めします。

Envoyフィルターが名前空間でグローバルに有効になる場合、このパラメーターを指定する必要はありません。

kind

string

いいえ

Envoyフィルターがバインドされるワークロードのタイプ。このフィールドは表示目的でのみ使用されます。

selector

map<string, string>

いいえ

Envoyフィルターが有効になるポッドを選択する基準となる一連のラベルを指定します。このフィールドは、EnvoyフィルターのworkloadSelectorフィールドに自動的に変換されます。このパラメーターを指定しない場合、作成されたEnvoyフィルターは名前空間全体で有効になります。

参照