Jika lapisan kontrol Anda melakukan push volume besar konfigurasi yang tidak relevan secara tidak efisien, gunakan fitur optimasi xds adaptif untuk meningkatkan efisiensi push. Fitur ini menganalisis hubungan pemanggilan layanan untuk secara otomatis menghasilkan resource sidecar yang dioptimalkan, lalu hanya melakukan push konfigurasi yang diperlukan ke layanan yang membutuhkannya—sehingga mengurangi komunikasi jaringan serta meningkatkan kinerja dan responsivitas service mesh Anda.
-
Untuk mengaktifkan optimasi xds adaptif, instans ASM Anda harus menggunakan versi 1.15.3.63 atau lebih baru. Untuk informasi selengkapnya tentang cara melakukan upgrade instans, lihat Upgrade an ASM instance.
-
Fitur optimasi xds adaptif hanya mendukung layanan yang menggunakan protokol HTTP.
Informasi latar belakang
Secara default, service mesh tidak dapat menentukan dependensi pemanggilan antarlayanan. Oleh karena itu, konfigurasi sidecar menyimpan informasi tentang semua layanan di bidang data. Setiap perubahan pada lapisan kontrol atau bidang data—seperti pembuatan aturan virtual service baru di lapisan kontrol—menyebabkan lapisan kontrol melakukan push konfigurasi baru ke semua sidecar di bidang data.
Untuk mengatasi hal ini, aktifkan fitur optimasi xds adaptif agar secara otomatis membuat resource sidecar yang mengoptimalkan push konfigurasi. Setelah Anda mengaktifkan fitur ini, sebuah gerbang keluar (egress gateway) bernama istio-axds-egressgateway diterapkan di kluster. Seluruh trafik HTTP awal diarahkan ke gerbang keluar ini, yang secara otomatis menganalisis dependensi layanan berdasarkan log akses. Proses ini sepenuhnya otomatis. Untuk informasi selengkapnya tentang efek optimasi penerapan resource sidecar, lihat Configuration push optimization with sidecar resources.
Prasyarat
-
Anda telah menerapkan resource Istio untuk mengarahkan traffic.
-
Helm telah diinstal.
Langkah 1: Aktifkan optimasi xds adaptif
-
Masuk ke ASM console. Di panel navigasi sebelah kiri, pilih .
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih .
-
Pada halaman Adaptive xds optimization, aktifkan sakelar Enable adaptive xds optimization. Pada kotak dialog Confirm, klik OK.
Setelah Anda mengklik OK, status Updating akan ditampilkan di bawah sakelar Enable adaptive xds optimization. Setelah pembaruan selesai, sakelar Enable adaptive xds optimization akan aktif dan daftar namespace yang dapat dioptimalkan secara adaptif akan ditampilkan di bawahnya.
Langkah 2: Aktifkan optimasi namespace
Saat Anda mengaktifkan optimasi xds adaptif untuk suatu namespace, fitur ini secara otomatis mengoptimalkan semua layanan di dalamnya menggunakan resource sidecar. Atau, Anda dapat mengaktifkan fitur ini untuk layanan tertentu dengan menambahkan anotasi asm.alibabacloud.com/asm-adaptive-xds: true ke bagian annotations layanan tersebut.
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih .
-
Pada halaman Adaptive xds optimization, pada daftar Select namespaces to be optimized, aktifkan sakelar di samping namespace layanan target. Contoh ini menggunakan namespace default. Pada kotak dialog Confirm, klik OK.
-
Pada halaman detail instans ASM, pilih di panel navigasi sebelah kiri.
-
Pada halaman Sidecar Traffic Configuration, lihat detail resource sidecar.
Anda dapat melihat resource sidecar yang dibuat secara otomatis dengan nama yang diawali dengan axds. Setiap resource sidecar sesuai dengan satu layanan dalam aplikasi Bookinfo yang telah Anda terapkan sebagai bagian dari prasyarat. Halaman ini menampilkan empat resource sidecar: axds-details (cakupan
app:details), axds-productpage (cakupanapp:productpage), axds-ratings (cakupanapp:ratings), dan axds-reviews (cakupanapp:reviews). Sumber (Source) semua resource adalah System, dan Namespace-nya adalahdefault.
Langkah 3: Picu optimasi
-
Pada bilah alamat browser Anda, masukkan
http://{IP address of the ingress gateway}/productpageuntuk mengakses aplikasi Bookinfo.Ganti
{IP address of the ingress gateway}dengan alamat IP yang Anda peroleh pada langkah sebelumnya. -
Verifikasi resource sidecar yang telah dioptimalkan secara adaptif.
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih .
-
Pada halaman Sidecar Traffic Configuration, temukan resource axds-productpage dan klik View YAML pada kolom Actions. Berikut contohnya.
apiVersion: networking.istio.io/v1beta1 kind: Sidecar metadata: annotations: adapted-svc: productpage.default.svc.cluster.local creationTimestamp: '2024-01-05T07:52:56Z' generation: 4 labels: asm-adaptive-xds-system: 'true' asm-system: 'true' provider: asm name: axds-productpage namespace: default resourceVersion: '23688435' uid: 753e3603-6bee-4dd1-b1fc-2e735a88**** spec: egress: - hosts: - arms-prom/* - default/details.default.svc.cluster.local - default/kubernetes.default.svc.cluster.local - default/reviews.default.svc.cluster.local - istio-system/* - kube-system/* workloadSelector: labels: app: productpageAnda dapat melihat bahwa setelah mengakses aplikasi Bookinfo, resource Sidecar
axds-productpageyang dihasilkan untuk mengoptimalkan layananproductpagetelah secara otomatis menambahkan layanandetailsdanreviewsyang menjadi dependensi layananproductpage, tanpa memerlukan konfigurasi manual.
-
Optimasi xds adaptif: perbandingan kinerja
Pengujian berikut membandingkan kinerja lapisan kontrol dan bidang data di namespace asm-perf dalam dua skenario: dengan optimasi xds adaptif dinonaktifkan dan dengan fitur tersebut diaktifkan.
-
Perbesar workload: Perbesar deployment
httpbindari 2 menjadi 400 replika. -
Kirimkan traffic pengujian: Kirim permintaan acak dari aplikasi
sleepke berbagai aplikasihttpbinuntuk memicu push konfigurasi adaptif baru. -
Mulai ulang workload: Picu redeployment aplikasi
httpbinuntuk mensimulasikan skenario penskalaan dan pembaruan workload.
Langkah 1: Siapkan lingkungan
-
Clone repositori skrip contoh.
git clone https://github.com/AliyunContainerService/asm-labs.git && \ cd asm-labs/asm-perf/adativexds -
Siapkan lingkungan pengujian.
bash run.sh -sPerintah ini membuat resource berikut di kluster Anda:
-
Namespace
asm-perf. -
Workload
prometheusdangrafanauntuk pemantauan. -
Satu aplikasi
sleepdan satu aplikasihttpbindengan dua replika untuk menerima push konfigurasi.
Jalankan perintah berikut untuk meneruskan port ke dasbor pemantauan. Anda kemudian dapat mengakses dasbor tersebut melalui
localhost:3000.kubectl port-forward svc/grafana -n asm-perf 3000 -
Langkah 2: Bandingkan kinerja
-
Lakukan scale out pada beban kerja.
bash run.sh -suTunggu sebentar lalu periksa dasbor. Hasil berikut diharapkan:
Tanpa optimasi xds adaptif
Penggunaan CPU aplikasi Sleep

Penggunaan memori aplikasi Sleep

Lebar pita jaringan aplikasi Sleep

Trafik lapisan kontrol
-
Pada halaman Base Information instans ASM, catat ID CLB yang terkait dengan CLB Instance for Exposing Istio Pilot.
-
Masuk ke Classic Load Balancer (CLB) console. Klik ikon Monitoring untuk CLB yang sesuai, pilih , lalu lihat grafik Listener Traffic.

Saat layanan di mesh berubah, lapisan kontrol melakukan push konfigurasi baru, yang menimbulkan overhead kinerja tertentu.
Dengan optimasi xds adaptif
Penggunaan CPU aplikasi Sleep

Penggunaan memori aplikasi Sleep

Lebar pita jaringan aplikasi Sleep

Trafik lapisan kontrol

Saat layanan di mesh berubah, lapisan kontrol melakukan push konfigurasi baru, yang menimbulkan overhead kinerja tertentu. Namun, dampak terhadap kinerja lebih rendah dibandingkan skenario tanpa optimasi xds adaptif.
Konfigurasi resource sidecar
-
Lihat konfigurasi resource sidecar aktif untuk aplikasi
sleep.kubectl get sidecar axds-sleep -n asm-perf -o yamlOutput yang diharapkan:
apiVersion: networking.istio.io/v1 kind: Sidecar metadata: annotations: adapted-svc: sleep.asm-perf.svc.cluster.local creationTimestamp: "2025-04-03T03:09:42Z" generation: 2 labels: asm-adaptive-xds-system: "true" asm-system: "true" provider: asm name: axds-sleep namespace: asm-perf resourceVersion: "14844729886" uid: 31dfc081-b0ec-403f-b420-91f3c3e5f8fb spec: egress: - hosts: - arms-prom/* - asm-perf/grafana.asm-perf.svc.cluster.local - default/kubernetes.default.svc.cluster.local - istio-system/* - kube-system/* workloadSelector: labels: app: sleepBidang
spec.egress.hostsmencantumkan beberapa layanan. Artinya, hanya perubahan pada layanan-layanan yang tercantum ini yang akan memicu push ulang konfigurasi ke aplikasisleep. Untuk informasi selengkapnya tentang dampak kinerja resource sidecar, lihat Configuration push optimization with sidecar resources.
-
-
Kirimkan traffic pengujian. Kirim total 100 permintaan acak dari aplikasi
sleepke berbagai aplikasihttpbin.bash run.sh -tSetelah permintaan selesai, periksa kembali dasbor.
Tanpa optimasi xds adaptif
Penggunaan CPU aplikasi Sleep

Penggunaan memori aplikasi Sleep

Lebar pita jaringan aplikasi Sleep

Trafik lapisan kontrol

Saat optimasi xds adaptif dinonaktifkan, pengiriman traffic dari aplikasi
sleeptidak memengaruhi pengiriman konfigurasi karena setiap workload sudah memiliki konfigurasi lengkap.Dengan optimasi xds adaptif
Penggunaan CPU aplikasi Sleep

Penggunaan memori aplikasi Sleep

Lebar pita jaringan aplikasi Sleep

Trafik lapisan kontrol

Pengiriman traffic dari aplikasi
sleepmemicu push konfigurasi dari lapisan kontrol.Konfigurasi resource sidecar
-
Lihat konfigurasi resource sidecar aktif untuk aplikasi
sleep.kubectl get sidecar axds-sleep -n asm-perf -o yamlOutput yang diharapkan:
Bidang
spec.egress.hostsmencantumkan beberapa layanan. Artinya, hanya perubahan pada layanan-layanan yang tercantum ini yang akan memicu push ulang konfigurasi ke aplikasisleep. Untuk informasi selengkapnya tentang dampak kinerja resource sidecar, lihat Configuration push optimization with sidecar resources.
-
-
Mulai ulang workload.
bash run.sh -rSetelah semua workload dimulai ulang, periksa perubahan trafik lapisan kontrol.
Tanpa optimasi xds adaptif
Trafik lapisan kontrol

Saat layanan di mesh berubah, lapisan kontrol melakukan push konfigurasi baru, yang menimbulkan overhead kinerja tertentu.
Dengan optimasi xds adaptif
Trafik lapisan kontrol

Saat melakukan restart workload, volume push konfigurasi berkurang secara signifikan dibandingkan skenario tanpa optimasi xds adaptif.
-
Kembalikan lingkungan pengujian.
bash run.sh -sdDibutuhkan sekitar dua menit bagi Pod aplikasi
httpbinuntuk berkurang dari 400 menjadi 2, sehingga mengembalikan lingkungan ke kondisi awal.
Operasi terkait
Nonaktifkan optimasi xds adaptif
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih .
-
Pada halaman Adaptive xds optimization, nonaktifkan sakelar Enable adaptive xds optimization. Pada kotak dialog Confirm, klik OK.
Setelah Anda mengklik OK, status Updating akan ditampilkan di bawah sakelar Enable adaptive xds optimization. Setelah pembaruan selesai, sakelar Enable adaptive xds optimization akan dinonaktifkan.
-
Pada halaman detail instans, di panel navigasi sebelah kiri, pilih .
Resource sidecar yang dibuat oleh fitur optimasi xds adaptif kini telah dihapus.
Ubah konfigurasi gerbang keluar (egress gateway)
Mengaktifkan optimasi xds adaptif akan menerapkan gerbang keluar bernama istio-axds-egressgateway ke kluster ACK Anda. Gerbang ini terlihat pada halaman kluster target Anda di Konsol ACK. Seluruh trafik HTTP awal diarahkan ke gerbang keluar ini, yang secara otomatis menganalisis dependensi layanan dari log aksesnya. Anda dapat mengubah konfigurasi gerbang keluar untuk menangani beban lalu lintas yang berbeda sesuai kebutuhan.
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih .
-
Pada halaman Adaptive xds optimization, klik tab Egress Gateway Configuration. Ubah konfigurasi gerbang keluar sesuai kebutuhan, lalu klik Update Settings.
Setelah Anda mengklik Update Settings, service mesh akan memasuki status pembaruan singkat. Setelah pembaruan selesai, gerbang keluar akan diperbarui dengan konfigurasi yang ditentukan.
CatatanASM memungkinkan Anda mengubah pengaturan resource gerbang keluar, jumlah replika gerbang, status auto-scaling HPA, ambang batas pemantauan metrik HPA, serta jumlah replika HPA maksimum dan minimum.