All Products
Search
Document Center

Alibaba Cloud Service Mesh:Konfigurasi Ztunnel

Last Updated:Jun 26, 2026

Dalam mode ambient Service Mesh (ASM), komponen Ztunnel memuat konfigurasi waktu prosesnya dari ConfigMap ztunnel-config di namespace istio-system. Bidang config.yaml dalam ConfigMap ini menentukan pengaturan untuk kebijakan egress, observabilitas L7, dan konfigurasi lainnya. Ztunnel menggunakan mekanisme pemantauan file untuk mendeteksi perubahan konfigurasi dan menerapkannya secara otomatis tanpa perlu restart. Dokumen ini menyediakan contoh YAML dan deskripsi bidang untuk ztunnel-config.

Konfigurasi

ConfigMap ztunnel-config memiliki struktur berikut:

apiVersion: v1
kind: ConfigMap
metadata:
  name: ztunnel-config
  namespace: istio-system
data:
  ztunnel-config.yaml: |
    l7Config:
      enabled: false

    egressPolicies: [ ]

Bidang

Tipe

Wajib

Deskripsi

l7Config

L7Config

Tidak

Konfigurasi untuk observabilitas L7. Jika tidak ditentukan, nilai default akan digunakan.

egressPolicies

EgressPolicy[]

Tidak

Daftar aturan kebijakan egress untuk traffic egress ke layanan di luar kluster. Jika daftar kosong atau tidak ditentukan, semua traffic egress diizinkan secara default.

Penting

Konfigurasi EgressPolicy hanya berlaku untuk layanan di luar kluster. Layanan yang terdaftar di dalam kluster, seperti sumber daya Service dan ServiceEntry, tidak terpengaruh.

Contoh konfigurasi

Contoh 1: Aktifkan log akses L7

Aktifkan pembuatan log akses L7. Ztunnel akan mengurai traffic HTTP dan TLS serta menghasilkan log akses.

l7Config:
  enabled: true

Contoh 2: Tolak akses ke Blok CIDR pribadi

Contoh ini tidak mengonfigurasi observabilitas L7. Contoh ini menggunakan kebijakan egress untuk menolak akses dari semua namespace ke Blok CIDR pribadi.

egressPolicies:
- matchCidrs:
  - 10.0.0.0/8
  - 172.16.0.0/12
  - 192.168.0.0/16
  policy: Deny

Contoh 3: Aktifkan log akses L7 dan kontrol egress berlapis

Contoh ini mengaktifkan pembuatan log akses L7 dan kebijakan egress. Kebijakan ini mengizinkan passthrough untuk namespace tertentu, menolak akses ke layanan metadata pada port tertentu, dan menolak akses ke Blok CIDR pribadi.

l7Config:
  enabled: true
egressPolicies:
# Izinkan passthrough untuk namespace egress-gateway agar aturan fallback tidak memblokir proxy egress itu sendiri.
- namespaces:
  - egress-gateway
  policy: Passthrough

# Tolak akses ke layanan metadata penyedia cloud pada port 80 dan 443.
- matchCidrs:
  - 169.254.169.254/32
  - fd00:ec2::254/128
  matchPorts:
  - 80
  - 443
  policy: Deny

# Tolak akses ke Blok CIDR pribadi.
- matchCidrs:
  - 10.0.0.0/8
  - 172.16.0.0/12
  - 192.168.0.0/16
  - fc00::/7
  policy: Deny

Detail bidang

L7Config

Bidang

Tipe

Wajib

Deskripsi

enabled

bool

Tidak

Menentukan apakah observabilitas traffic L7 diaktifkan. Nilai default-nya adalah false.

Catatan
  • Saat ini, observabilitas L7 hanya mendukung pembuatan log akses. Pengumpulan metrik tingkat permintaan dan pelacakan terdistribusi belum didukung.

  • Protokol yang didukung adalah HTTP dan TLS.

  • Fitur ini dapat menambahkan beban kinerja sekitar 5%. Evaluasi kebutuhan bisnis Anda sebelum mengaktifkannya.

Bidang HTTP tambahan

