Gerbang keluar (egress gateway) merupakan gerbang tepi yang menghubungkan jaringan internal ke jaringan eksternal, mengontrol lalu lintas jaringan, serta memungkinkan akses dan komunikasi jarak jauh. Anda dapat menggunakan gateway cloud-native MSE sebagai gerbang keluar untuk menyediakan layanan egress jaringan yang stabil, efisien, dan aman bagi kluster Container Service for Kubernetes (ACK), sehingga memungkinkan pengelolaan traffic keluar dan penerapan kontrol keamanan.
Manfaat gateway cloud-native MSE
-
Gateway cloud-native MSE menyediakan gerbang yang dideploy dan dikelola secara terpisah. Isolasi dari kluster ACK ini menjamin stabilitas yang lebih tinggi.
-
Gateway cloud-native MSE menyediakan fitur tata kelola HTTP Lapisan 7, seperti daftar izin dan daftar penolakan berbasis IP, pembatasan kecepatan trafik, load balancing, TLS offloading, pencerminan lalu lintas, dan kontrol header.
-
Anda tidak perlu mengaktifkan akses jaringan publik untuk setiap Pod di kluster ACK. Cukup aktifkan akses publik hanya untuk gateway cloud-native MSE dengan mengonfigurasi SNAT pada vSwitch-nya. Pendekatan ini mengurangi permukaan serangan dan meningkatkan keamanan.
Arsitektur deployment

Prosedur
Langkah 1: Instal MSE Ingress Controller
Instal MSE Ingress Controller pada kluster Container Service for Kubernetes (ACK) atau kluster ACK Serverless yang sudah ada, atau lakukan instalasi saat membuat kluster baru. Untuk informasi selengkapnya, lihat Mengelola komponen MSE Ingress Controller.
Langkah 2: Buat resource MseIngressConfig
MseIngressConfig adalah Custom Resource Definition (CRD) yang disediakan oleh MSE Ingress Controller. Anda dapat membuat resource MseIngressConfig untuk membuat atau mengaitkan instans gateway yang dikelola oleh MSE. Untuk informasi selengkapnya, lihat Membuat instans gateway cloud-native MSE.
Saat membuat gateway, Anda hanya perlu membuat Classic Load Balancer (CLB) dengan akses internal. Berikut ini contoh konfigurasinya:
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: egress-gateway
spec:
name: egress-gateway
common:
instance:
spec: 2c4g
replicas: 3
network:
vSwitches:
- "vsw-xxxx" # ID vSwitch tempat gateway dikaitkan.
privateSLBSpec: slb.s2.small
Jika Anda tidak memilih Configure SNAT for VPC saat membuat kluster ACK atau kluster ACK Serverless, kluster tersebut tidak dapat mengakses Internet. Anda harus mengonfigurasi SNAT secara terpisah untuk gateway agar akses publik dapat diaktifkan.
Akses jaringan publik memerlukan entri SNAT di NAT gateway. Untuk membuat NAT gateway, lihat Menggunakan fitur SNAT pada public NAT gateway untuk mengakses Internet. Pada dokumen yang ditautkan, ikuti petunjuk di Langkah 3: Membuat entri SNAT. Untuk entri SNAT tersebut, pilih vSwitch dan masukkan ID vSwitch dari MseIngressConfig Anda.
Langkah 3: Buat layanan ExternalName
Layanan ExternalName Kubernetes memetakan layanan internal ke nama DNS. Misalnya, untuk mengakses halaman produk Alibaba Cloud MSE dari dalam kluster Kubernetes Anda, gunakan konfigurasi berikut:
apiVersion: v1
kind: Service
metadata:
name: aliyun-svc-external
namespace: default
spec:
externalName: www.aliyun.com
ports:
- name: port1
port: 80
protocol: TCP
targetPort: 80
- name: port2
port: 443
protocol: TCP
targetPort: 443
type: ExternalName
Langkah 4: Konfigurasikan routing untuk layanan ExternalName
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: mse-ingress
namespace: default
spec:
ingressClassName: mse
rules:
- host: www.aliyun.com # Nama domain tujuan.
http:
paths:
- backend:
service:
name: aliyun-svc-external # Layanan ExternalName backend.
port:
number: 80
path: /product/aliware/mse # Jalur akses ke layanan backend.
pathType: Prefix
Simpan konfigurasi di atas sebagai mse-ingress.yaml dan jalankan kubectl apply -f mse-ingress.yaml. Kemudian, jalankan kubectl get ingress mse-ingress -o yaml untuk melihat resource Ingress dan mendapatkan alamat CLB dari gateway cloud-native MSE. Berikut ini contoh output-nya:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/backend-protocol: HTTPS # Diperlukan karena layanan Alibaba Cloud mewajibkan HTTPS. Gateway harus menggunakan HTTPS untuk merutekan ke layanan backend.
name: mse-ingress
namespace: default
spec:
ingressClassName: mse
rules:
- host: www.aliyun.com
http:
paths:
- backend:
service:
name: aliyun-svc-external
port:
number: 443
path: /product/aliware/mse
pathType: Prefix
status:
loadBalancer:
ingress:
- ip: xx.xx.xx.xx # Ganti dengan alamat CLB gateway cloud-native MSE.
Langkah 5: Verifikasi akses ke layanan eksternal
curl http://www.aliyun.com/product/aliware/mse --resolve www.aliyun.com:80:xx.xx.xx.xx
Ganti xx.xx.xx.xx dengan alamat IP CLB gateway dari Langkah 4.
Dokumen terkait
Untuk mempelajari cara menggunakan fitur gateway lanjutan lainnya dengan Ingress, lihat Penggunaan lanjutan MSE Ingress.