All Products
Search
Document Center

Alibaba Cloud Service Mesh:Tingkatkan ketersediaan tinggi dan elastisitas dengan gerbang ASM Serverless

Last Updated:Mar 11, 2026

Ketika layanan Anda mengalami lonjakan lalu lintas—seperti promosi e-commerce atau peningkatan pengguna pada platform edukasi daring—sumber daya gerbang tetap mungkin tidak mencukupi atau menjadi boros selama jam sepi. Jika gerbang ASM Anda berjalan di dalam kluster ACK, kegagalan kluster juga dapat menjatuhkan gerbang dan mengganggu lalu lintas masuk.

Gerbang serverless ASM mengatasi kedua masalah tersebut. Gerbang ini berjalan di luar kluster Container Service for Kubernetes (ACK), pada infrastruktur yang sepenuhnya dikelola oleh Service Mesh (ASM). ASM secara otomatis menangani penyediaan, penskalaan, dan manajemen siklus hidup. Anda tidak perlu mengelola pod gerbang, dan ketersediaan gerbang tidak bergantung pada kluster ACK.

Cara kerja

Gerbang serverless merupakan resource kustom IstioGateway dengan anotasi asm.alibabacloud.com/managed-by-asm: 'true'. Berbeda dengan gerbang ASM standar yang berjalan sebagai pod di dalam kluster ACK, ASM menyediakan gerbang serverless pada infrastruktur terkelolanya sendiri. Anda tidak perlu menentukan ID kluster ACK saat membuat gerbang tersebut.

Lalu lintas mengalir dari klien melalui gerbang serverless ke layanan backend di kluster ACK Anda:

Client --> Serverless gateway (managed by ASM) --> Backend services (ACK clusters)

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Buat gerbang ingress serverless

Terapkan definisi YAML di Konsol ASM untuk membuat gerbang ingress serverless. Satu-satunya perbedaan dari gerbang ASM standar adalah anotasi asm.alibabacloud.com/managed-by-asm: 'true'—Anda tidak perlu menentukan ID kluster ACK.

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

  2. Pada halaman Mesh Management, klik nama instans ASM Anda. Di panel navigasi sebelah kiri, pilih ASM Gateways > Ingress Gateway.

  3. Pada halaman Ingress Gateway, klik Create from YAML, masukkan nama gerbang, tempel YAML berikut, lalu klik Create.

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: IstioGateway
    metadata:
      annotations:
        asm.alibabacloud.com/managed-by-asm: 'true'
        asm.alibabacloud.com/aliyun-logs-project: mesh-log-c4e1bbed247634d0482000d94e947****
      name: ingressgateway
      namespace: istio-system
    spec:
      ....

    Ganti placeholder berikut dengan nilai aktual Anda:

    PlaceholderDescriptionExample
    <ack-cluster-id>ID kluster ACK tempat metrik gerbang akan dikirim. Anotasi ini bersifat opsional.c1a2b3c4d5e6f7g8h9i0j****
    Catatan Gerbang serverless mendukung tipe layanan LoadBalancer dan ClusterIP. Jika Anda mengatur serviceType ke ClusterIP, klien dan pod gerbang harus dapat saling menjangkau—misalnya, pod dalam virtual private cloud (VPC) yang sama yang terhubung melalui plugin jaringan Terway.

Verifikasi gerbang

Setelah gerbang dibuat, gerbang tersebut muncul di halaman Ingress Gateway dengan status Running. Catat alamat IP eksternal yang diberikan ke gerbang—Anda memerlukannya untuk mengakses layanan backend.

Konfigurasikan routing lalu lintas

Untuk mengarahkan lalu lintas melalui gerbang serverless, buat domain HTTP, impor layanan backend, dan definisikan aturan routing.

Buat domain HTTP

  1. Pada halaman Ingress Gateway, klik nama gerbang. Di panel navigasi sebelah kiri, klik Domain/Certificate. Pada tab Domain, klik Create.

  2. Konfigurasikan domain dengan pengaturan berikut lalu klik Create.

    ParameterValue
    Domain Name*
    ProtocolHTTP
    Port Namehttp
    Port80

Impor layanan backend

  1. Di panel navigasi sebelah kiri pada halaman ikhtisar gerbang, klik Upstream Service. Klik Import service.

  2. Pilih default dari daftar drop-down Namespace, pilih productpage dalam daftar layanan, klik ikon tambah untuk memindahkannya ke bagian terpilih, lalu klik Submit.

