All Products
Search
Document Center

Alibaba Cloud Service Mesh:Deskripsi bidang EnvoyFilterTemplate dan EnvoyFilterTemplateBinding

Last Updated:Jul 02, 2025

Service Mesh (ASM) memungkinkan Anda membuat filter Envoy menggunakan CustomResourceDefinitions (CRD) EnvoyFilterTemplate dan EnvoyFilterTemplateBinding. Template filter Envoy yang sama dapat digunakan untuk membuat beberapa filter Envoy, yang dapat diterapkan pada beban kerja dan namespace berbeda. Hal ini meningkatkan efisiensi manajemen melalui konfigurasi yang dapat digunakan kembali.

Contoh konfigurasi

Blok kode berikut mendefinisikan CRD EnvoyFilterTemplate, yang mencakup isi dari sebuah template filter Envoy yang berlaku untuk instance ASM dengan versi Istio 1.19 atau lebih baru. Blok ini juga menentukan CRD EnvoyFilterTemplateBinding, yang digunakan untuk membuat filter Envoy yang berlaku di namespace istio-system. Ini menunjukkan bahwa filter Envoy berlaku secara global dalam instance ASM dan mencakup semua proxy Envoy dengan versi 1.20. Isi filter berasal dari template filter Envoy yang didefinisikan dalam CRD EnvoyFilterTemplate, yang berlaku untuk instance ASM dengan versi Istio 1.19 atau lebih baru.

Tampilkan kode YAML dari EnvoyFilterTemplate

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

Kode YAML sebelumnya menciptakan filter Envoy berikut:

Tampilkan kode YAML dari filter Envoy

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

Deskripsi bidang EnvoyFilterTemplate

EnvoyFilterTemplate mendefinisikan serangkaian filter Envoy yang berlaku untuk versi Istio berbeda. Filter Envoy yang dikelola sendiri mungkin tidak kompatibel dengan instance ASM setelah pembaruan atau pemeliharaan. Anda dapat menggunakan CRD EnvoyFilterTemplate untuk menyesuaikan filter Envoy sesuai dengan versi Istio tertentu. Setelah meningkatkan versi proxy Envoy, Anda dapat menerapkan filter Envoy yang sesuai pada proxy yang telah ditingkatkan, mengurangi risiko kompatibilitas.

EnvoyFilterTemplateSpec

EnvoyFilterTemplateSpec, bagian spec dalam contoh sebelumnya, merupakan konfigurasi inti dari EnvoyFilterTemplate.

Bidang

Tipe

Diperlukan

Deskripsi

templates

TemplateValue[]

Ya

Menentukan serangkaian nilai template filter Envoy. Setiap nilai template berlaku untuk versi Istio tertentu atau rentang versi Istio. Rentang versi Istio yang berlaku dari beberapa nilai template tidak boleh tumpang tindih.

TemplateValue

Setiap TemplateValue menentukan konten YAML dari filter Envoy serta versi Istio atau rentang versi Istio yang berlaku untuk filter tersebut.

Bidang

Tipe

Diperlukan

Deskripsi

istioVersion

string

Ya

Versi Istio atau rentang versi Istio tempat filter Envoy berlaku. Versi harus merupakan versi minor Istio, seperti 1.19 atau 1.20. Anda dapat menyambungkan dua versi dengan tanda hubung untuk menunjukkan bahwa filter Envoy berlaku untuk rentang versi yang ditentukan.

Jika Anda ingin menentukan bahwa filter Envoy berlaku untuk rentang versi, Anda dapat menggunakan MIN_VERSION untuk mewakili versi paling awal yang diketahui dan MAX_VERSION untuk mewakili versi terbaru yang diketahui.

Contoh:

  • "1.19": Filter Envoy berlaku untuk instance ASM versi 1.19.

  • "1.18-1.20": Filter Envoy berlaku untuk instance ASM versi 1.18, 1.19, dan 1.20.

  • "1.19-MAX_VERSION": Filter Envoy berlaku untuk instance ASM dengan versi 1.19 atau yang lebih baru.

  • "MIN_VERSION-1.19": Filter Envoy berlaku untuk instance ASM dengan versi 1.19 atau yang lebih lama.

