ASMMeshConfig adalah Custom Resource (CR) yang disediakan oleh Alibaba Cloud Service Mesh (ASM) untuk menentukan pengaturan tingkat mesh. Fungsinya mirip dengan MeshConfig milik Istio, memungkinkan Anda mengelola parameter secara terpusat seperti timeout koneksi, deteksi protokol, normalisasi path, kebijakan retry, perilaku injector sidecar, serta konfigurasi log akses.
Contoh konfigurasi
Contoh berikut menunjukkan konfigurasi untuk pengaturan koneksi, normalisasi path, kebijakan retry HTTP default, injector sidecar, pencatatan log akses, dan pembatasan laju global.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMMeshConfig
metadata:
name: default
spec:
connectTimeout: 30s
tcpKeepalive:
probes: 5
time: 7200s
interval: 72s
pathNormalization:
normalization: MERGE_SLASHES
defaultHttpRetryPolicy:
attempts: 3
perTryTimeout: 1s
retryOn: gateway-error,connect-failure,refused-stream
enablePrometheusMerge: true
sidecarInjectorWebhookConfiguration:
rewriteAppHTTPProbe: true
replicaCount: 2
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: '2'
memory: 2Gi
rateLimitService:
enabled: true
redis:
authSecret: redis-secret
url: redis.istio-system.svc:6379
replicas: 1
accessLogConfiguration:
logEncoding: JSON
logProject: test-project
sidecarEnabled: trueUntuk menggunakan semua field pada CRD ASMMeshConfig, versi instans Service Mesh Anda harus 1.24 atau lebih baru. Secara khusus, konfigurasi rateLimitService memerlukan versi instans 1.25.6.84. Selain itu, CR ASMMeshConfig tidak memiliki namespace dan namanya harus default. CR ASMMeshConfig dengan nama lain tidak akan berlaku.
Bidang
spec
Field path | Type | Description | Value |
| TcpKeepalive | Mengonfigurasi pengaturan TCP keepalive untuk koneksi keluar. |
|
| Duration | Menentukan waktu tunggu maksimum bagi proxy Envoy untuk membuat koneksi TCP. Timeout akan memicu error |
|
| Duration | Timeout untuk deteksi protokol otomatis, yang mengidentifikasi traffic HTTP/HTTPS. Setelah timeout, traffic diperlakukan sebagai TCP mentah. Penting Hanya tersedia di versi ASM 1.19 dan sebelumnya. | |
| PathNormalization | Mengonfigurasi normalisasi path untuk permintaan HTTP. | |
| DefaultHttpRetryPolicy | Menentukan kebijakan retry HTTP default untuk sidecar. | |
| Bool | Otomatis menggabungkan anotasi |
|
| SidecarInjectorWebhookConfiguration | Mengonfigurasi injector sidecar. | |
| AccessLogConfiguration | Mengonfigurasi format dan pengumpulan log akses. | |
| RatelimitService | Mengonfigurasi layanan pembatasan laju global. Penting Hanya tersedia di versi ASM 1.25 dan lebih baru. |
TCP keepalive
Field path | Type | Description | Value | Scope |
| Uint32 | Jumlah maksimum probe TCP keepalive yang dikirim. Nilai |
| Koneksi Persisten TCP Keluar. |
| Duration | Waktu idle sebelum probe keepalive pertama dikirim. |
| |
| Duration | Interval pengiriman probe keep-alive harus lebih kecil dari parameter |
|
Normalisasi path
Field path | Type | Description | Value | Scope |
| Enum | Menentukan kebijakan pemrosesan path URI:
|
| Perutean HTTP tingkat mesh. |
Kebijakan retry HTTP default
Field path | Type | Description | Value | Scope |
| Int32 | Jumlah maksimum percobaan, termasuk permintaan awal. Pengaturan ini hanya berlaku jika |
| Kebijakan perutean HTTP. |
| Duration | Timeout untuk setiap percobaan individual. Harus lebih pendek dari timeout keseluruhan yang ditentukan dalam |
| |
| String | Kondisi yang memicu retry mendukung tipe error standar seperti |
|
Injector sidecar
Field path | Type | Description | Value | Scope |
| Bool | Jika true, mengarahkan ulang probe kesiapan HTTP Pod ke port proxy sidecar, memastikan probe melewati mesh. |
| Perilaku injeksi sidecar. |
| Int | Jumlah replika controller injector sidecar. Tingkatkan nilai ini untuk Ketersediaan tinggi di kluster produksi. |
| Komponen injector sidecar. |
| Object | Permintaan dan batas sumber daya untuk kontainer injector sidecar:
| | Komponen injector sidecar. |
Log akses
Field path | Type | Description | Value |
| String | Format output untuk log. Nilai yang valid: |
|
| String | Nama proyek Alibaba Cloud Log Service (SLS) yang menerima log. Penting Hanya tersedia di versi ASM 1.25 dan lebih baru. |
|
| Boolean | Mengaktifkan pengumpulan log akses dari gerbang ke Alibaba Cloud Log Service (SLS). |
|
| Boolean | Mengaktifkan pengumpulan log akses dari sidecar ke Alibaba Cloud Log Service (SLS). |
|
| Boolean | Mengaktifkan pengumpulan log akses dari Ztunnel ke Alibaba Cloud Log Service (SLS). Penting Hanya tersedia di versi ASM 1.25 dan lebih baru. |
|
| Integer | Periode retensi dalam hari untuk log akses gerbang. Nilai default adalah 90. |
|
| Integer | Periode retensi dalam hari untuk log akses sidecar. Nilai default adalah 90. |
|
| Integer | Periode retensi dalam hari untuk log akses Ztunnel. Nilai default adalah 90. Penting Hanya tersedia di versi ASM 1.25 dan lebih baru. |
|
Pembatasan laju global
Field path | Type | Description | Value | Scope |
| Bool | Jika true, mengaktifkan layanan pembatasan laju global. |
| Kemampuan pembatasan laju global. |
| Int | Jumlah replika untuk layanan pembatasan laju. |
| Ketersediaan dan performa layanan pembatasan laju. |
| Object | Konfigurasi sumber daya untuk layanan pembatasan laju. | | Ketersediaan dan performa layanan pembatasan laju. |
| Object | Konfigurasi untuk instans Redis yang digunakan oleh layanan pembatasan laju. Catatan Layanan pembatasan laju global menggunakan Redis untuk menyimpan kebijakan dan keputusan. | | Backend status pembatasan laju. |
| String | Tipe kluster Redis. Nilai yang valid adalah |
| Status backend pembatasan laju. |
| String | Alamat koneksi Redis. |
| Backend status pembatasan laju. |
| String | Kredensial autentikasi Redis, dalam format: | xxxxxx | Manajemen kredensial. |
| String | Nama Kubernetes Secret yang menyimpan informasi autentikasi Redis. Catatan Secret ini harus dideploy di namespace | | Manajemen kredensial. |
| String | Awalan untuk semua kunci cache Redis. Nilai default kosong. | N/A | Backend status pembatasan laju. |
Kami merekomendasikan Anda menggunakan Alibaba Cloud Redis untuk memastikan ketersediaan tinggi. Anda dapat mengonfigurasi rateLimitService.redis.type berdasarkan tipe instans Redis Anda dengan merujuk pada tabel berikut.
Tipe instans | Arsitektur | Mode koneksi |
|
Single-node | -- | -- |
|
Ketersediaan tinggi | Cluster dinonaktifkan | -- |
|
Cluster diaktifkan | Koneksi langsung |
| |
Mode proxy |
|
ASM menggabungkan semua konfigurasi dan secara otomatis menghasilkan konfigurasi layanan pembatasan laju bernama ratelimit-service-config di namespace istio-system. Saat Anda mengaktifkan layanan pembatasan laju, konfigurasi ini akan dipasang secara otomatis. Anda tidak perlu memperbarui konfigurasi layanan pembatasan laju secara manual.