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.
Kode YAML sebelumnya menciptakan filter Envoy berikut:
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 | 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 Contoh:
|
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 | Ya | Referensi template. Ini menentukan CRD EnvoyFilterTemplate yang direferensikan oleh CRD EnvoyFilterTemplateBinding dan versi instance ASM yang terikat. | |
workloads | 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 Contoh:
|
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
Untuk informasi lebih lanjut tentang operasi dan hubungan antara template filter Envoy dan filter Envoy, lihat Buat filter Envoy menggunakan template filter Envoy.
ASM menyediakan fitur siap pakai di pasar plug-in untuk memperluas kemampuan ASM sesuai kebutuhan. Anda dapat memilih dan menyesuaikan berbagai plug-in berdasarkan kebutuhan bisnis untuk memenuhi kebutuhan yang beragam. Untuk informasi lebih lanjut, lihat Aktifkan plug-in untuk memperluas kemampuan ASM.