All Products
Search
Document Center

Alibaba Cloud Service Mesh:Referensi bidang EnvoyFilterTemplate dan EnvoyFilterTemplateBinding

Last Updated:Sep 15, 2026

Service Mesh (ASM) menyediakan dua CustomResourceDefinitions (CRD)—EnvoyFilterTemplate dan EnvoyFilterTemplateBinding—untuk membuat konfigurasi filter Envoy yang dapat digunakan ulang dan sadar versi. Definisikan templat filter sekali, lalu bind ke workload, namespace, dan versi Istio tanpa perlu menduplikasi YAML.

Mengapa menggunakan CRD ini alih-alih sumber daya EnvoyFilter mentah?

  • Keamanan versi. Sumber daya EnvoyFilter yang dikelola secara manual dapat menjadi tidak kompatibel setelah peningkatan instans ASM karena perubahan versi proxy Envoy. EnvoyFilterTemplate memungkinkan Anda menentukan konfigurasi filter spesifik versi sehingga filter yang tepat diterapkan secara otomatis setelah peningkatan.

  • Dapat digunakan ulang. Satu templat menghasilkan beberapa sumber daya EnvoyFilter di berbagai workload dan namespace melalui binding terpisah.

  • Lebih sedikit duplikasi. Metadata dan selector workload diisi otomatis dari binding, sehingga tidak perlu diduplikasi dalam templat.

Penting

Rentang istioVersion yang didefinisikan dalam satu EnvoyFilterTemplate tidak boleh tumpang tindih.

Cara kerja

  1. Buat EnvoyFilterTemplate yang berisi satu atau beberapa konfigurasi filter, masing-masing menargetkan rentang versi Istio tertentu.

  2. Buat EnvoyFilterTemplateBinding yang mereferensikan templat tersebut dan menentukan workload serta versi proxy Envoy tempat filter tersebut diterapkan.

  3. ASM secara otomatis menghasilkan sumber daya EnvoyFilter dengan metadata, label, dan selector workload yang sesuai.

Contoh konfigurasi

Contoh berikut mendefinisikan EnvoyFilterTemplate yang mengatur ukuran jendela koneksi dan stream HTTP/2 pada port 80 untuk instans ASM yang menjalankan Istio 1.19 dan versi setelahnya. EnvoyFilterTemplateBinding yang sesuai kemudian menghasilkan filter Envoy yang menargetkan proxy pada versi 1.20 dan diterapkan secara global di namespace istio-system.

EnvoyFilterTemplate

EnvoyFilterTemplateBinding

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

EnvoyFilter yang Dihasilkan

ASM menghasilkan EnvoyFilter berikut dari templat dan binding di atas. Label dan kondisi match proxyVersion diisi otomatis dari binding:

Bidang EnvoyFilterTemplate

EnvoyFilterTemplate mendefinisikan konfigurasi filter Envoy untuk berbagai versi Istio. Setelah peningkatan instans ASM, konfigurasi filter yang sesuai diterapkan secara otomatis ke proxy Envoy yang telah ditingkatkan, sehingga mengurangi risiko ketidakcocokan dibandingkan dengan sumber daya EnvoyFilter yang dikelola secara manual.

EnvoyFilterTemplateSpec

Bidang

Tipe

Wajib

Deskripsi

templates

TemplateValue[]

Ya

Daftar entri templat filter Envoy. Setiap entri menargetkan versi atau rentang versi Istio tertentu. Rentang versi antar entri tidak boleh tumpang tindih.

TemplateValue

Setiap TemplateValue memasangkan konfigurasi filter Envoy (dalam format YAML) dengan rentang versi Istio tempat konfigurasi tersebut berlaku.

Bidang

Type

Wajib

Deskripsi

istioVersion

string

Ya

Versi atau rentang versi Istio yang ditargetkan oleh filter ini. Tentukan versi minor Istio seperti 1.19 atau 1.20. Gunakan tanda hubung antara dua versi untuk mendefinisikan rentang. Gunakan MIN_VERSION untuk versi paling awal yang diketahui dan MAX_VERSION untuk versi terbaru. Lihat Sintaksis rentang versi.

value

string

Ya

Konfigurasi filter Envoy dalam format YAML. Harus sesuai dengan spesifikasi CRD EnvoyFilter. Abaikan bidang metadata dan workloadSelector — ASM akan mengisinya otomatis dari EnvoyFilterTemplateBinding saat pembuatan.

Sintaksis rentang versi

Contoh

Makna

"1.19"

Hanya cocok dengan instans ASM yang menjalankan Istio 1.19.

"1.18-1.20"

Cocok dengan Istio 1.18, 1.19, dan 1.20.

"1.19-MAX_VERSION"

Cocok dengan Istio 1.19 dan semua versi setelahnya.

"MIN_VERSION-1.19"

Cocok dengan Istio 1.19 dan semua versi sebelumnya.

Bidang EnvoyFilterTemplateBinding

EnvoyFilterTemplateBinding mengaitkan satu EnvoyFilterTemplate dan menentukan workload serta versi proxy Envoy tempat ASM menghasilkan sumber daya EnvoyFilter.

EnvoyFilterTemplateBindingSpec

Bidang

Type

Wajib

Deskripsi

templateRef

EnvoyFilterTemplateRef

Ya

Mereferensikan EnvoyFilterTemplate dan menentukan versi proxy Envoy yang ditargetkan. ASM menggunakan ini untuk memilih entri templat yang tepat dan mengatur kondisi match proxyVersion di EnvoyFilter yang dihasilkan.

workloads

WorkloadRef[]

Tidak

Workload tempat filter Envoy dihasilkan.

EnvoyFilterTemplateRef

Bidang

Tipe

Wajib

Deskripsi

name

string

Ya

Nama EnvoyFilterTemplate yang direferensikan.

istioVersion

string

Ya

Versi proxy Envoy yang ditargetkan. Menggunakan sintaksis rentang versi yang sama dengan TemplateValue.istioVersion. ASM mengonversi nilai ini menjadi match regex proxyVersion (misalnya, "1.20" menjadi ^1\.20.*) di EnvoyFilter yang dihasilkan.

WorkloadRef

Menentukan workload tempat filter Envoy yang dihasilkan diterapkan.

Bidang

Tipe

Wajib

Perilaku default

Deskripsi

namespace

string

Ya

--

Namespace tempat filter Envoy dibuat. Untuk menerapkan filter secara global di seluruh instans ASM, atur nilai ini ke istio-system.

name

string

Tidak

Filter berlaku untuk seluruh namespace.

Nama workload. Nilai ini menjadi bagian dari nama EnvoyFilter yang dihasilkan. Atur nilai ini ke nama Service atau Deployment saat Anda menargetkan workload tertentu.

kind

string

Tidak

--

Jenis workload (misalnya, Namespace, Deployment, atau Service). Hanya digunakan untuk tujuan tampilan dan tidak memengaruhi perilaku filter.

selector

map<string, string>

Tidak

Filter berlaku untuk semua Pod di namespace.

Sekumpulan label untuk memilih Pod tertentu. ASM mengonversi ini menjadi bidang workloadSelector di EnvoyFilter yang dihasilkan. Jika diabaikan, filter berlaku untuk semua Pod di namespace yang ditentukan.

Referensi