Gateway Service Mesh (ASM) dapat diterapkan di beberapa klaster untuk meningkatkan ketersediaan layanan. Anda dapat menerapkan layanan di beberapa klaster dan mengonfigurasi gateway ingress terpadu untuk mengelola trafik masuk ke klaster tersebut. Topik ini menjelaskan cara mengonfigurasi gateway ingress terpadu untuk beberapa klaster.
Prasyarat
Aplikasi telah diterapkan di dua klaster dari instance ASM. Untuk informasi lebih lanjut, lihat Tambahkan Klaster ke Instance ASM dan Terapkan Aplikasi di Instance ASM.
Injeksi proxy sidecar telah diaktifkan untuk namespace yang ditentukan. Untuk informasi lebih lanjut, lihat Aktifkan Injeksi Proxy Sidecar Otomatis.
Deskripsi konfigurasi
Saat gateway ASM diterapkan di beberapa klaster, pod gateway dan layanan terkait dibuat di klaster tersebut, serta instance Classic Load Balancer (CLB) dilampirkan ke setiap layanan. Oleh karena itu, gateway ASM yang melayani beberapa klaster memiliki beberapa alamat IP.
Gateway ASM memungkinkan penggunaan kembali instance CLB yang ada. Namun, kami menyarankan agar Anda tidak menggunakan kembali instance CLB yang sama untuk beberapa layanan.
Topik ini menjelaskan cara mengonfigurasi gateway ingress terpadu untuk beberapa klaster dalam dua skenario berikut:
Skenario 1: Konfigurasi Sumber Daya Terkait Gateway Identik untuk Beberapa Klaster
Skenario 2: Konfigurasi Sumber Daya Terkait Gateway Berbeda untuk Beberapa Klaster: Misalnya, spesifikasi instance CLB dan jumlah replika gateway bervariasi.
Skenario 1: Konfigurasi sumber daya terkait gateway identik untuk beberapa klaster
Jika sumber daya terkait gateway untuk beberapa klaster identik, Anda dapat membuat gateway multi-klaster di Konsol ASM atau mengubah gateway single-klaster menjadi gateway multi-klaster. ASM akan membuat gateway dengan konfigurasi identik di semua klaster berdasarkan konfigurasi gateway Anda.
Metode 1: Buat gateway multi-klaster
Anda dapat membuat gateway multi-klaster dengan menyetel item konfigurasi terkait di Konsol ASM atau menggunakan file YAML.
Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih .
Buat gateway multi-klaster.
Metode 1: Buat gateway multi-klaster dengan menyetel item konfigurasi terkait di Konsol ASM
Di halaman Ingress Gateway, klik Create.
Di halaman Create, pilih beberapa klaster dari daftar drop-down Cluster, konfigurasikan parameter terkait, lalu klik Create.
Untuk deskripsi item konfigurasi lainnya, lihat Buat Gateway Ingress.

Metode 2: Buat gateway multi-klaster menggunakan file YAML
Di halaman Ingress Gateway, klik Create from YAML.
Di halaman Create, konfigurasikan bidang berikut di file YAML dan klik Create.
apiVersion: istio.alibabacloud.com/v1beta1 kind: IstioGateway metadata: name: ingressgateway-multi-cluster namespace: istio-system spec: affinity: {} autoCreateGatewayYaml: false clusterIds: - c87e370627c3f4e62ac77a7********* - c877e9b78610a419e833f22********* compression: {} cpu: {} dnsPolicy: ClusterFirst externalTrafficPolicy: Local gatewayType: ingress hostNetwork: false kernel: parameters: {} memory: {} ports: - name: http-0 port: 80 protocol: HTTP targetPort: 80 - name: https-1 port: 443 protocol: HTTPS targetPort: 443 readinessProbe: {} replicaCount: 2 resources: limits: cpu: '2' memory: 4G requests: cpu: 200m memory: 256Mi runAsRoot: true sds: {} serviceAnnotations: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: slb.s1.small service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet serviceType: LoadBalancer
Metode 2: Ubah gateway single-klaster menjadi gateway multi-klaster
Jika Anda telah membuat gateway single-klaster, Anda dapat menambahkan klaster yang diperlukan ke bidang spec.clusterIds di file YAML gateway untuk mengubah gateway single-klaster menjadi gateway multi-klaster.
Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih .
Di halaman Ingress Gateway, temukan gateway ingress yang ingin Anda kelola dan klik YAML di area edit Gateway.
Di kotak dialog Edit, tambahkan ID klaster yang diinginkan ke bidang spec.clusterIds, lalu klik OK.

