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.
Rentang istioVersion yang didefinisikan dalam satu EnvoyFilterTemplate tidak boleh tumpang tindih.
Cara kerja
Buat EnvoyFilterTemplate yang berisi satu atau beberapa konfigurasi filter, masing-masing menargetkan rentang versi Istio tertentu.
Buat EnvoyFilterTemplateBinding yang mereferensikan templat tersebut dan menentukan workload serta versi proxy Envoy tempat filter tersebut diterapkan.
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-systemBidang 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 |
| 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 |
| string | Ya | Versi atau rentang versi Istio yang ditargetkan oleh filter ini. Tentukan versi minor Istio seperti |
| string | Ya | Konfigurasi filter Envoy dalam format YAML. Harus sesuai dengan spesifikasi CRD EnvoyFilter. Abaikan bidang |
Sintaksis rentang versi
Contoh | Makna |
| Hanya cocok dengan instans ASM yang menjalankan Istio 1.19. |
| Cocok dengan Istio 1.18, 1.19, dan 1.20. |
| Cocok dengan Istio 1.19 dan semua versi setelahnya. |
| 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 |
| Ya | Mereferensikan EnvoyFilterTemplate dan menentukan versi proxy Envoy yang ditargetkan. ASM menggunakan ini untuk memilih entri templat yang tepat dan mengatur kondisi match | |
| Tidak | Workload tempat filter Envoy dihasilkan. |
EnvoyFilterTemplateRef
Bidang | Tipe | Wajib | Deskripsi |
| string | Ya | Nama EnvoyFilterTemplate yang direferensikan. |
| string | Ya | Versi proxy Envoy yang ditargetkan. Menggunakan sintaksis rentang versi yang sama dengan |
WorkloadRef
Menentukan workload tempat filter Envoy yang dihasilkan diterapkan.
Bidang | Tipe | Wajib | Perilaku default | Deskripsi |
| string | Ya | -- | Namespace tempat filter Envoy dibuat. Untuk menerapkan filter secara global di seluruh instans ASM, atur nilai ini ke |
| 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. |
| string | Tidak | -- | Jenis workload (misalnya, |
| map<string, string> | Tidak | Filter berlaku untuk semua Pod di namespace. | Sekumpulan label untuk memilih Pod tertentu. ASM mengonversi ini menjadi bidang |
Referensi
Buat filter Envoy menggunakan templat filter Envoy: Langkah-langkah operasional untuk membuat dan mengelola templat filter Envoy.
Aktifkan plug-in untuk memperluas kemampuan ASM: Pilih dan sesuaikan plug-in dari pasar plug-in ASM.