Saat observabilitas L7 diaktifkan, setiap transaksi permintaan/tanggapan HTTP menghasilkan entri log akses terpisah. Selain bidang dasar, entri tersebut mencakup bidang-bidang berikut:

Bidang

Deskripsi

Nilai contoh

method

Metode permintaan HTTP

GET, POST, PUT, DELETE

path

Jalur permintaan

/api/v1/users

protocol

Versi protokol

HTTP/1.0, HTTP/1.1

host

Host permintaan

httpbin:8000

response_code

Kode status respons HTTP

200, 404, 503

user_agent

Header permintaan User-Agent. Jika header tidak ada, nilainya adalah "-".

curl/7.88.1

bytes_sent

Ukuran badan permintaan dalam byte, per permintaan

0

bytes_recv

Ukuran badan respons dalam byte, per permintaan

512

duration

Waktu total untuk satu permintaan, dari saat dikirim hingga respons diterima

15ms

Bidang TLS tambahan

Saat observabilitas L7 diaktifkan untuk traffic TLS (bukan HTTP over TLS), Ztunnel mengurai pesan jabat tangan ClientHello dan menambahkan bidang-bidang berikut ke entri log:

Bidang

Deskripsi

Nilai contoh

protocol

Nilai tetap

TLS

tls.sni

Indikasi Nama Server (SNI) dari pesan ClientHello

example.com

tls.alpn

Protokol Application-Layer Protocol Negotiation (ALPN) pertama dari pesan ClientHello. Jika ALPN tidak ditentukan, nilainya adalah "-".

h2, http/1.1

EgressPolicy

Setiap aturan EgressPolicy terdiri dari tiga kondisi pencocokan (namespaces, matchCidrs, dan matchPorts) dan aksi policy. Ztunnel mengevaluasi aturan dalam daftar secara berurutan dari atas ke bawah. Aturan pertama yang memenuhi semua kondisinya akan diterapkan.

Bidang

Tipe

Wajib

Deskripsi

namespaces

string[]

Tidak

Daftar namespace client tempat aturan berlaku. Jika kosong, aturan berlaku untuk semua namespace.

matchCidrs

string[]

Tidak

Daftar rentang alamat IP tujuan dalam format CIDR. Jika kosong, aturan berlaku untuk semua alamat IP tujuan. Untuk mengontrol traffic IPv4 dan IPv6, Anda harus mengonfigurasi rentang CIDR masing-masing secara terpisah.

matchPorts

int[]

Tidak

Daftar port tujuan. Jika kosong, aturan berlaku untuk semua port.

policy

string

Ya

Aksi yang akan diambil. Nilai yang valid adalah:

  • Passthrough

  • Deny

EgressPolicyAction

Nilai berikut tersedia untuk bidang policy:

Nilai

Deskripsi

Passthrough

Meneruskan traffic langsung ke alamat IP tujuan melalui TCP, melewati proxy mesh.

Deny

Langsung menjatuhkan permintaan, sehingga tidak mencapai tujuan.

Batasan konfigurasi

  • Ztunnel mengevaluasi aturan dalam egressPolicies secara berurutan. Ztunnel menerapkan aturan pertama yang memenuhi semua kondisi namespaces, matchCidrs, dan matchPorts-nya, lalu mengabaikan aturan berikutnya.

  • Bidang namespaces mencocokkan namespace klien (sumber permintaan), bukan namespace layanan tujuan.

  • Bidang matchCidrs mencocokkan alamat IP tujuan, bukan nama domain. Untuk mengontrol lalu lintas berdasarkan nama domain, Anda harus mendaftarkan layanan eksternal sebagai ServiceEntry di mesh.

  • Bidang matchPorts mencocokkan port tujuan (port remote dari permintaan), bukan port sumber klien.

  • Jika permintaan tidak cocok dengan aturan apa pun dalam egressPolicies, aksi default-nya adalah Passthrough.

  • Ztunnel secara otomatis memuat perubahan konfigurasi melalui mekanisme pemantauan file, tanpa perlu restart Pod Ztunnel. Jika format konfigurasi tidak valid, Ztunnel mempertahankan konfigurasi terakhir yang diketahui baik.