全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Konfigurasikan proxy sidecar dengan menambahkan anotasi sumber daya

更新时间:Jul 02, 2025

Service Mesh (ASM) memungkinkan Anda memodifikasi proxy sidecar dengan menambahkan anotasi sumber daya. Topik ini menjelaskan cara mengonfigurasi proxy sidecar melalui penambahan anotasi sumber daya dan pengaturan bidang ProxyConfig.

Prasyarat

Tambahkan anotasi sumber daya

ASM memungkinkan Anda memodifikasi proxy sidecar dengan menambahkan anotasi sumber daya. Bagian ini menjelaskan cara mengonfigurasi proxy sidecar melalui penambahan anotasi sumber daya dan pengaturan bidang ProxyConfig. Untuk informasi lebih lanjut tentang anotasi lainnya, lihat Lampiran 1: Anotasi sumber daya Istio.

  1. Aktifkan injeksi otomatis proxy sidecar untuk namespace default. Untuk informasi lebih lanjut, lihat Aktifkan injeksi otomatis proxy sidecar.

  2. Terapkan aplikasi di namespace default. Untuk informasi lebih lanjut, lihat Terapkan aplikasi di kluster ACK yang ditambahkan ke instance ASM.

  3. Ubah memori minimum dari proxy sidecar.

    1. Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.

    2. Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel sebelah kiri, pilih Workloads > Deployments.

    3. Di halaman Deployments, temukan aplikasi yang ingin dimodifikasi dan pilih More > View in YAML di kolom Actions.

    4. Di kotak dialog Edit YAML, tambahkan konten berikut di bawah parameter template. Lalu, klik Update.

      annotations:
        sidecar.istio.io/proxyMemory: 14Mi

      内存

  4. Periksa apakah memori proxy sidecar telah dimodifikasi.

    1. Di panel navigasi sebelah kiri halaman detail, pilih Workloads > Pods.

    2. Di halaman Pods, temukan pod yang ingin dilihat dan klik View Details di kolom Actions.

    3. Di tab Container, klik istio-proxy.

      Anda dapat melihat bahwa memori yang dibutuhkan untuk container istio-proxy adalah 14 MiB.所需资源

Setel bidang ProxyConfig

ASM memungkinkan Anda mengonfigurasi proxy sidecar dengan memodifikasi bidang ProxyConfig di pod. Untuk informasi lebih lanjut tentang bidang ProxyConfig, lihat Lampiran 2: Bidang ProxyConfig.

Catatan

Nilai dari anotasi proxy.istio.io/config berada dalam format YAML atau JSON.

Prosedur untuk menyetel bidang ProxyConfig serupa dengan prosedur untuk menambahkan anotasi sumber daya. Untuk informasi lebih lanjut, lihat langkah-langkah yang dijelaskan di bagian "Tambahkan anotasi sumber daya". Dalam contoh ini, digunakan bidang ProxyConfig umum.

Contoh 1: Setel durasi drain terminasi

Anda dapat memodifikasi durasi drain terminasi dengan menyetel bidang terminationDrainDuration. Durasi drain terminasi menunjukkan jumlah waktu yang dihabiskan oleh container istio-proxy sebelum dihentikan atau dimatikan ketika container aplikasi diakhiri.

Tambahkan konten berikut ke file YAML aplikasi. Ketika container aplikasi diakhiri, container istio-proxy menunggu selama 3 detik.

annotations:
  proxy.istio.io/config: |
    terminationDrainDuration: 3s

中止排出时间

Di halaman Pod, temukan pod yang ingin dilihat dan klik View Details di kolom Actions. Di tab Container, klik istio-proxy. Anda dapat melihat bahwa durasi drain terminasi adalah 3 detik.proxy配置

Contoh 2: Setel urutan awal container istio-proxy

Secara default, bidang holdApplicationUntilProxyStarts disetel ke true secara global di ASM untuk memastikan bahwa container istio-proxy telah dimulai sebelum pod dimulai. Jika container istio-proxy belum dimulai ketika pod dimulai, pod gagal menerima lalu lintas jaringan.

