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
Gateway masuk telah diterapkan. Untuk informasi lebih lanjut, lihat Buat gateway masuk.
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.
Aktifkan injeksi otomatis proxy sidecar untuk namespace default. Untuk informasi lebih lanjut, lihat Aktifkan injeksi otomatis proxy sidecar.
Terapkan aplikasi di namespace default. Untuk informasi lebih lanjut, lihat Terapkan aplikasi di kluster ACK yang ditambahkan ke instance ASM.
Ubah memori minimum dari proxy sidecar.
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel sebelah kiri, pilih .
Di halaman Deployments, temukan aplikasi yang ingin dimodifikasi dan pilih di kolom Actions.
Di kotak dialog Edit YAML, tambahkan konten berikut di bawah parameter
template. Lalu, klik Update.annotations: sidecar.istio.io/proxyMemory: 14Mi
Periksa apakah memori proxy sidecar telah dimodifikasi.
Di panel navigasi sebelah kiri halaman detail, pilih .
Di halaman Pods, temukan pod yang ingin dilihat dan klik View Details di kolom Actions.
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.
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.
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 |
concurrency | 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 | 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 | 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. |