All Products
Search
Document Center

Alibaba Cloud Service Mesh:Gunakan suite penjadwalan trafik ASM untuk mengontrol trafik pada sistem terdistribusi

Last Updated:Jul 02, 2025

Suite penjadwalan trafik Service Mesh (ASM) menyediakan arsitektur penjadwalan trafik dinamis yang non-intrusif dan skalabel untuk manajemen serta kontrol terpusat atas semua trafik dalam sistem terdistribusi. Hal ini membantu meningkatkan keandalan aplikasi cloud-native, mengurangi biaya, dan meningkatkan pemanfaatan sumber daya. Topik ini menjelaskan suite penjadwalan trafik ASM dan fiturnya.

Apa itu suite penjadwalan trafik ASM?

Suite penjadwalan trafik ASM adalah model arsitektur penjadwalan trafik terpusat berbasis ASM. Dirancang untuk menjadwalkan dan mengelola permintaan dalam aplikasi terdistribusi cloud-native secara terpusat.

Suite penjadwalan trafik ASM terdiri dari Agen dan pengontrol yang menyediakan serangkaian kebijakan penjadwalan trafik yang telah ditentukan sebelumnya. Kebijakan tersebut diterbitkan oleh pengontrol ke Agen untuk secara dinamis mengontrol penjadwalan trafik. Ketika proxy sidecar meneruskan permintaan arah masuk atau arah keluar dari pod, Agen memberikan keputusan penjadwalan kepada proxy tersebut untuk membatasi atau menambah antrian permintaan.

Aktifkan suite penjadwalan trafik ASM

Catatan

ACK Serverless dan Container Compute Service (ACS) tidak mendukung suite penjadwalan trafik ASM.

Untuk menggunakan suite penjadwalan trafik ASM, pastikan versi instance ASM Anda adalah 1.21.6.82 atau lebih baru dan klaster Kubernetes telah ditambahkan ke instance ASM Anda. Untuk informasi lebih lanjut, lihat Tambahkan klaster ke instance ASM.

Untuk mengaktifkan suite penjadwalan trafik ASM, ikuti langkah-langkah berikut:

Pada konsol ASM

  1. Masuk ke Konsol ASM. Di panel navigasi di sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Klik nama instance ASM. Di panel navigasi di sebelah kiri, pilih Traffic Management Center > Traffic Protection and Scheduling.

  3. Pilih tab Advanced Traffic Scheduling dan klik Enable Traffic Scheduling.

  4. Lihat tabel di bawah ini, lalu klik OK.

    Item konfigurasi

    Deskripsi

    Storage Class

    Kelas penyimpanan yang valid yang diperlukan agar suite penjadwalan trafik dapat mengimplementasikan pertukaran data antara agen penjadwalan dan metadata.

    Configure Resource

    Konfigurasi untuk Pod Agen.

    Limit default adalah 2 CPU dan 1.024MiB.

    Request secara default adalah 0,5 CPU dan 512 MiB.

    Timeout Period

    Suite penjadwalan trafik mendukung antrian permintaan ketika sistem kelebihan beban. Permintaan yang berada dalam antrian selama periode tertentu akan dibuang.

    Effective Scope

    Jika tidak dikonfigurasi, cakupan default menjadi global. Cakupan yang didukung meliputi:

    • Cakupan Gateway: Berlaku untuk sumber daya yang terkait dengan gateway tertentu.

    • Cakupan Workload: Berlaku untuk workload tertentu.

    • Cakupan Namespace: Berlaku untuk namespace tertentu.

Dengan kubectl

  1. Gunakan kubectl untuk terhubung ke instance ASM. Untuk informasi lebih lanjut, lihat Gunakan kubectl pada control plane untuk mengakses sumber daya Istio.

  2. Jalankan perintah berikut:

    kubectl patch asmmeshconfig default --type=merge --patch='{"spec":{"adaptiveSchedulerConfiguration":{"enabled":true,"schedulerScopes":[{"namespace":"default"}]}}}'

Kebijakan penjadwalan trafik yang didukung oleh suite penjadwalan trafik ASM

Tabel berikut menjelaskan kebijakan yang didukung oleh suite penjadwalan trafik ASM.

Kebijakan

Deskripsi

Referensi

Pembatasan laju trafik