holdApplicationUntilProxyStarts digunakan untuk mengontrol perilaku awal container aplikasi setelah injeksi proxy sidecar. Ketika holdApplicationUntilProxyStarts disetel ke true, plugin Container Network Interface (CNI) Istio atau injector sidecar memodifikasi YAML pod Kubernetes untuk mencegah container aplikasi mulai sampai container istio-proxy siap menerima lalu lintas. Ini memastikan bahwa semua lalu lintas melewati container istio-proxy sebelum pod menerima lalu lintas, sehingga memungkinkan manajemen lalu lintas, pemantauan, dan kebijakan keamanan langsung berlaku. Dalam kebanyakan kasus, kami merekomendasikan Anda menyetel holdApplicationUntilProxyStarts ke true untuk memastikan bahwa lalu lintas jaringan dikelola dengan benar. Dalam beberapa kasus khusus, menyetel holdApplicationUntilProxyStarts ke false mungkin lebih sesuai.

Di halaman Pod, temukan pod yang ingin dilihat dan klik View Details di kolom Actions. Klik tab Events. Kemudian, Anda dapat melihat bahwa container istio-proxy dimulai setelah pod dimulai.启动

Lampiran 1: Anotasi sumber daya Istio

Anotasi

Deskripsi

proxy.istio.io/config

Mengganti konfigurasi proxy.

readiness.status.sidecar.istio.io/applicationPorts

Menentukan daftar port yang diekspos oleh container aplikasi. Anotasi ini digunakan oleh probe kesiapan proxy sidecar untuk menentukan apakah proxy sidecar dikonfigurasi dan siap menerima lalu lintas.

readiness.status.sidecar.istio.io/failureThreshold

Menentukan ambang kegagalan untuk probe kesiapan proxy sidecar.

readiness.status.sidecar.istio.io/initialDelaySeconds

Menentukan penundaan awal untuk probe kesiapan proxy sidecar. Unit: detik.

readiness.status.sidecar.istio.io/periodSeconds

Menentukan periode untuk probe kesiapan proxy sidecar. Unit: detik.

sidecar.istio.io/componentLogLevel

Menentukan tingkat log komponen untuk proxy sidecar.

sidecar.istio.io/enableCoreDump

Menentukan apakah akan mengaktifkan core dump untuk proxy sidecar.

sidecar.istio.io/extraStatTags

Daftar tag tambahan yang diekstraksi dari telemetri Istio dalam-proxy. Setiap tag tambahan perlu ada dalam daftar ini.

sidecar.istio.io/inject

Menentukan apakah akan mengaktifkan injeksi otomatis proxy sidecar.

sidecar.istio.io/interceptionMode

Menentukan mode (REDIRECT atau TPROXY) yang digunakan untuk mengarahkan ulang lalu lintas masuk ke Envoy.

sidecar.istio.io/logLevel

Menentukan tingkat log untuk proxy sidecar.

sidecar.istio.io/proxyCPU

Menentukan pengaturan CPU yang diminta untuk proxy sidecar.

sidecar.istio.io/proxyCPULimit

Menentukan batas CPU untuk proxy sidecar.

sidecar.istio.io/proxyMemory

Menentukan pengaturan memori yang diminta untuk proxy sidecar.

sidecar.istio.io/proxyMemoryLimit

Menentukan batas memori untuk proxy sidecar.

sidecar.istio.io/rewriteAppHTTPProbers

Menulis ulang probe HTTP kesiapan dan kelangsungan hidup agar dialihkan ke proxy sidecar.

status.sidecar.istio.io/port

Menentukan port status HTTP dari proxy sidecar. Jika nomor port adalah 0, proxy sidecar tidak menyediakan status.

traffic.sidecar.istio.io/excludeInboundPorts

Daftar port masuk yang dipisahkan koma yang dikecualikan dari pengalihan lalu lintas ke proxy sidecar. Anotasi ini valid hanya ketika semua lalu lintas masuk dialihkan ke proxy sidecar. Karakter wildcard (*) menunjukkan port masuk apa pun.

traffic.sidecar.istio.io/excludeOutboundIPRanges

