Service Mesh (ASM) serverless gateway adalah jenis gerbang baru yang disediakan oleh ASM. Gerbang serverless membantu Anda menangani lonjakan lalu lintas untuk meningkatkan stabilitas sistem sekaligus menjaga biaya komputasi tetap rendah. Dibandingkan dengan gerbang ASM yang berjalan di kluster Container Service for Kubernetes (ACK) pada bidang data, gerbang serverless ASM menawarkan keunggulan berupa stabilitas tinggi, elastisitas tinggi, dan biaya rendah. Selain itu, gerbang serverless ASM diterapkan secara serverless dan dikelola sepenuhnya oleh ASM, sehingga sangat tersedia karena tidak bergantung pada kluster ACK. Topik ini menjelaskan cara menggunakan gerbang serverless ASM serta memperkenalkan log dan metrik terkait gerbang tersebut.
Prasyarat
Sebuah kluster ACK telah ditambahkan ke instans ASM Anda yang versinya 1.18.0.147 atau lebih baru.
Sebuah aplikasi telah diterapkan di kluster yang ditambahkan ke instans ASM.
Skenario
Gerbang serverless ASM membantu Anda menangani lonjakan lalu lintas untuk meningkatkan stabilitas sistem sekaligus menjaga biaya komputasi tetap rendah. Gerbang ini umumnya digunakan dalam skenario berikut:
Untuk layanan online dengan fluktuasi lalu lintas yang signifikan—seperti pendidikan online dan e-commerce—Anda dapat menggunakan gerbang serverless ASM untuk menangani lonjakan lalu lintas. Dengan arsitektur serverless, jumlah sumber daya tetap dapat dikurangi secara signifikan, sehingga membantu menekan biaya komputasi.
Ketika beberapa kluster ditambahkan ke satu instans ASM—misalnya, dua kluster ACK ditambahkan ke satu instans ASM—gerbang serverless ASM diterapkan secara independen dari kluster ACK tertentu, sehingga memberikan ketersediaan tinggi.
Langkah 1: Buat gerbang ingress serverless ASM
Saat ini, Anda hanya dapat membuat gerbang ASM Serverless melalui file YAML. Dibandingkan dengan gerbang ASM standar yang berjalan di kluster ACK bidang data, gerbang ASM Serverless memerlukan anotasi asm.alibabacloud.com/managed-by-asm: 'true' dan tidak memerlukan ID kluster ACK. Untuk mengumpulkan metrik, Anda dapat menggunakan anotasi asm.alibabacloud.com/export-metrics guna mengekspor metrik gerbang ke kluster ACK bidang data target.
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
Di halaman Ingress Gateway, klik Create from YAML. Masukkan nama untuk gerbang, gunakan konfigurasi YAML berikut, lalu klik Create.
apiVersion: istio.alibabacloud.com/v1beta1 kind: IstioGateway metadata: annotations: asm.alibabacloud.com/managed-by-asm: 'true' asm.alibabacloud.com/export-metrics: 'ack-cluster-id' name: ingressgateway namespace: istio-system spec: gatewayType: ingress dnsPolicy: ClusterFirst externalTrafficPolicy: Local hostNetwork: false ports: - name: http port: 80 protocol: TCP targetPort: 80 - name: https port: 443 protocol: TCP targetPort: 443 replicaCount: 1 resources: limits: cpu: '2' memory: 2G requests: cpu: 200m memory: 256Mi rollingMaxSurge: 100% rollingMaxUnavailable: 25% runAsRoot: true serviceType: LoadBalancerCatatan: Gerbang serverless ASM yang Anda buat mendukung layanan LoadBalancer dan ClusterIP. Jika Anda mengatur parameter serviceType ke ClusterIP, pastikan pod klien dan gerbang saling terhubung. Misalnya, secara default, pod dalam virtual private cloud (VPC) yang sama dapat saling mengakses menggunakan plugin Terway.
-
Periksa status gateway.
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Di halaman Mesh Management, klik nama instans ASM target. Di panel navigasi kiri, pilih .
Di halaman Ingress Gateway, jika status gerbang baru adalah Created, berarti gerbang berhasil dibuat.
-
Langkah 2: Buat aturan lalu lintas
-
Buat nama domain HTTP.
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
Di halaman Ingress Gateway, klik gerbang target. Di panel navigasi kiri gerbang, klik Domain/Certificate. Di tab Domain, klik Create.
-
Di panel Add domain, atur Domain ke *, Protocol ke HTTP, Port Name ke http, dan port ke 80. Lalu, klik Create.
-
-
Impor layanan productpage.
-
Di panel navigasi kiri gerbang, klik Upstream Service, lalu klik Import service.
-
Di panel Import service, pilih namespace default, pilih productpage, klik ikon
, lalu klik Submit.
-
-
Buat aturan routing.
-
Di panel navigasi kiri gerbang, klik Route management, lalu klik Create.
-
Pada langkah set route detail, atur route type ke http, Namespaces ke default, dan Route Name ke productpage. Di bagian Matching Rules, atur matchRules ke Prefix dan Content ke /. Lalu, klik Next.
-
Pada langkah set route destination, atur select upstream service ke productpage, lalu klik Next.
-
Pada langkah Advanced Options, klik Create.
-
Langkah 3: Akses layanan productpage melalui gerbang serverless ASM
Di bilah alamat browser Anda, masukkan {Alamat IP Gateway}/productpage untuk melihat antarmuka pengguna aplikasi. Untuk mendapatkan alamat IP gerbang, lihat Dapatkan alamat IP gerbang ingress.
Langkah 4: Konfigurasikan fitur pengumpulan log akses gerbang serverless ASM
Jika Anda mengonfigurasi fitur pengumpulan log akses gerbang serverless ASM, gerbang akan dimulai ulang. Kami menyarankan agar Anda melakukan operasi ini selama jam sepi.
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
Di halaman Ingress Gateway, temukan gerbang target, klik View YAML di kolom Actions. Di editor YAML, tambahkan anotasi
asm.alibabacloud.com/aliyun-logs-project: k8s-log-****untuk menentukan proyek Log Service.Dalam contoh ini, log akses gerbang serverless ASM dikumpulkan ke proyek mesh-log-c4e1bbed247634d0482000d94e947****. Blok kode berikut menyediakan konfigurasi contoh:
-
Klik OK untuk memperbarui gerbang Serverless.
Langkah 5: Konfigurasikan akses melalui HTTPS
Jalankan perintah berikut untuk menghasilkan sertifikat Certificate Authority (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 openssl req -out aliyun.com.csr -newkey rsa:2048 -nodes -keyout aliyun.com.key -subj "/CN=aliyun.com/O=myexample organization" openssl x509 -req -days 365 -CA aliyun.root.crt -CAkey aliyun.root.key -set_serial 0 -in aliyun.com.csr -out aliyun.com.crt-
Konfigurasikan sertifikat.
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
Di halaman Certificate Management, klik Create. Di panel Certificate Information, konfigurasikan parameter dan klik OK.
Parameter
Deskripsi
Name
Nama sertifikat. Untuk contoh ini, masukkan myexample-credential.
Public Key Certificate
Dokumen elektronik yang digunakan untuk membuktikan validitas kunci publik. Untuk contoh ini, masukkan konten file aliyun.com.crt yang dihasilkan di langkah 1 Langkah 5.
Private Key
Kunci privat. Untuk contoh ini, masukkan konten file aliyun.com.key yang dihasilkan di langkah 1 Langkah 5.
-
-
Buat nama domain HTTPS.
-
Di panel navigasi kiri, klik Ingress Gateway. Klik gerbang target. Di panel navigasi kiri gerbang, klik Domain/Certificate. Di tab Domain, klik Create.
-
Di panel Add domain, atur Domain ke *, Protocol ke HTTPS, Port Name ke https, dan port ke 443. Untuk Certificate, pilih myexample-credential. Pilih Secure connections with standard TLS semantics., lalu klik Create.
-
Jalankan perintah berikut untuk mengakses gerbang serverless ASM melalui HTTPS:
curl -k -H Host:aliyun.com --resolve aliyun.com:443:{IP address of the desired ASM serverless gateway} https://aliyun.com/productpage -I
Langkah 6: Lihat log akses gerbang serverless ASM
Masuk ke Konsol Simple Log Service.
-
Di area Projects, klik nama log target (nama log yang Anda konfigurasikan di Langkah 4.1). Di bilah navigasi kiri, klik ikon
(Log Storage). Di daftar Logstore, klik mesh-ingress-log. Di kotak pencarian, masukkan productpage, lalu klik Search & Analyze.Hasil kueri menampilkan log akses untuk
istio-ingressgateway. Di bidangcontententri log,route_namebernilaiproductpagedanresponse_codebernilai503menunjukkan bahwa gerbang mengembalikan respons 503 untuk rute tersebut.
FAQ
Bagaimana cara mengekspor metrik gerbang serverless ASM?
-
Pastikan pembuatan dan pengumpulan metrik diaktifkan untuk ASM, sehingga Anda dapat melihat dasbor metrik di halaman . Untuk informasi lebih lanjut, lihat Kumpulkan metrik ke Managed Service for Prometheus.
-
Dalam file YAML untuk gerbang Serverless, tambahkan anotasi
asm.alibabacloud.com/export-metrics: ${ack-cluster-id}untuk mengekspor metrik.Fitur ini hanya tersedia untuk instans ASM versi 1.18.0.147 atau lebih baru. Untuk informasi lebih lanjut tentang cara meningkatkan instans ASM, lihat Upgrade an ASM instance.
Setelah anotasi asm.alibabacloud.com/export-metrics: ${ack-cluster-id} ditambahkan, layanan dan titik akhir gerbang serverless ASM disinkronkan ke kluster ACK yang ditentukan. Selanjutnya, Anda hanya perlu mengonfigurasi titik akhir untuk pengumpulan data di Managed Service for Prometheus.
-
Di Konsol Application Real-Time Monitoring Service (ARMS), konfigurasikan titik akhir untuk pengumpulan data.
Masuk ke Konsol ARMS.
-
Di panel navigasi kiri, pilih . Di pojok kiri atas, pilih wilayah target.
-
Di halaman Instances, klik nama instans Prometheus. Di panel navigasi kiri, klik Settings.
-
Di tab Settings pada halaman Settings, klik Edit Prometheus.yaml, tambahkan konfigurasi berikut, lalu klik Save.
Apa yang harus saya lakukan jika tidak dapat mengakses aplikasi backend melalui gerbang serverless ASM?
-
Pastikan grup keamanan kluster target pada bidang data tidak memblokir lalu lintas dari gerbang serverless ASM.
-
Lihat Blok CIDR vSwitch instans ASM Anda.
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
Di halaman Basic Information, klik tautan di sebelah kanan vSwitch. Di halaman detail vSwitch, temukan Blok CIDR vSwitch tersebut.
-
-
Lihat grup keamanan kluster target pada bidang data.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Cluster Information.
-
Di halaman Cluster Information, klik tab Cluster Resources, lalu klik tautan di sebelah kanan Security Group.
Di halaman detail grup keamanan, lihat aturan masuk grup keamanan tersebut. Pastikan Blok CIDR vSwitch instans ASM Anda dan port pod aplikasi backend berada dalam rentang yang ditentukan oleh aturan tersebut.
-
Jika kode status seperti 404 dan 503 dikembalikan, periksa apakah aturan lalu lintas dikonfigurasi dengan benar dan apakah aplikasi backend berjalan sesuai harapan.