Buat aturan routing

  1. Di panel navigasi sebelah kiri, klik Route management. Klik Create.

  2. Pada langkah set route detail, konfigurasikan pengaturan berikut, lalu klik Next.

    ParameterValue
    route typehttp
    Namespacedefault
    Nameproductpage
    Method (di bawah Matching Rule)Prefix
    Content (di bawah Matching Rule)/
  3. Pada langkah set route destination, atur select upstream service ke productpage lalu klik Next.

  4. Pada langkah advanced config, klik Create.

Verifikasi routing lalu lintas

Buka browser dan akses http://<gateway-ip>/productpage, ganti <gateway-ip> dengan alamat IP eksternal gerbang serverless Anda.

Untuk menemukan alamat IP gerbang, lihat Obtain the IP address of the ingress gateway.

Halaman productpage dari aplikasi contoh Bookinfo dimuat di browser Anda. Jika Anda mengalami timeout koneksi, pastikan status gerbang adalah Running dan aturan routing dikonfigurasi dengan benar.

Konfigurasikan akses HTTPS

Hasilkan sertifikat TLS, unggah ke ASM, dan buat domain HTTPS pada gerbang.

Hasilkan sertifikat CA

Jalankan perintah berikut untuk menghasilkan Sertifikat tanda tangan sendiri:

# Hasilkan kunci dan sertifikat root CA
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 \
  -subj '/O=myexample Inc./CN=aliyun.com' \
  -keyout aliyun.root.key -out aliyun.root.crt

# Hasilkan permintaan penandatanganan sertifikat (CSR) dan kunci privat
openssl req -out aliyun.com.csr -newkey rsa:2048 -nodes \
  -keyout aliyun.com.key \
  -subj "/CN=aliyun.com/O=myexample organization"

# Tandatangani sertifikat dengan root CA
openssl x509 -req -days 365 -CA aliyun.root.crt -CAkey aliyun.root.key \
  -set_serial 0 -in aliyun.com.csr -out aliyun.com.crt

Unggah sertifikat

  1. Di panel navigasi sebelah kiri instans ASM, pilih ASM Gateways > Certificate Management.

  2. Pada halaman Certificate Management, klik Create. Pada panel Certificate Information, konfigurasikan parameter berikut lalu klik OK.

    ParameterDescription
    NameMasukkan nama sertifikat, misalnya, myexample-credential
    Public Key CertificateTempel konten file aliyun.com.crt
    Private KeyTempel konten file aliyun.com.key

Buat domain HTTPS

  1. Di panel navigasi sebelah kiri, klik Ingress Gateway. Klik nama gerbang, lalu klik Domain/Certificate. Pada tab Domain, klik Create.

  2. Konfigurasikan domain dengan pengaturan berikut lalu klik Create.

    ParameterValue
    Domain Name*
    ProtocolHTTPS
    Port Namehttps
    Port443
    credentialmyexample-credential
    TLS modeSecure connections with standard TLS semantics

Verifikasi akses HTTPS

Jalankan perintah curl berikut untuk memverifikasi akses HTTPS:

curl -k -I -H "Host:aliyun.com" \
  --resolve "aliyun.com:443:<gateway-ip>" \
  https://aliyun.com/productpage

Ganti <gateway-ip> dengan alamat IP eksternal gerbang serverless Anda. Respons sukses mengembalikan status HTTP 200:

HTTP/1.1 200 OK
server: istio-envoy

Jika permintaan gagal, pastikan nama sertifikat sesuai dengan nilai credential dalam konfigurasi domain HTTPS.

Kumpulkan log akses

Kumpulkan log akses gerbang ke Simple Log Service (SLS) untuk analisis lalu lintas dan troubleshooting.

Penting

Mengaktifkan pengumpulan log akses akan me-restart gerbang. Lakukan operasi ini selama jam sepi.

Tambahkan anotasi pengumpulan log

  1. Masuk ke Konsol ASM. Navigasi ke Service Mesh > Mesh Management, lalu klik nama instans ASM Anda.

  2. Di panel navigasi sebelah kiri, pilih ASM Gateways > Ingress Gateway.

  3. Pada halaman Ingress Gateway, temukan gerbang serverless dan klik YAML. Tambahkan anotasi berikut ke YAML gerbang lalu klik OK.

    asm.alibabacloud.com/aliyun-logs-project: k8s-log-****

    Ganti k8s-log-**** dengan nama proyek SLS untuk log mesh Anda (misalnya, mesh-log-c4e1bbed247634d0482000d94e947****).

    YAML yang diperbarui terlihat seperti ini:

    Expand to view ingressgateway.yaml

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: IstioGateway
    metadata:
      annotations:
        asm.alibabacloud.com/managed-by-asm: 'true'
        asm.alibabacloud.com/aliyun-logs-project: mesh-log-c4e1bbed247634d0482000d94e947****
      name: ingressgateway
      namespace: istio-system
    spec:
      ....

