All Products
Search
Document Center

Alibaba Cloud Service Mesh:Referensi CRD ASMMeshConfig

Last Updated:Jun 09, 2026

ASMMeshConfig adalah Custom Resource (CR) dari Alibaba Cloud Service Mesh (ASM) yang mendefinisikan konfigurasi mesh-wide untuk service mesh. Mirip dengan MeshConfig milik Istio, CR ini memungkinkan Anda mengelola parameter tingkat mesh secara terpusat, seperti timeout koneksi, deteksi protokol, normalisasi path, dan kebijakan retry. Anda juga dapat menggunakannya untuk mengontrol perilaku serta kuota sumber daya injector sidecar.

Contoh konfigurasi

Contoh berikut menentukan pengaturan mesh-wide untuk instans ASM, mencakup konfigurasi koneksi, normalisasi path, kebijakan retry HTTP, konfigurasi injector sidecar, dan layanan 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: true
  manifestPatch:
  - targetRef:
      kind: DaemonSet
      group: apps
      namespace: kube-system
      selector:
        labels:
          app: istio-cni
    patch: |
      metadata:
        labels:
          custom.example.com/managed-by: asm
        annotations:
          custom.example.com/cni-version: "1.29"
Penting

Untuk menggunakan semua field CRD ASMMeshConfig, instans ASM Anda harus berada pada versi 1.24 atau lebih baru. Konfigurasi rateLimitService memerlukan versi instans 1.25.6.84. Selain itu, CR ASMMeshConfig bersifat non-namespaced, dan namanya harus default. CR ASMMeshConfig dengan nama lain akan diabaikan.

Referensi bidang

Spec (Konfigurasi mesh)

Path field

Tipe

Deskripsi

Nilai contoh

tcpKeepalive

TcpKeepalive

Mengonfigurasi pengaturan TCP keepalive.

probes: 5

connectTimeout

Duration

Menentukan waktu tunggu maksimum bagi proxy Envoy untuk membuat koneksi TCP. Timeout akan memicu error upstream connect timeout. Satuan yang didukung adalah ns/ms/s/m/h.

30s

protocolDetectionTimeout

Duration

Timeout untuk deteksi protokol, digunakan untuk mengidentifikasi traffic HTTP/HTTPS. Jika protokol tidak terdeteksi dalam durasi ini, traffic akan diperlakukan sebagai TCP mentah.

Penting

Field ini hanya dapat dikonfigurasi pada versi ASM 1.19 dan sebelumnya.

pathNormalization

PathNormalization

Mengonfigurasi normalisasi path untuk permintaan HTTP.

defaultHttpRetryPolicy

DefaultHttpRetryPolicy

Menentukan kebijakan retry HTTP default untuk sidecar.

enablePrometheusMerge

Bool

Jika true, menggabungkan anotasi prometheus.io Pod dengan konfigurasi pemantauan ASM untuk mencegah pengumpulan metrik duplikat.

true

sidecarInjectorWebhookConfiguration

SidecarInjectorWebhookConfiguration

Mengonfigurasi injector sidecar.

accessLogConfiguration

AccessLogConfiguration

Mengonfigurasi format dan pengumpulan log akses.

rateLimitService

RatelimitService

Mengonfigurasi layanan pembatasan laju global.

Penting

Field ini hanya dapat dikonfigurasi pada versi ASM 1.25 dan lebih baru.

manifestPatch

[]PatchConfig

Field manifestPatch memungkinkan Anda menerapkan Strategic Merge Patch ke resource Kubernetes yang dirender oleh lapisan kontrol ASM, sehingga menyesuaikan resource yang dikelola secara otomatis seperti Deployments, Services, dan ConfigMaps tanpa mengubah kode lapisan kontrol.

Penting

Field ini hanya dapat dikonfigurasi pada versi ASM 1.27 dan lebih baru.

TcpKeepalive

Path field

Tipe

Deskripsi

Nilai contoh

Lingkup

probes

Uint32

Jumlah maksimum probe TCP keepalive yang dikirim. Nilai 0 menonaktifkan mekanisme keepalive.

9

Koneksi TCP outbound jangka panjang.

time

Duration

Waktu idle sebelum probe keepalive pertama dikirim.

7200s

interval

Duration