Daftar blok CIDR yang dipisahkan koma yang dikecualikan dari pengalihan lalu lintas keluar ke proxy sidecar. Anotasi ini valid hanya ketika semua lalu lintas keluar dialihkan ke proxy sidecar. Karakter wildcard (*) menunjukkan blok CIDR apa pun.

traffic.sidecar.istio.io/excludeOutboundPorts

Daftar port keluar yang dipisahkan koma yang dikecualikan dari pengalihan lalu lintas ke proxy sidecar.

traffic.sidecar.istio.io/includeInboundPorts

Daftar port masuk yang dipisahkan koma untuk mana lalu lintas harus dialihkan ke proxy sidecar. Karakter wildcard (*) menunjukkan port masuk apa pun. Daftar kosong menunjukkan bahwa pengalihan semua lalu lintas masuk ke proxy sidecar dinonaktifkan.

traffic.sidecar.istio.io/includeOutboundIPRanges

Daftar blok CIDR yang dipisahkan koma untuk mana lalu lintas keluar harus dialihkan ke proxy sidecar. Karakter wildcard (*) menunjukkan blok CIDR apa pun. Daftar kosong menunjukkan bahwa pengalihan semua lalu lintas keluar ke proxy sidecar dinonaktifkan.

traffic.sidecar.istio.io/includeOutboundPorts

Daftar port keluar yang dipisahkan koma untuk mana lalu lintas harus dialihkan ke proxy sidecar.

traffic.sidecar.istio.io/kubevirtInterfaces

Daftar antarmuka virtual yang dipisahkan koma yang mana lalu lintas masuknya diperlakukan sebagai lalu lintas keluar.

Lampiran 2: Bidang ProxyConfig

Bidang

Tipe

Deskripsi

configPath

String

Menentukan jalur ke direktori file konfigurasi. Agen proxy menghasilkan konfigurasi aktual dan menyimpannya di direktori ini.

statsdUdpAddress

String

Menentukan alamat IP dan port listener UDP StatsD.

proxyAdminPort

Int32

Menentukan port tempat Envoy mendengarkan perintah administratif. Port default adalah port 15000.

controlPlaneAuthPolicy

AuthenticationPolicy

Menentukan bagaimana proxy diautentikasi ketika terhubung ke plane kontrol. Nilai default adalah MUTUAL_TLS.

concurrency

Int32Value

Menentukan jumlah thread pekerja yang akan dijalankan. Jika bidang ini tidak ditentukan, jumlahnya ditentukan secara otomatis berdasarkan permintaan dan batas CPU. Jika bidang ini disetel ke 0, semua inti pada mesin digunakan. Nilai default adalah 2.

interceptionMode

InboundInterceptionMode

Menentukan mode di mana lalu lintas masuk dialihkan ke proxy sidecar.

tracing

Tracing

Menentukan konfigurasi pelacakan proxy sidecar.

sds

SDS

Menentukan konfigurasi layanan penemuan rahasia (SDS) proxy sidecar.

proxyMetadata

Map<string, string>

Menentukan variabel lingkungan tambahan untuk proxy sidecar. Variabel yang namanya dimulai dengan ISTIO_META_ termasuk dalam bootstrap yang dihasilkan dan dikirim ke server XDS.

statusPort

Map<string, string>

Menentukan port tempat proxy sidecar harus mendengarkan perintah administratif seperti probe kesiapan. Port default adalah port 15020.

terminationDrainDuration

Duration

Menentukan jumlah waktu yang diizinkan untuk koneksi selesai saat proxy dimatikan. Setelah SIGTERM atau SIGINT diterima, agen Istio memberi tahu Envoy aktif untuk mulai menguras, mencegah koneksi baru dan memungkinkan koneksi yang ada selesai. Lalu, agen Istio tidur selama durasi drain terminasi dan kemudian membunuh proses Envoy aktif yang tersisa. Nilai default adalah 5. Unit: detik.

holdApplicationUntilProxyStarts

BoolValue

Menentukan flag Boolean untuk mengaktifkan atau menonaktifkan perilaku holdApplicationUntilProxyStarts. Fitur ini menambahkan hook untuk menunda startup aplikasi hingga proxy pod siap menerima lalu lintas, mengurangi beberapa kondisi balapan saat startup.