MseIngressConfig adalah Definisi Sumber Daya Kustom (CRD) yang disediakan oleh Microservices Engine (MSE) Ingress Controller untuk membuat, menggunakan kembali, dan menghapus gateway cloud-native MSE serta mengonfigurasi opsi pendengaran Ingress dan pengaturan global seperti kontrol akses IP, akselerasi perangkat keras TLS, pencatatan akses, dan pelacakan terdistribusi.
Cara kerja
MSE Ingress Controller memantau sumber daya MseIngressConfig di kluster Anda dan secara dinamis mengelola siklus hidup gateway cloud-native yang sesuai serta asosiasinya dengan kluster ACK yang dikelola, ACK Serverless, dan ACS. Setelah gateway diasosiasikan dengan server API kluster ACK yang dikelola, ACK Serverless, atau ACS, lapisan kontrolnya menyinkronkan perubahan sumber daya Ingress dan memperbarui aturan routing secara real time. Saat menerima permintaan, gateway mencocokkan permintaan tersebut dengan aturan routing Ingress dan meneruskan traffic ke Pod backend yang sesuai.
Diagram berikut menunjukkan hubungan antar komponen.

Komponen utama meliputi:
Service: Abstraksi dari layanan backend. Service merepresentasikan sekelompok Pod yang direplikasi.
Ingress: Berisi aturan reverse proxy yang mengarahkan permintaan HTTP atau HTTPS ke layanan berdasarkan hostname dan path.
IngressClass: Mendeklarasikan implementasi Ingress controller mana yang menangani sekumpulan sumber daya Ingress. Asosiasikan IngressClass dengan MseIngressConfig untuk mengaktifkan gateway cloud-native MSE bagi sumber daya Ingress tersebut.
MseIngressConfig: CRD yang menyediakan konfigurasi gateway—spesifikasi instans, pengaturan jaringan, kebijakan global, dan cakupan pendengaran Ingress.
MSE Ingress Controller: Lapisan kontrol yang mengelola instans gateway cloud-native MSE dan konfigurasinya. Ini bukan bidang data jaringan. Ia memantau sumber daya MseIngressConfig di kluster dan mengoordinasikan instans gateway cloud-native MSE untuk menerapkan aturan manajemen traffic yang dijelaskan oleh sumber daya Ingress.
Satu MseIngressConfig dipetakan tepat ke satu gateway cloud-native MSE. Untuk menjalankan beberapa gateway, buat beberapa MseIngressConfig.
Referensi MseIngressConfig
Contoh konfigurasi lengkap
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: test
spec:
name: mse-ingress
common:
pay:
payType: POSTPAY
instance:
spec: 4c8g
replicas: 3
network:
vSwitches:
- "vsw-1"
- "vsw-2"
publicSLBSpec: slb.s2.small
securityGroupType: normal
global:
tls:
enableHardwareAcceleration: true
ipAccessControl:
whitelist:
- 1.1.XX.XX
- 2.2.XX.XX
monitor:
logging:
sls:
reuseProject: "xxx" # Biarkan kosong untuk menggunakan proyek default
tracing:
openTelemetry:
sampleRate: "100"
ingress:
local:
ingressClass: mse
watchNamespace: "" # Biarkan kosong untuk mendengarkan semua namespaceParameter
Parameter | Deskripsi | Wajib | Default |
| Nama gateway | Tidak |
|
| Metode penagihan. Hanya | Tidak |
|
| Ukuran instans gateway. Nilai valid: | Tidak |
|
| Jumlah replika gateway. Nilai valid: 0–30 | Tidak |
|
| vSwitch primer dan sekunder. Tentukan minimal satu dan maksimal dua. Jika tidak diatur, vSwitch pada node tempat Pod MSE Ingress Controller berjalan akan digunakan. | Tidak | Tidak ada |
| Spesifikasi untuk instans Server Load Balancer (SLB) yang menghadap Internet. Nilai valid: | Tidak |
|
| Spesifikasi untuk instans SLB internal. Nilai valid sama seperti | Tidak |
|
| Jenis grup keamanan. Nilai valid: | Tidak |
|
| Aktifkan akselerasi perangkat keras Transport Layer Security (TLS) untuk meningkatkan performa pemrosesan HTTPS. | Tidak |
|
| Daftar putih alamat IP global. Menerima IP individual dan Blok CIDR. | Tidak | Tidak dikonfigurasi |
| Daftar hitam alamat IP global. Menerima IP individual dan Blok CIDR. | Tidak | Tidak dikonfigurasi |
| Aktifkan pencatatan akses Simple Log Service (SLS). Berikan izin SLS kepada MSE Ingress Controller sebelum mengaktifkan. | Tidak | Nonaktif |
| Proyek SLS untuk log akses. Biarkan kosong untuk menggunakan proyek default; tentukan nama proyek untuk menggunakan proyek yang sudah ada. | Tidak | Kosong (proyek default) |
| Aktifkan analisis pelacakan xTrace. Tidak dapat diaktifkan bersamaan dengan | Tidak | Nonaktif |
| Laju pengambilan sampel untuk xTrace, dalam persentase string. Misalnya, | Tidak |
|
| Aktifkan analisis pelacakan OpenTelemetry. Tidak dapat diaktifkan bersamaan dengan | Tidak | Nonaktif |
| Laju pengambilan sampel untuk OpenTelemetry, dalam persentase string. | Tidak |
|
| IngressClass yang didengarkan gateway. Lihat tabel di bawah untuk nilai valid. | Tidak | Tidak dikonfigurasi |
| Namespace yang dipantau. Biarkan kosong untuk mendengarkan semua namespace. Hanya satu namespace yang dapat ditentukan. | Tidak | Kosong (semua namespace) |
ingress.local.ingressClass nilai valid:
Nilai | Perilaku |
Tidak dikonfigurasi | Tidak ada sumber daya Ingress yang didengarkan. |
| Mendengarkan sumber daya Ingress dengan IngressClass |
| Mendengarkan semua sumber daya Ingress di kluster. |
| Mendengarkan sumber daya Ingress dengan IngressClass |
Nilai lainnya | Mendengarkan sumber daya Ingress yang diasosiasikan dengan IngressClass yang ditentukan. |
Sumber daya IngressClass yang secara eksplisit mereferensikan MseIngressConfig dispec.parameters-nya memiliki prioritas lebih tinggi daripada nilaiingress.local.ingressClass.
Status
Periksa status MseIngressConfig:
kubectl get mseingressconfigOutput yang diharapkan:
NAME STATUS MESSAGE
test ListeningStatus berlangsung dalam urutan berikut: Pending → Running → Listening.
Status | Deskripsi |
| Gateway cloud-native sedang dibuat. Pembuatan memerlukan waktu sekitar 3 menit. |
| Gateway telah dibuat dan berjalan. |
| Gateway berjalan dan mendengarkan sumber daya Ingress di kluster. |
| Gateway tidak valid. Periksa bidang |
Tag sumber daya
Gateway cloud-native MSE yang dibuat atau digunakan kembali oleh MseIngressConfig secara otomatis diberi tag. Anda dapat melihat tag gateway tersebut di bagian informasi dasar instans gateway di Konsol MSE.
Jangan mengedit tag ini di Konsol MSE. Mengubahnya dapat mengganggu operasi gateway.
Tag | Deskripsi |
| Mengidentifikasi kluster ACK yang traffic ingress-nya dikelola oleh gateway ini. |
| Mengidentifikasi MseIngressConfig yang diasosiasikan dengan gateway ini. |
| Menandai gateway sebagai digunakan kembali. Menghapus MseIngressConfig yang diasosiasikan tidak akan menghapus gateway yang bertag ini. |
Buat gateway cloud-native MSE
Terapkan MseIngressConfig untuk membuat gateway. Contoh berikut membuat gateway bernama
mse-ingressdengan 3 replika pada spesifikasi2c4g.apiVersion: mse.alibabacloud.com/v1alpha1 kind: MseIngressConfig metadata: name: test spec: name: mse-ingress common: instance: spec: 2c4g replicas: 3Buat sumber daya IngressClass dan hubungkan ke MseIngressConfig.
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: mse spec: controller: mse.alibabacloud.com/ingress parameters: apiGroup: mse.alibabacloud.com kind: MseIngressConfig name: testSetelah menerapkan kedua sumber daya tersebut, sumber daya Ingress dengan IngressClass
mseakan diproses oleh gateway cloud-native yang diasosiasikan.Verifikasi bahwa gateway sedang berjalan.
kubectl get mseingressconfig testStatus berlangsung melalui
Pending→Running→Listening. Saat status menunjukkanListening, gateway siap digunakan.
Gunakan kembali gateway cloud-native MSE yang sudah ada
Untuk menggunakan kembali gateway yang sudah ada, atur spec.id ke ID gateway (dalam format gw-xxx) dan kendalikan apakah akan menimpa konfigurasinya dengan spec.override.
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: reuse
spec:
id: gw-xxxx
override: false
ingress:
local:
ingressClass: msespec.override perilaku:
| Efek pada opsi pendengaran Ingress, akselerasi TLS, kontrol akses IP, dan observabilitas | Efek pada asosiasi kluster |
| Pengaturan gateway yang ada dipertahankan. | Jika gateway belum diasosiasikan dengan kluster, secara otomatis diasosiasikan dan mengonfigurasi pendengaran |
| Menimpa pengaturan gateway dengan nilai yang ditentukan dalam MseIngressConfig ini. Jika parameter dihilangkan dari MseIngressConfig, pengaturan aslinya dihapus. | Mengasosiasikan gateway dengan kluster. |
Saat mengatur spec.override: true, tentukan semua parameter yang ingin Anda pertahankan. Parameter yang dihilangkan dari MseIngressConfig akan ditimpa dan traffic Anda mungkin terpengaruh negatif.
Hapus gateway cloud-native MSE
Menghapus MseIngressConfig umumnya juga menghapus gateway yang diasosiasikan. Pengecualian terjadi pada skenario penggunaan kembali, di mana gateway tetap dipertahankan.
Jalankan perintah berikut untuk menghapus MseIngressConfig:
kubectl delete mseingressconfig <nama-konfigurasi-anda>Perilaku penghapusan berdasarkan skenario:
Metode penagihan | Gateway dibuat oleh MSE Ingress Controller | Gateway digunakan kembali dari konsol |
Pay-as-you-go | Menghapus MseIngressConfig juga menghapus gateway. | Menghapus MseIngressConfig mempertahankan gateway. |
Langganan | Tidak berlaku | Menghapus MseIngressConfig mempertahankan gateway. |
Konfigurasikan kontrol akses IP
Izinkan traffic dari IP tertentu (daftar putih)
Contoh berikut hanya mengizinkan alamat IP 1.1.XX.XX dan Blok CIDR 2.0.XX.XX/8 untuk mengakses gateway.
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: test
spec:
name: mse-ingress
global:
ipAccessControl:
whitelist:
- 1.1.XX.XX
- 2.0.XX.XX/8Blokir traffic dari IP tertentu (daftar hitam)
Contoh berikut memblokir akses dari alamat IP 1.1.XX.XX dan Blok CIDR 2.0.XX.XX/8.
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: test
spec:
name: mse-ingress
global:
ipAccessControl:
blacklist:
- 1.1.XX.XX
- 2.0.XX.XX/8Aktifkan Simple Log Service
Sebelum mengaktifkan Simple Log Service (SLS), berikan izin SLS kepada MSE Ingress Controller sesuai jenis kluster Anda:
Untuk kluster ACK yang dikelola atau kluster khusus ACK, ikuti bagian kluster khusus ACK di Berikan izin kepada MSE Ingress Controller.
Untuk kluster ACK Serverless, ikuti bagian kluster ACK Serverless di Berikan izin kepada MSE Ingress Controller.
Untuk kluster ACS, ikuti bagian kluster ACS di Berikan izin kepada MSE Ingress Controller.
Contoh berikut mengonfigurasi gateway untuk mengirimkan log akses ke proyek SLS bernama demo. Untuk menggunakan proyek default, biarkan reuseProject kosong.
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: test
spec:
name: mse-ingress
monitor:
logging:
sls:
reuseProject: "demo"Aktifkan Managed Service for OpenTelemetry
Mengonfigurasi Managed Service for OpenTelemetry mengaktifkan pelacakan terdistribusi end-to-end untuk membantu mendiagnosis dan menemukan masalah produksi.
Contoh berikut mengatur laju pengambilan sampel menjadi 100%.
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: test
spec:
name: mse-ingress
monitor:
tracing:
openTelemetry:
sampleRate: "100"Konfigurasi tambahan
Instans gateway cloud-native MSE yang digunakan oleh MSE Ingress mendukung konfigurasi tambahan berikut.
Untuk menerapkan konfigurasi ini, login ke Konsol MSE, buka Cloud-native Gateway > Gateways, temukan instans gateway yang sudah ada atau yang dibuat otomatis oleh MSE Ingress Controller (ID instans menggunakan format mse_ingresspost-*****), klik ID instans tersebut, lalu klik Parameters di panel navigasi sebelah kiri.
Item konfigurasi | Tipe | Deskripsi |
| Bool | Berlaku untuk permintaan. Saat diaktifkan, gateway menghasilkan |
| Bool | Berlaku untuk permintaan dan respons. Saat diaktifkan, gzip mengompresi permintaan dan respons, yang mengurangi traffic gateway tetapi meningkatkan penggunaan CPU gateway. |
| Bool | Berlaku untuk permintaan. Menentukan apakah akan menggabungkan slash berlebih ( |
| Int. Nilai valid: [0, 2147483647] | Berlaku untuk koneksi gateway. Ukuran buffer untuk satu koneksi. Nilai ini memengaruhi throughput dan penggunaan memori gateway. |
| Int. Nilai valid: [0, 10] | Berlaku untuk permintaan. Jumlah proxy tepercaya di depan gateway. Nilai ini menentukan apakah gateway menggunakan header permintaan yang dihasilkan klien seperti |
| Int. Nilai valid: [0, 2147483647] | Berlaku untuk permintaan. Jumlah maksimum stream konkuren pada satu koneksi saat klien menggunakan HTTP/2. |
| Int. Nilai valid: [65535, 2147483647] (byte) | Berlaku untuk permintaan. Ukuran jendela stream awal yang dinegosiasikan antara gateway dan klien saat menggunakan HTTP/2. |
| Int. Nilai valid: [65535, 2147483647] (byte) | Berlaku untuk permintaan. Ukuran jendela awal tingkat koneksi yang digunakan antara gateway dan klien saat menggunakan HTTP/2. |
| Bool | Menentukan apakah akan mendukung HTTP/3. HTTP/3 tidak kompatibel dengan akselerasi perangkat keras. Nonaktifkan akselerasi perangkat keras sebelum mengaktifkan HTTP/3. |
| String. Nilai valid: [KEEP_UNCHANGED, REJECT_REQUEST, UNESCAPE_AND_REDIRECT, UNESCAPE_AND_FORWARD] | Aksi yang diambil terhadap permintaan yang path URI-nya mengandung karakter escape |
| List<String>. Nilai valid: [brotli, gzip] | Algoritma yang digunakan setelah kompresi diaktifkan. Anda dapat memilih brotli atau gzip. Jika |
| Bool | Menentukan apakah akan mengaktifkan protokol Proxy. Jika traffic inbound gateway tiba melalui instans Network Load Balancer (NLB), gateway tidak dapat memperoleh alamat IP klien yang sebenarnya kecuali item ini diaktifkan. Mengaktifkannya tidak berdampak pada permintaan yang tidak menggunakan protokol Proxy. |
| Bool | Berlaku untuk skenario yang menggunakan layanan otentikasi yang dikelola sendiri. Saat diaktifkan, perubahan aturan otentikasi tidak mengganggu koneksi, yang cocok untuk skenario WebSocket dan bisnis online. |
| Int. Nilai valid: [0, 600] (detik) | Digunakan untuk menghasilkan header respons Keep-Alive yang dikembalikan ke klien, yang memberi tahu klien periode keepalive koneksi. Misalnya, jika Anda mengatur item ini menjadi 10, gateway mengembalikan |
| Int. Nilai valid: [20, 900] (detik) | Periode keepalive yang dipertahankan untuk koneksi WebSocket dalam skenario yang memerlukan penutupan koneksi, seperti peningkatan atau restart instans gateway. |
| Bool | Mengompresi data menggunakan perangkat keras khusus. Saat diaktifkan, permintaan dan respons dikompresi, yang secara signifikan mengurangi traffic gateway dan memberikan performa lebih tinggi serta penggunaan CPU lebih rendah dibanding gzip berbasis perangkat lunak. Anda tidak dapat mengaktifkan item ini di wilayah yang tidak mendukungnya, atau pada instans yang dibeli tanpa akselerasi perangkat keras gzip. Setelah diaktifkan, |
| Bool | Memfilter sumber daya Ingress, Service, dan Pod berdasarkan label tertentu saat Anda menambahkan sumber layanan. Filter negasi didukung. |