Interval pengiriman probe keep-alive harus lebih kecil dari parameter time.

75s

PathNormalization

Path field

Tipe

Deskripsi

Nilai contoh

Lingkup

normalization

Enum

Kebijakan pemrosesan path URI:

  • NONE: Menonaktifkan standarisasi.

  • BASE: Menggabungkan slash dan mempertahankan parameter path (seperti ;).

  • MERGE_SLASHES: Hanya menggabungkan slash berurutan.

NONE

Perutean HTTP mesh-wide.

DefaultHttpRetryPolicy

Path field

Tipe

Deskripsi

Nilai contoh

Lingkup

attempts

Int32

Jumlah maksimum percobaan untuk permintaan HTTP. Pengaturan global ini hanya berlaku jika VirtualService tidak secara eksplisit menentukan kebijakan retry-nya sendiri.

2

Kebijakan perutean HTTP.

perTryTimeout

Duration

Timeout untuk setiap percobaan. Nilai ini harus lebih kecil dari timeout permintaan keseluruhan yang ditentukan dalam VirtualService.

0s (tidak terbatas)

retryOn

String

Menentukan kondisi yang memicu retry. Jenis error standar yang didukung meliputi 5xx, gateway-error, connect-failure, dan reset. Pisahkan beberapa nilai dengan koma.

gateway-error, connect-failure, refused-stream

SidecarInjectorWebhookConfiguration

Path field

Type

Deskripsi

Nilai contoh

Lingkup

rewriteAppHTTPProbe

Bool

Jika true, menulis ulang pemeriksaan kesiapan HTTP Pod, mengarahkannya ke proxy sidecar.

true

Perilaku injeksi sidecar.

replicaCount

Int

Jumlah replika untuk controller injector sidecar guna meningkatkan ketersediaan tinggi.

2

Komponen injector sidecar.

resources

Object

Konfigurasi kuota sumber daya:

  • requests: Sumber daya minimum yang dibutuhkan kontainer untuk memulai.

  • limits: Jumlah maksimum sumber daya yang dapat digunakan kontainer.

...
    resources:
      requests:
        cpu: 100m
        memory: 256Mi
      limits:
        cpu: '2'
        memory: 2Gi

Komponen injector sidecar.

AccessLogConfiguration

Path field

Tipe

Deskripsi

Nilai contoh

logEncoding

String

Format output untuk log. Nilai yang valid adalah JSON dan TEXT.

JSON

logProject

String

Proyek Alibaba Cloud Log Service (SLS) tujuan untuk log.

Penting

Field ini hanya dapat dikonfigurasi pada versi ASM 1.25 dan lebih baru.

log-project-test

gatewayEnabled

Boolean

Jika true, mengumpulkan dan mengirim log akses dari gerbang ke Alibaba Cloud Log Service (SLS).

true

sidecarEnabled

Boolean

Jika true, mengumpulkan dan mengirim log akses dari sidecar ke Alibaba Cloud Log Service (SLS).

true

ztunnelEnabled

Boolean

Jika true, mengumpulkan dan mengirim log akses dari Ztunnel ke Alibaba Cloud Log Service (SLS).

Penting

Field ini hanya dapat dikonfigurasi pada versi ASM 1.25 dan lebih baru.

true

gatewayLifecycle

Integer

Periode retensi dalam hari untuk log akses gerbang. Default: 90.

30

sidecarLifecycle

Integer

Periode retensi dalam hari untuk log akses sidecar. Default: 90.

30

ztunnelLifecycle

Integer

Periode retensi dalam hari untuk log akses Ztunnel. Default: 90.

Penting

Field ini hanya dapat dikonfigurasi pada versi ASM 1.25 dan lebih baru.

30

RatelimitService

Path field

Type

Deskripsi

Nilai contoh

Lingkup

enabled

Bool

Menentukan apakah layanan pembatasan laju global diaktifkan.

true

Kemampuan pembatasan laju global.

replicas

Int

Jumlah replika untuk layanan pembatasan laju.

1

Ketersediaan dan performa layanan pembatasan laju.

resources

Object

Konfigurasi sumber daya untuk layanan pembatasan laju.

limits:
  cpu: 500m
  memory: 512Mi
requests:
  cpu: 100m
  memory: 128Mi

