All Products
Search
Document Center

Alibaba Cloud Service Mesh:Terapkan gerbang masuk ASM pada infrastruktur serverless

Last Updated:Mar 12, 2026

Saat lonjakan lalu lintas melebihi kapasitas node Elastic Compute Service (ECS), Pod gerbang masuk ASM memerlukan tempat untuk meluap. Dengan menjadwalkan Pod gerbang ke node virtual yang didukung oleh Elastic Container Instance (ECI), Pod tersebut secara otomatis diskalakan ke infrastruktur serverless tanpa perlu provisioning atau pemeliharaan node.

Dalam kondisi normal, Pod gerbang berjalan pada node ECS yang telah diberi label. Ketika node tersebut mencapai kapasitas penuh, Pod meluap ke ECI melalui node virtual. Konfigurasi ini memanfaatkan primitif penjadwalan Kubernetes—afinitas node, taint, dan toleransi—untuk mengontrol lokasi penempatan Pod.

Catatan

Jika gerbang ASM Anda berjalan di kluster Serverless Kubernetes (ASK), Pod secara default sudah berjalan di ECI. Lewati topik ini dan lihat Buat layanan gerbang masuk sebagai gantinya.

Cara kerja

Konfigurasi ini mengandalkan tiga mekanisme penjadwalan Kubernetes yang bekerja bersama:

MekanismePeran
Taint + TolerationNode virtual memiliki taint default virtual-kubelet.io/provider=alibabacloud:NoSchedule untuk mencegah penggunaan ECI secara tidak sengaja. Anda menambahkan taint khusus ke node ECS untuk membatasi penggunaannya hanya untuk Pod gerbang. Pod gerbang harus memiliki toleransi terhadap kedua taint tersebut.
Afinitas node wajibKendala keras yang membatasi penempatan Pod hanya pada dua jenis node: node ECS berlabel Anda atau node virtual. Pod tidak dapat ditempatkan pada node yang tidak relevan.
Afinitas node yang diutamakanKendala lunak dengan bobot. Node ECS diberi bobot 80 (sangat diprioritaskan) dan node virtual diberi bobot 20 (cadangan). Saat node ECS memiliki kapasitas, Pod berjalan di sana. Saat node ECS penuh, Pod meluap ke ECI.

Untuk detail lebih lanjut, lihat dokumentasi Kubernetes tentang Taints and Tolerations dan Assigning Pods to Nodes.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Konfigurasikan peluapan elastis untuk gerbang

Prosedur ini terdiri dari empat langkah: memberi label pada node ECS untuk Pod gerbang, memberi taint pada node untuk mengecualikan beban kerja lain, mengonfigurasi YAML gerbang dengan aturan afinitas dan toleransi, serta memverifikasi penerapan.

Langkah 1: Beri label pada node target

Tambahkan label ke node ECS tempat Pod gerbang seharusnya berjalan secara default.

  1. Dapatkan nama node di kluster Anda:

       kubectl get nodes
  2. Tambahkan label ke node target: Ganti <node-name> dengan nama node aktual dari langkah 1.

       # Sintaks
       kubectl label nodes <node-name> <label-key>=<label-value>
    
       # Contoh
       kubectl label nodes node1 mykey4pod=asmgateway

Langkah 2: Beri taint pada node

Tambahkan taint khusus agar hanya Pod dengan toleransi yang sesuai yang dapat berjalan di node ini:

kubectl taint nodes node1 mykey=myvalue:NoSchedule

Taint ini menggunakan kunci mykey, nilai myvalue, dan efek NoSchedule. Hanya Pod yang secara eksplisit mentoleransi taint ini yang dapat dijadwalkan di node1.

Langkah 3: Tambahkan afinitas node dan toleransi ke gerbang

Perbarui YAML gerbang untuk mengarahkan Pod ke node ECS berlabel secara default, dengan peluapan otomatis ke ECI saat node mencapai kapasitas penuh.

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

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

  3. Temukan gerbang target dan klik YAML.

  4. Di kotak dialog Edit, tambahkan konten berikut ke bidang spec, lalu klik OK. Tabel berikut menjelaskan perilaku penjadwalan:

    Penting

    Pastikan pasangan kunci-nilai label di matchExpressions sesuai dengan label yang Anda tambahkan di Langkah 1, dan pasangan kunci-nilai toleransi sesuai dengan taint yang Anda tambahkan di Langkah 2. Nilai yang tidak cocok menyebabkan Pod tetap dalam status Pending.

    BidangFungsinya
    preferredDuringSchedulingIgnoredDuringExecutionMenetapkan preferensi penjadwalan lunak dengan bobot relatif. Node ECS (bobot 80) sangat diprioritaskan dibandingkan ECI (bobot 20). Saat node ECS memiliki kapasitas, Pod berjalan di sana. Saat penuh, Pod meluap ke ECI melalui node virtual.
    requiredDuringSchedulingIgnoredDuringExecutionMenentukan kendala keras. Pod hanya dapat dijadwalkan pada node yang sesuai dengan label khusus (mykey4pod=asmgateway) atau label node virtual (type=virtual-kubelet). Ini mencegah Pod ditempatkan pada node yang tidak relevan.
    tolerations[0]Memungkinkan Pod berjalan di node virtual dengan mentoleransi taint default virtual-kubelet.io/provider=alibabacloud:NoSchedule. Tanpa toleransi ini, Pod tidak dapat menggunakan ECI.
    tolerations[1]Sesuai dengan taint khusus (mykey=myvalue:NoSchedule) yang ditambahkan di Langkah 2, sehingga memungkinkan Pod berjalan di node ECS berlabel.
       affinity:
           nodeAffinity:
             preferredDuringSchedulingIgnoredDuringExecution:
               - preference:
                   matchExpressions:
                     - key: type
                       operator: In
                       values:
                         - virtual-kubelet
                 weight: 20
               - preference:
                   matchExpressions:
                     - key: mykey4pod
                       operator: In
                       values:
                         - asmgateway
                 weight: 80
             requiredDuringSchedulingIgnoredDuringExecution:
               nodeSelectorTerms:
                 - matchExpressions:
                     - key: mykey4pod
                       operator: In
                       values:
                         - asmgateway
                 - matchExpressions:
                     - key: type
                       operator: In
                       values:
                         - virtual-kubelet
         tolerations:
           - effect: NoSchedule
             key: virtual-kubelet.io/provider
             operator: Equal
             value: alibabacloud
           - effect: NoSchedule
             key: mykey
             operator: Equal
             value: myvalue

Langkah 4: Verifikasi penerapan

Konfirmasi bahwa Pod gerbang berjalan di node yang diharapkan.

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

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, pilih Workloads > Pods.

  3. Di halaman Pods, pilih istio-system dari daftar drop-down Namespace.

  4. Periksa kolom Node untuk Pod gerbang:

    • Dalam beban normal, Pod seharusnya muncul di node ECS berlabel Anda (node1).

    • Saat kapasitas ECS habis, Pod seharusnya muncul di node virtual.

Topik terkait