Periksa apakah gateway multi-klaster telah dibuat
Anda dapat melihat sumber daya Service dan Deployment gateway di namespace istio-system dari dua klaster pada bidang data. Jika kedua klaster memiliki sumber daya konfigurasi yang sama, gateway multi-klaster berhasil dibuat.
Skenario 2: Konfigurasi sumber daya terkait gateway berbeda untuk beberapa klaster
Gateway Anda diterapkan di dua klaster dan kedua klaster memerlukan konfigurasi gateway yang berbeda. Misalnya, satu klaster perlu menggunakan instance CLB yang dibuat secara otomatis, dan klaster lainnya perlu menggunakan kembali instance CLB yang ada; satu klaster memerlukan 3 replika gateway, dan yang lainnya memerlukan 5 replika gateway. Untuk menyesuaikan konfigurasi gateway multi-klaster, Anda perlu memodifikasi file YAML yang sesuai. Contoh berikut menjelaskan cara mengonfigurasi jenis instance CLB yang berbeda dalam gateway multi-klaster. Gateway dari satu klaster menggunakan instance CLB yang dibuat secara otomatis, dan gateway dari klaster lainnya menggunakan kembali instance CLB yang ada.
Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih .
Di halaman Ingress Gateway, klik Create from YAML.
Di halaman Create, konfigurasikan bidang berikut di file YAML dan klik Create.
apiVersion: istio.alibabacloud.com/v1beta1 kind: IstioGateway metadata: name: ingressgateway2 namespace: istio-system spec: autoCreateGatewayYaml: false clusterIds: - c0ed16dbd6c5e429faca464********** - c7d5fba8f3c974353b56522********** compression: {} cpu: {} dnsPolicy: ClusterFirst externalTrafficPolicy: Local gatewayType: ingress hostNetwork: false kernel: parameters: {} memory: {} overrides: c0ed16dbd6c5e429faca464***********: serviceAnnotations: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: slb.s1.small service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet c7d5fba8f3c974353b56522**********: serviceAnnotations: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: lb-bp1lv01rlga******** ports: - name: http-0 port: 80 protocol: HTTP targetPort: 80 - name: https-2 port: 443 protocol: HTTPS targetPort: 443 readinessProbe: {} replicaCount: 1 resources: limits: cpu: '2' memory: 4G requests: cpu: 200m memory: 256Mi rollingMaxSurge: 25% rollingMaxUnavailable: 25% runAsRoot: true sds: {} serviceType: LoadBalancerBidang overrides adalah struktur tipe Map. Kuncinya adalah ID klaster. Nilainya sama dengan bidang konfigurasi spec gateway. Anda dapat mengonfigurasi parameter seperti parameter terkait instance CLB, jumlah replika gateway, dan spesifikasi sumber daya gateway. Di bidang overrides, Anda dapat mengonfigurasi parameter untuk setiap klaster secara individual. Konfigurasi ini memiliki prioritas lebih tinggi daripada konfigurasi gateway terluar. Untuk informasi lebih lanjut tentang deskripsi bidang, lihat Bidang CRD untuk Gateway ASM.
Periksa apakah gateway multi-klaster telah dibuat.
Anda dapat melihat sumber daya Service gateway di namespace istio-system dari dua klaster. Jika alamat IP eksternal dari Service di satu klaster adalah alamat IP dari instance CLB yang dibuat secara otomatis dan yang di klaster lainnya adalah alamat IP dari instance CLB yang ditentukan, gateway multi-klaster berhasil dibuat.