value

string

Ya

Konten YAML dari filter Envoy. Konten YAML harus berupa string dan harus sesuai dengan deskripsi bidang CRD untuk filter Envoy.

Anda tidak perlu mengonfigurasi bidang metadata dan workloadSelector saat mendefinisikan filter Envoy menggunakan bidang TemplateValue. Saat Anda membuat filter Envoy, bidang metadata dan workloadSelector akan diisi secara otomatis berdasarkan CRD EnvoyFilterTemplateBinding.

Deskripsi bidang EnvoyFilterTemplateBinding

Satu CRD EnvoyFilterTemplateBinding terkait dengan satu CRD EnvoyFilterTemplate dan menentukan beban kerja serta versi proxy Envoy tempat filter Envoy yang didefinisikan dalam CRD EnvoyFilterTemplate berlaku.

EnvoyFilterTemplateBindingSpec

EnvoyFilterTemplateBindingSpec, yaitu bagian spec, merupakan konfigurasi inti dari EnvoyFilterTemplateBinding.

Bidang

Tipe

Diperlukan

Deskripsi

templateRef

EnvoyFilterTemplateRef

Ya

Referensi template. Ini menentukan CRD EnvoyFilterTemplate yang direferensikan oleh CRD EnvoyFilterTemplateBinding dan versi instance ASM yang terikat.

workloads

WorkloadRef[]

Tidak

Menentukan beban kerja tempat Anda perlu membuat filter Envoy.

EnvoyFilterTemplateRef

Bidang

Tipe

Diperlukan

Deskripsi

name

string

Ya

Nama EnvoyFilterTemplate yang direferensikan.

istioVersion

string

Ya

Menentukan versi proxy Envoy tempat filter Envoy berlaku.

Versi harus merupakan versi minor Istio, seperti 1.19 atau 1.20. Anda dapat menyambungkan dua versi dengan tanda hubung untuk menunjukkan bahwa filter Envoy berlaku untuk rentang versi yang ditentukan.

Jika Anda ingin menentukan bahwa filter Envoy berlaku untuk rentang versi, Anda dapat menggunakan MIN_VERSION untuk mewakili versi paling awal yang diketahui dan MAX_VERSION untuk mewakili versi terbaru yang diketahui.

Contoh:

  • "1.19": Filter Envoy berlaku untuk instance ASM versi 1.19.

  • "1.18-1.20": Filter Envoy berlaku untuk instance ASM versi 1.18, 1.19, dan 1.20.

  • "1.19-MAX_VERSION": Filter Envoy berlaku untuk instance ASM dengan versi 1.19 atau yang lebih baru.

  • "MIN_VERSION-1.19": Filter Envoy berlaku untuk instance ASM dengan versi 1.19 atau yang lebih lama.

WorkloadRef

WorkloadRef mendefinisikan beban kerja tempat filter Envoy berlaku.

Bidang

Tipe

Diperlukan

Deskripsi

namespace

string

Ya

Nama namespace tempat filter Envoy dibuat.

name

string

Tidak

Nama beban kerja. Nama ini adalah bagian dari nama filter Envoy yang dibuat. Kami merekomendasikan agar Anda mengatur bidang ini ke nama Service atau Deployment.

Jika filter Envoy berlaku secara global di namespace, Anda tidak perlu menentukan parameter ini.

kind

string

Tidak

Tipe beban kerja tempat filter Envoy terikat. Bidang ini hanya digunakan untuk tujuan tampilan.

selector

map<string, string>

Tidak

Menentukan serangkaian label berdasarkan mana Anda memilih pod tempat filter Envoy berlaku. Bidang ini secara otomatis dikonversi menjadi bidang workloadSelector untuk filter Envoy. Jika Anda tidak menentukan parameter ini, filter Envoy yang dibuat berlaku di seluruh namespace.

Referensi