Sebuah instance Application Load Balancer (ALB) dapat diintegrasikan dengan ingress gateway dalam instance Service Mesh (ASM) untuk mengakses kluster Alibaba Cloud Container Service for Kubernetes (ACK) yang menggunakan plug-in jaringan Terway. Fitur ini menyederhanakan manajemen layanan, memastikan keamanan komunikasi antar layanan, meningkatkan observabilitas, serta mengurangi beban kerja pengembangan, operasi, dan pemeliharaan. Topik ini menjelaskan cara mengintegrasikan instance ALB dengan ingress gateway pada Service Mesh.
Prasyarat
Kluster ACK telah ditambahkan ke instance ASM. Instance ASM dan kluster ACK harus memenuhi persyaratan berikut:
Instance ASM adalah Edisi Perusahaan.
Kluster ACK:
Plug-in jaringan Terway digunakan.
Komponen Cloud Controller Manager (CCM) adalah versi v1.9.3.313-g748f81e-aliyun atau lebih baru. Untuk informasi lebih lanjut, lihat Cloud Controller Manager.
Kontroler ALB Ingress telah diinstal. Untuk informasi lebih lanjut, lihat Kelola Komponen.
Injeksi proxy sidecar otomatis diaktifkan untuk namespace default. Untuk informasi lebih lanjut, lihat bagian "Aktifkan injeksi proxy sidecar otomatis" dari topik Kelola Namespace Global.
Ingress gateway telah dibuat. Untuk ingress gateway ini, CLB Instance Type disetel ke Private Access dan Service Port disetel ke 80. Untuk informasi lebih lanjut, lihat Buat Ingress Gateway.
Langkah 1: Deploy aplikasi sampel
Sambungkan ke kluster menggunakan file kubeconfig pada bidang data, lalu jalankan perintah berikut untuk mendeploy aplikasi Bookinfo. Untuk informasi lebih lanjut, lihat Deploy Aplikasi dalam Kluster ACK yang Ditambahkan ke Instance ASM.
kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/bookinfo/platform/kube/bookinfo.yamlLangkah 2: Buat sumber daya Istio
Pada contoh ini, gateway Istio dan layanan virtual dibuat untuk pengujian.
Buat gateway Istio.
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
Di halaman Gateway, klik Create dan konfigurasikan parameter sesuai gambar berikut.

Di bagian bawah halaman Create, klik Preview untuk melihat file YAML dari gateway Istio. Setelah mengonfirmasi informasi dalam file YAML, klik Submit. Kemudian, klik Create.
Buat layanan virtual dan konfigurasikan pengaturan rute trafik.
Di halaman detail instance ASM, pilih di panel navigasi kiri.
Di halaman VirtualService, klik Create untuk mengonfigurasi layanan virtual untuk gateway bookinfo-gateway.

Di bagian bawah halaman Create, klik Preview untuk melihat file YAML dari layanan virtual. Setelah mengonfirmasi informasi dalam file YAML, klik Submit. Selanjutnya, di bagian bawah halaman Create, klik Create.
Langkah 3: Buat objek AlbConfig
Skenario 1: Anda perlu mengintegrasikan instance ALB standar yang ada dengan ingress gateway
Dapatkan ID instance ALB di Konsol ALB.
Buat file alb-demo.yaml dengan konten berikut.
Ganti nilai
iddi bagian config dengan ID instance ALB Anda.apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: default spec: config: id: alb-xxxxx forceOverride: falseJalankan perintah berikut untuk membuat objek AlbConfig:
kubectl apply -f alb-demo.yaml
Skenario 2: Anda perlu membuat instance ALB dan mengintegrasikannya dengan ingress gateway
Buat file alb-demo.yaml dengan konten berikut. Untuk informasi lebih lanjut, lihat Buat ALB Ingress.
Tetapkan nama instance ALB yang dibuat secara otomatis menjadi alb-demo.
apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: default spec: config: name: alb-demo addressType: Internet zoneMappings: - vSwitchId: vsw-uf6ccg2a9g71hx8go**** - vSwitchId: vsw-uf6nun9tql5t8nh15****Parameter
Deskripsi
spec.config.nameNama instance ALB yang ingin Anda buat.
addressTypeJenis alamat IP yang digunakan oleh instance ALB untuk menyediakan layanan. Parameter ini wajib. Nilai valid:
Internet: Instance ALB menggunakan alamat IP publik. Nama domain Ingress diarahkan ke alamat IP publik instance ALB. Oleh karena itu, instance ALB dapat diakses melalui Internet. Ini adalah nilai default.
Intranet: Instance ALB menggunakan alamat IP pribadi. Nama domain Ingress diarahkan ke alamat IP pribadi. Oleh karena itu, instance ALB hanya dapat diakses dalam virtual private cloud (VPC) tempat instance ALB diterapkan.
zoneMappingsID vSwitch yang digunakan oleh ALB Ingress. Anda harus menentukan setidaknya dua ID vSwitch dan vSwitch tersebut harus ditempatkan di zona berbeda. Zona vSwitch harus didukung oleh ALB Ingress. Parameter ini wajib. Untuk informasi lebih lanjut tentang wilayah dan zona yang didukung oleh ALB Ingress, lihat Wilayah dan zona. Untuk informasi lebih lanjut tentang cara membuat vSwitch, lihat Buat dan kelola vSwitches.
Jalankan perintah berikut untuk membuat objek AlbConfig:
kubectl apply -f alb-demo.yaml
Langkah 4: Buat sumber daya IngressClass
Buat file alb.yaml dengan konten berikut:
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb spec: controller: ingress.k8s.alibabacloud/alb parameters: apiGroup: alibabacloud.com kind: AlbConfig name: default scope: ClusterJalankan perintah berikut untuk membuat sumber daya IngressClass:
kubectl apply -f alb.yamlOutput yang diharapkan:
ingressclass.networking.k8s.io/alb created
Langkah 5: Buat instance Ingress
Ingress gateway dibuat di namespace istio-system. Anda perlu membuat instance Ingress di namespace istio-system di kluster ACK pada bidang data. Nomor port adalah 80, sama seperti yang ditentukan saat membuat ingress gateway.
Buat file asm-gateway-ingress.yaml dengan konten berikut:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: asm-gateway-ingress namespace: istio-system spec: ingressClassName: alb rules: - http: paths: - backend: service: name: istio-ingressgateway port: number: 80 path: /* pathType: ImplementationSpecificJalankan perintah berikut untuk membuat instance Ingress:
kubectl apply -f asm-gateway-ingress.yaml
Langkah 6: Akses ingress gateway
Jalankan perintah berikut untuk menanyakan titik akhir instance Ingress:
kubectl get ing -n istio-systemOutput yang diharapkan:
NAME CLASS HOSTS ADDRESS PORTS AGE asm-gateway-ingress alb * alb-xxxx.xxxx.alb.aliyuncs.com 80 18hPada output, Anda dapat melihat bahwa titik akhir instance Ingress adalah
alb-xxxx.xxxx.alb.aliyuncs.com.Akses ingress gateway dengan salah satu metode berikut:
Metode 1: Masukkan
http://alb-xxxx.xxxx.alb.aliyuncs.com/productpagedi browser untuk mengakses ingress gateway. alb-xxxx.xxxx.alb.aliyuncs.com adalah titik akhir instance Ingress yang diperoleh pada langkah sebelumnya.Metode 2: Masuk ke Konsol ALB untuk mendapatkan alamat IP publik instance ALB dan gunakan untuk mengakses ingress gateway. Jika instance ALB terikat ke nama domain, Anda dapat menggunakan nama domain untuk mengakses ingress gateway.