Ketersediaan dan performa layanan pembatasan laju.

redis

Object

Konfigurasi untuk instans Redis yang digunakan oleh layanan pembatasan laju.

Catatan

Layanan pembatasan laju global menggunakan Redis untuk menyimpan kebijakan dan keputusan pembatasan laju.

    redis:
      authSecret: redis-secret
      url: redis.istio-system.svc:6379

Backend status pembatasan laju.

redis.type

String

Jenis kluster Redis. Nilai yang valid adalah single, cluster, dan sentinel. Nilai default adalah single.

single

Backend status pembatasan laju.

redis.url

String

Alamat Redis.

redis.istio-system.svc.cluster.local:6379

Backend status pembatasan laju.

redis.auth

String

Informasi autentikasi untuk Redis. Formatnya adalah password atau user:password. (Untuk keamanan, kami merekomendasikan Anda menggunakan AuthSecret.)

xxxxxx

Manajemen keamanan kredensial.

redis.authSecret

String

Nama Secret yang menyimpan kredensial autentikasi Redis.

Catatan

Secret ini harus dideploy di namespace istio-system dan berisi informasi autentikasi yang dienkripsi Base64 dalam kunci redis-auth.

apiVersion: v1
data:
  redis-auth: ${BASE64_ENCODED_CREDENTIALS}
kind: Secret
metadata:
  name: redis-secret
  namespace: istio-system
type: Opaque

Manajemen keamanan kredensial.

redis.cacheKeyPrefix

String

Awalan untuk kunci cache Redis. Default kosong.

N/A

Backend status pembatasan laju.

Catatan

Kami merekomendasikan penggunaan Alibaba Cloud Redis untuk memastikan ketersediaan tinggi. Anda dapat mengonfigurasi parameter rateLimitService.redis.type sesuai dengan jenis instans Redis Anda berdasarkan tabel berikut.

Jenis instans

Arsitektur

Mode koneksi

Konfigurasi redis.type

Single-node

N/A

N/A

single

Ketersediaan tinggi

Standard (kluster dinonaktifkan)

N/A

single

Kluster (kluster diaktifkan)

Mode koneksi langsung

cluster

Mode proxy

single

ASM menggabungkan seluruh 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 dipasang secara otomatis tanpa perlu pembaruan manual.

PatchConfig

Path field

Tipe

Deskripsi

targetRef

TargetRef

Menentukan resource target yang akan dipatch. Saat ASM melakukan reconciling terhadap setiap resource, informasi aktual resource tersebut dicocokkan dengan kondisi dalam targetRef.

patch

string

Konten Strategic Merge Patch, dalam format YAML atau JSON. ASM menggabungkan patch ini ke resource target.

TargetRef

Path field

Tipe

Wajib

Deskripsi

kind

string

Ya

Kind Kubernetes dari resource target, seperti Deployment, Service, dan ConfigMap.

group

string

Tidak

Grup API dari resource target, seperti apps. Jika parameter ini tidak ditentukan, Grup API tidak divalidasi.

name

string

Tidak

Nama resource target. Jika tidak ditentukan, patch berlaku untuk semua resource dengan Kind yang ditentukan.

namespace

string

Tidak

Namespace tempat resource target berada. Jika tidak ditentukan, Namespace tidak divalidasi.

selector

PatchSelector

Tidak

Memfilter lebih lanjut resource target menggunakan pemilih label. Jika tidak ditentukan, label tidak dicocokkan.

PatchSelector

Path field

Type

Wajib

Deskripsi

labels

map[string]string

Tidak

Peta pasangan kunci-nilai. Resource harus berisi semua label yang ditentukan agar cocok (logika AND).

Penting

Saat ASM melakukan reconciling terhadap resource, aturan berikut digunakan untuk menentukan apakah targetRef cocok dengan resource tersebut:

  1. kind harus identik dengan Kind resource tersebut.

  2. Jika group ditentukan, harus sesuai dengan grup API resource tersebut.

  3. Jika Anda menentukan name, harus sesuai dengan nama resource tersebut.

  4. Jika namespace ditentukan, harus sama dengan namespace resource tersebut.

  5. Jika selector.labels ditentukan, resource harus berisi semua label yang disebutkan (relasi AND).