Lihat log akses

  1. Masuk ke Konsol Simple Log Service.

  2. Pada bagian Projects, klik nama proyek log yang Anda konfigurasi pada langkah sebelumnya.

  3. Di panel navigasi sebelah kiri, klik ikon Log Storage. Pada bagian Logstores, klik mesh-ingress-log.

  4. Masukkan kueri pencarian (misalnya, productpage) di kotak pencarian lalu klik Search & Analyze. Log akses untuk permintaan yang cocok akan muncul di hasil.

Ekspor metrik gerbang

Ekspor metrik gerbang serverless ke Managed Service for Prometheus untuk pemantauan dan peringatan. Ini memerlukan ASM versi 1.18.0.147 atau lebih baru.

Aktifkan pengumpulan metrik di ASM

Aktifkan pembuatan dan pengumpulan metrik untuk instans ASM Anda. Pastikan dasbor metrik dapat diakses di bawah Observability Management Center > Monitoring indicators. Untuk detailnya, lihat Collect metrics to Managed Service for Prometheus.

Tambahkan anotasi ekspor metrik

Pada YAML gerbang serverless, tambahkan anotasi berikut:

asm.alibabacloud.com/export-metrics: '<ack-cluster-id>'

Ganti <ack-cluster-id> dengan ID kluster ACK tempat Anda ingin mengekspor metrik. Ini menyinkronkan layanan dan titik akhir gerbang ke kluster ACK yang ditentukan, sehingga tersedia untuk diambil oleh Prometheus.

Konfigurasikan target scrape Prometheus

  1. Masuk ke Konsol ARMS.

  2. Di panel navigasi sebelah kiri, pilih Managed Service for Prometheus > Instances. Pilih wilayah instans Prometheus Anda.

  3. Klik nama instans Prometheus. Di panel navigasi sebelah kiri, klik Settings.

  4. Pada halaman Settings, klik Edit Prometheus.yaml. Tambahkan konfigurasi scrape berikut lalu klik Save.

    Expand to view YAML

    scrape_configs:
    - job_name: istio-system/managed-envoy
      honor_timestamps: true
      honor_labels: false
      scrape_interval: 30s
      scheme: http
      metrics_path: /stats/prometheus
      relabel_configs:
      - regex: 'true'
        action: keep
        source_labels:
        - __meta_kubernetes_service_labelpresent_asm_sync_target
        replacement: $1
        separator: ;
      - regex: http-envoy-prom
        action: keep
        source_labels:
        - __meta_kubernetes_endpoint_port_name
        replacement: $1
        separator: ;
      - regex: (.*)
        action: replace
        source_labels:
        - __meta_kubernetes_namespace
        replacement: $1
        separator: ;
        target_label: namespace
      metric_relabel_configs:
      - regex: envoy_.*
        action: drop
        source_labels:
        - __name__
        replacement: $1
        separator: ;
      kubernetes_sd_configs:
      - role: endpoints
        namespaces: {}
        follow_redirects: true
      scrape_timeout: 10s

Konfigurasi ini mengambil metrik service mesh Istio dari titik akhir proxy Envoy gerbang serverless setiap 30 detik. relabel_configs hanya memfilter target yang disinkronkan gerbang, sedangkan metric_relabel_configs menghapus metrik internal Envoy tingkat rendah untuk mengurangi kebisingan.

Troubleshooting

Tidak dapat mengakses aplikasi backend melalui gerbang serverless

Jika permintaan ke gerbang serverless gagal atau mengembalikan error, periksa hal berikut:

1. Aturan security group

Security group kluster ACK data-plane harus mengizinkan lalu lintas inbound dari rentang jaringan gerbang serverless. Untuk memverifikasi:

  1. Temukan Blok CIDR vSwitch instans ASM Anda:

    • Di Konsol ASM, navigasi ke Service Mesh > Mesh Management lalu klik nama instans Anda.

    • Pilih ASM Instance > Base Information lalu klik tautan di samping vSwitch untuk melihat Blok CIDR.

  2. Periksa security group kluster ACK:

    • Di Konsol ACK, klik Clusters, lalu klik nama kluster.

    • Klik Cluster Information, lalu tab Cluster Resources, dan klik tautan di samping Security Group.

    • Verifikasi bahwa aturan masuk mengizinkan lalu lintas dari Blok CIDR vSwitch ASM ke port pod aplikasi backend.

2. Kode kesalahan HTTP

Error codePossible causeAction
404Aturan routing salah konfigurasi atau tidak adaVerifikasi bahwa aturan routing cocok dengan path permintaan dan layanan upstream diimpor dengan benar
503Aplikasi backend tidak tersediaPeriksa apakah pod backend berjalan dan sehat di kluster ACK

Langkah selanjutnya