Kebijakan pembatasan laju trafik dibuat menggunakan CustomResourceDefinition (CRD) RateLimtingPolicy. Kebijakan ini menyediakan throttling global untuk layanan tertentu dalam instance ASM. Dibandingkan dengan solusi throttling yang disediakan oleh Istio open source, kebijakan yang dibuat menggunakan CRD RateLimtingPolicy mendukung fitur throttling tingkat lanjut seperti throttling berbasis pengguna, pengaturan jendela trafik burst, dan konfigurasi laju konsumsi kustom untuk token permintaan.

Gunakan RateLimitingPolicy untuk mengimplementasikan throttling berbasis pengguna

Penjadwalan permintaan berbasis prioritas berdasarkan latensi rata-rata

Kebijakan penjadwalan permintaan berbasis prioritas membandingkan latensi waktu nyata dengan latensi rata-rata historis untuk menentukan apakah terjadi overload trafik. Jika terjadi overload trafik, mekanisme penjadwalan berbasis bucket token dan prioritas digunakan untuk menjadwalkan permintaan. Saat sistem kelebihan beban, permintaan dengan prioritas tinggi dapat diproses terlebih dahulu.

Gunakan AverageLatencySchedulingPolicy untuk mengimplementasikan penjadwalan permintaan berbasis prioritas

Kontrol konkurensi

Kontrol konkurensi mencatat permintaan yang sedang diproses (yaitu, permintaan yang telah dikirim tetapi belum direspons). Ketika jumlah permintaan yang sedang diproses melebihi batas yang ditentukan, permintaan masuk berikutnya akan ditolak.

Gunakan ConcurrencyLimitingPolicy untuk mengimplementasikan pembatasan konkurensi permintaan

Penjadwalan permintaan berbasis prioritas di bawah konkurensi terkendali

ConcurrencySchedulingPolicy menentukan apakah trafik kelebihan beban berdasarkan batas permintaan konkuren. Ketika jumlah permintaan konkuren melebihi batas atas yang ditentukan, permintaan berikutnya akan diatur dalam antrian dan dijadwalkan berdasarkan prioritas mereka.

Gunakan ConcurrencySchedulingPolicy untuk mengimplementasikan penjadwalan permintaan berbasis prioritas di bawah konkurensi terkendali

Kebijakan rilis layanan progresif

Suite penjadwalan trafik ASM mendukung kebijakan rilis layanan progresif. Saat merilis layanan baru, Anda dapat mengonfigurasi kebijakan rilis progresif untuk secara bertahap meningkatkan trafik yang diterima oleh layanan. Ini memastikan bahwa layanan dirilis secara mulus.

Gunakan LoadRampingPolicy untuk mengimplementasikan rilis layanan progresif

Penjadwalan permintaan berbasis prioritas dengan kuota permintaan tertentu

Ketika jumlah permintaan yang sedang diproses dalam satu unit waktu dalam sistem melebihi kuota yang ditentukan, permintaan berikutnya akan diatur dalam antrian dan permintaan dengan prioritas tinggi dapat diproses terlebih dahulu.

Gunakan QuotaSchedulingPolicy untuk mengimplementasikan manajemen kuota panggilan permintaan

Konfigurasi untuk mengumpulkan metrik pemantauan suite penjadwalan trafik ASM

Jika klaster Kubernetes Anda terintegrasi dengan instance Managed Service for Prometheus atau instance Prometheus yang dibangun sendiri, Anda dapat melakukan konfigurasi berikut untuk mengumpulkan metrik pemantauan agen penjadwalan permintaan ASM. Ini membantu Anda memverifikasi apakah kebijakan tertentu dalam suite penjadwalan trafik ASM berlaku.

Layanan terkelola untuk Prometheus

Jalankan kode berikut untuk menambahkan aturan pengumpulan kustom. Untuk informasi lebih lanjut, lihat Konfigurasi penemuan layanan Prometheus lainnya.

scrape_configs:
- job_name: asm-adaptive-scheduler-stats
  scrape_interval: 30s
  scrape_timeout: 30s
  metrics_path: /metrics
  scheme: http
  kubernetes_sd_configs:
  - role: pod
  relabel_configs:
  - source_labels:
    - __meta_kubernetes_namespace
    action: keep
    regex: istio-system
  - source_labels:
    - __meta_kubernetes_pod_container_port_name
    action: keep
    regex: server
  - source_labels:
    - __meta_kubernetes_pod_container_name
    action: keep
    regex: aperture-agent

Instance Prometheus yang dibangun sendiri

Tambahkan file JSON dari Layanan terkelola untuk Prometheus ke node scrape_configs instance Prometheus. Untuk informasi lebih lanjut, lihat Konfigurasi Prometheus.