ALB Ingress mendukung penggunaan anotasi alb.ingress.kubernetes.io/actions.<service-name> untuk mengonfigurasi kelompok server backend. Kelompok server backend dapat disambungkan berdasarkan nama layanan atau ID kelompok server, yang memungkinkan integrasi hybrid antara Pod dalam kluster K8s dan instance ECS di luar kluster. Dengan menggabungkan produk seperti ALB, Cloud Enterprise Network (CEN), dan router transit, Anda dapat mengaktifkan ALB untuk meneruskan permintaan ke server di VPC wilayah lain guna mencapai koneksi cross-region, atau ke server IDC on-premises untuk integrasi on-premises. Topik ini menjelaskan cara menggunakan ALB Ingress untuk menerapkan integrasi hybrid, cross-region, dan on-premises.
Daftar isi
Catatan penggunaan
Nama layanan dalam anotasi
alb.ingress.kubernetes.io/actions.<service-name>harus sesuai dengan nama layananbackendpada bidangrule.Saat mengonfigurasi kelompok server backend, pada bidang
rule, nama port layanan di bawahbackendharus berupause-annotation.Anda dapat menggunakan anotasi
alb.ingress.kubernetes.io/actions.<service name>untuk menyambungkan beberapa kelompok server ke instans ALB.Instans ALB dasar mendukung maksimal lima kelompok server.
Saat menyambungkan kelompok server menggunakan
ServerGroupIDdanServiceName+ServicePortsecara bersamaan, sistem akan memprioritaskanServerGroupIDuntuk mencocokkan kelompok server backend.
Skenario 1: Teruskan permintaan ke beberapa layanan
Prasyarat
VPC bernama VPC1 telah dibuat di suatu wilayah. Dua vSwitch, yaitu VSW1 dan VSW2, telah dibuat di zona berbeda dalam VPC1. Untuk informasi selengkapnya, lihat Buat dan kelola VPC dan Buat dan kelola vSwitch.
Kluster ACK atau ACK Serverless telah dibuat di VPC1. Untuk informasi selengkapnya, lihat Buat kluster ACK yang dikelola dan Buat kluster ACK Serverless.
ALB Ingress Controller telah diinstal di kluster ACK atau ACK Serverless. Untuk informasi selengkapnya, lihat Kelola komponen ALB Ingress Controller.
Anda telah membuat instans ALB di kluster ACK atau ACK Serverless menggunakan ALBConfig, serta men-deploy layanan backend
tea-svcdancoffee-svc. Untuk informasi selengkapnya, lihat Buat dan gunakan ALB Ingress untuk mengekspos layanan.
Skenario
Seperti ditunjukkan pada gambar berikut, dengan aksi penerusan multi-kelompok server dari ALB Ingress, Anda dapat membuat atau menyambungkan beberapa kelompok server backend dengan mengonfigurasi ServiceName+ServicePort untuk meneruskan permintaan ke beberapa Service dalam kluster.
Prosedur
Konfigurasikan ALB Ingress.
Deploy konten berikut ke file
tea-ingress.yaml. Ini mendefinisikan cara permintaan diteruskan ke beberapa Service dalam kluster.# Ingress ini meneruskan permintaan ke kelompok server backend berbeda berdasarkan hostname dan path, dengan traffic didistribusikan sesuai bobot. apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: tea-ingress annotations: alb.ingress.kubernetes.io/actions.forward: | [{ "type": "ForwardGroup", "ForwardConfig": { "ServerGroups" : [{ "ServiceName": "tea-svc", "Weight": 80, "ServicePort": 80 }, { "ServiceName": "coffee-svc", "Weight": 20, "ServicePort": 80 }] } }] spec: ingressClassName: alb rules: - host: demo.domain.ingress.top http: paths: - path: /path pathType: Prefix backend: service: name: forward port: name: use-annotationAkses layanan dari command line. Untuk informasi selengkapnya, lihat Akses layanan.
Skenario 2: Teruskan ke pod kluster dan ECS eksternal
Prasyarat
VPC bernama VPC1 telah dibuat di suatu wilayah. Untuk informasi selengkapnya, lihat Buat dan kelola VPC.
Kluster ACK atau ACK Serverless telah dibuat di VPC1. Untuk informasi selengkapnya, lihat Buat kluster ACK yang dikelola dan Buat kluster ACK Serverless.
Setidaknya satu instance ECS telah dibuat di VPC1, VPC yang sama tempat instans ALB dideploy. Layanan web telah dideploy di instance ECS tersebut. Untuk informasi selengkapnya, lihat Buat instance kustom dan Deploy stack LNMP.
Kelompok server telah dibuat. Untuk informasi selengkapnya, lihat Buat dan kelola kelompok server.
Instance ECS eksternal telah ditambahkan ke kelompok server. Untuk informasi selengkapnya, lihat Buat dan kelola kelompok server.
Anotasi
alb.ingress.kubernetes.io/actions.<service-name>digunakan untuk mengonfigurasi aksi penerusan dan menyambungkan kelompok server yang telah dibuat.
Skenario
Skenario ini menunjukkan cara meneruskan permintaan ke pod dalam kluster dan instance ECS eksternal di VPC yang sama. Anda membuat kelompok server di Konsol ALB atau menggunakan API, menambahkan instance ECS eksternal ke dalamnya, lalu mereferensikan ServerGroupID-nya dalam anotasi Ingress. Hal ini menciptakan backend hybrid, seperti ditunjukkan pada gambar berikut.
Prosedur
Konfigurasikan ALB Ingress.
Deploy konten berikut ke file
tea-ingress.yaml. Ini mendefinisikan layanan yang meneruskan permintaan ke Pod dalam kluster dan instance ECS di luar kluster.apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: tea-ingress annotations: alb.ingress.kubernetes.io/actions.forward: | [{ "type": "ForwardGroup", "ForwardConfig": { "ServerGroups" : [{ "ServiceName": "tea-svc", "Weight": 30, "ServicePort": 80 }, { "ServiceName": "coffee-svc", "Weight": 20, "ServicePort": 80 }, { "ServerGroupID": "sgp-71aexb9y93ypo*****", "Weight": 30 }, { "ServerGroupID": "sgp-slygpbvm2cydo*****", "Weight": 20 }] } }] spec: ingressClassName: alb rules: - host: demo.domain.ingress.top http: paths: - path: /path pathType: Prefix backend: service: name: forward port: name: use-annotationAkses layanan dari command line. Untuk informasi selengkapnya, lihat Akses layanan.
Skenario 3: Teruskan ke pod kluster dan ECS cross-region
Prasyarat
Dua VPC dibuat di wilayah berbeda, dengan vSwitch dibuat di zona berbeda dalam setiap VPC. Misalnya, VPC1 dibuat di wilayah China (Chengdu), dan VPC2 dibuat di wilayah China (Hangzhou).
Di VPC1, vSwitch VSW1 berada di Zona A dan vSwitch VSW2 berada di Zona B.
Di VPC2, vSwitch VSW3 berada di Zona H dan vSwitch VSW4 berada di Zona I.
Untuk informasi selengkapnya, lihat Buat dan kelola VPC dan Buat dan kelola vSwitch.
Kluster ACK atau ACK Serverless dibuat di VPC1, dan instans ALB dibuat menggunakan AlbConfig di kluster tersebut. Untuk informasi selengkapnya, lihat Buat kluster ACK yang dikelola dan Buat dan gunakan ALB Ingress untuk mengekspos layanan.
Setidaknya satu instance ECS dibuat di VPC2, dan layanan web dideploy di instance ECS tersebut. Untuk informasi selengkapnya, lihat Buat instance kustom dan Deploy stack LNMP.
Instans CEN dibuat, dan paket bandwidth dibeli untuk instans tersebut. Untuk informasi selengkapnya, lihat Buat instans CEN dan Beli paket bandwidth.
Instans router transit dibuat di wilayah China (Chengdu) dan China (Hangzhou). Untuk informasi selengkapnya, lihat Buat instans router transit.
Skenario
Skenario ini menunjukkan cara menggunakan CEN untuk membuat koneksi cross-region antar VPC. Hal ini memungkinkan Anda menambahkan instance ECS dari wilayah berbeda ke kelompok server. Dengan mereferensikan ServerGroupID-nya dalam Ingress, Anda dapat mengarahkan traffic ke pod dalam kluster dan instance ECS cross-region, seperti ditunjukkan pada gambar berikut.
Misalnya, kluster ACK atau ACK Serverless dan instans ALB dideploy di VPC1 di wilayah China (Chengdu). Anda dapat menggunakan kombinasi ALB dan CEN untuk meneruskan permintaan ke instance ECS di VPC2 di wilayah China (Hangzhou).
Prosedur
Konfigurasikan CEN dan buat koneksi VPC cross-region.
Untuk informasi selengkapnya, lihat Sambungkan server cross-region ke instans ALB.
Tambahkan instance ECS cross-region ke kelompok server ALB.
Untuk informasi selengkapnya, lihat Tambahkan atau hapus server backend.
Gunakan anotasi
alb.ingress.kubernetes.io/actions.<service-name>untuk mengonfigurasi aksi penerusan dan mengaitkan kelompok server yang sudah ada. Saat layanan diminta, aksi ini meneruskan permintaan ke Pod dalam kluster dan ke server ECS di VPC cross-region di luar kluster.Deploy konten berikut ke file
tea-ingress.yaml.apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: tea-ingress annotations: alb.ingress.kubernetes.io/actions.forward: | [{ "type": "ForwardGroup", "ForwardConfig": { "ServerGroups" : [{ "ServiceName": "tea-svc", "Weight": 30, "ServicePort": 80 }, { "ServiceName": "coffee-svc", "Weight": 20, "ServicePort": 80 }, { "ServerGroupID": "sgp-71aexb9y93ypo*****", "Weight": 30 }, { "ServerGroupID": "sgp-slygpbvm2cydo*****", "Weight": 20 }] } }] spec: ingressClassName: alb rules: - host: demo.domain.ingress.top http: paths: - path: /path pathType: Prefix backend: service: name: forward port: name: use-annotation
Skenario 4: Teruskan ke pod kluster dan server on-premises
Prasyarat
Instans CEN dan router transit untuk instans tersebut telah dibuat. Untuk informasi selengkapnya, lihat Buat instans CEN dan Buat instans router transit.
Express Connect dan VBR telah dibuat. Untuk informasi selengkapnya, lihat Ajukan sirkuit Express Connect dan Buat dan kelola VBR.
Catatan penggunaan
Untuk batasan penyambungan server on-premises ke instans ALB, lihat Batasan.
Skenario
Skenario ini menunjukkan cara menggunakan CEN, Express Connect, dan VBR untuk menghubungkan pusat data on-premises Anda ke Alibaba Cloud. Hal ini memungkinkan Anda menambahkan server on-premises ke kelompok server. Dengan mereferensikan ServerGroupID dalam Ingress, Anda dapat mengarahkan traffic ke pod dalam kluster dan server on-premises Anda, seperti ditunjukkan pada gambar berikut.
Misalnya, kluster ACK atau ACK Serverless dan instans ALB dideploy di VPC1 di wilayah China (Chengdu). Anda dapat menggunakan kombinasi ALB, CEN, VBR, dan Express Connect untuk meneruskan permintaan ke server on-premises di wilayah yang sama.
Prosedur
Konfigurasikan CEN untuk menghubungkan VPC tempat instans ALB berada dan VBR ke router transit. Hal ini menghubungkan pusat data on-premises Anda ke Alibaba Cloud melalui VBR. Untuk informasi selengkapnya, lihat Sambungkan server on-premises di wilayah yang sama ke instans ALB.
Gunakan anotasi
alb.ingress.kubernetes.io/actions.<service-name>untuk mengonfigurasi aksi penerusan dan menyambungkan kelompok server yang telah ditentukan. Hal ini meneruskan permintaan ke Pod dalam kluster dan ke server Internet Data Center (IDC) on-premises di luar kluster.Deploy konten berikut ke file
tea-ingress.yaml.apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: tea-ingress annotations: alb.ingress.kubernetes.io/actions.forward: | [{ "type": "ForwardGroup", "ForwardConfig": { "ServerGroups" : [{ "ServiceName": "tea-svc", "Weight": 30, "ServicePort": 80 }, { "ServiceName": "coffee-svc", "Weight": 20, "ServicePort": 80 }, { "ServerGroupID": "sgp-ihydxb9y93ypo*****", "Weight": 30 }, { "ServerGroupID": "sgp-pd0ipbvm2cydo*****", "Weight": 20 }] } }] spec: ingressClassName: alb rules: - host: demo.domain.ingress.top http: paths: - path: /path pathType: Prefix backend: service: name: forward port: name: use-annotation