Gerbang MSE Ingress mendukung anotasi inti dan umum dari NGINX Ingress, sehingga mempermudah migrasi. Gerbang ini juga menyediakan 40 anotasi tambahan untuk manajemen lalu lintas tingkat lanjut.
Sumber daya Kubernetes Ingress standar hanya menangani enkripsi Transport Layer Security (TLS) dan routing HTTP Layer-7 dasar. Controller NGINX Ingress sendiri mendefinisikan lebih dari 100 anotasi kustom untuk memenuhi kebutuhan manajemen lalu lintas dan keamanan di dunia nyata. Gerbang MSE Ingress kompatibel dengan anotasi NGINX Ingress yang paling umum, sehingga beban kerja yang ada dapat dimigrasikan tanpa perlu menulis ulang konfigurasi Ingress.
Ikhtisar
Tabel berikut merangkum cakupan anotasi secara sekilas.
Cakupan anotasi NGINX Ingress
| Kategori | Jumlah | Catatan |
|---|---|---|
| Didukung | 51 | Mencakup 90% kasus penggunaan |
| Tidak perlu konfigurasi | 15 | Fungsionalitas tersedia tanpa konfigurasi eksplisit |
| Direncanakan | 48 | Berlaku untuk sejumlah kecil kasus penggunaan |
| Tidak didukung | 5 | Terikat pada potongan kode spesifik NGINX |
MSE menerapkan fitur secara berbeda dari NGINX. Variabel NGINX yang digunakan dalam anotasi dan potongan kode NGINX Ingress tidak kompatibel dengan padanan NGINX-nya.
Badan permintaan besar: Anotasi nginx.ingress.kubernetes.io/proxy-body-size mengatur ukuran maksimum badan permintaan di NGINX dan menolak permintaan yang melebihi batas tersebut. MSE menggunakan chunked transfer encoding sebagai gantinya, yang secara otomatis menangani badan permintaan besar tanpa batasan ukuran. Untuk mengatur batas buffer koneksi upstream, konfigurasikan parameter DownstreamConnectionBufferLimits di panel Parameter Settings gerbang MSE Anda.
Pengalihan dan variabel NGINX: Variabel NGINX (seperti $host atau $request_uri) dalam anotasi pengalihan mungkin berfungsi di beberapa versi NGINX Ingress, tetapi tidak didokumentasikan secara resmi. Hindari penggunaan variabel NGINX untuk pengalihan di NGINX Ingress—tidak kompatibel dengan MSE.
Anotasi eksklusif MSE
| Kategori | Jumlah | Catatan |
|---|---|---|
| Anotasi diperluas | 40 | Menambahkan kemampuan tata kelola lalu lintas dan perlindungan keamanan di luar NGINX Ingress |
Cakupan anotasi
Setiap anotasi berlaku pada salah satu dari tiga cakupan berikut:
-
Ingress — berlaku untuk aturan routing yang ditentukan pada sumber daya Ingress.
-
Domain — berlaku untuk hostname yang ditentukan pada sumber daya Ingress dan juga berlaku pada hostname yang sama dari sumber daya Ingress lainnya.
-
Service — berlaku untuk layanan backend yang dirujuk oleh sumber daya Ingress dan juga berlaku pada layanan yang sama yang dirujuk oleh sumber daya Ingress lainnya.
Awalan anotasi
Anotasi yang kompatibel dengan MSE menerima awalan nginx atau mse. Sebagai contoh, nginx.ingress.kubernetes.io/ssl-redirect dan mse.ingress.kubernetes.io/ssl-redirect setara.
Anotasi eksklusif MSE hanya menggunakan awalan mse. Mengganti mse dengan nginx untuk anotasi ini tidak memiliki efek apa pun.
Indeks referensi cepat
Tabel berikut mencantumkan semua anotasi yang didukung beserta status kompatibilitas dan kategorinya. Gunakan tabel ini untuk memeriksa dengan cepat apakah anotasi tertentu didukung sebelum membaca detail lengkap di bawah ini.
| Anotasi | Status | Kategori |
|---|---|---|
nginx.ingress.kubernetes.io/canary |
Kompatibel | Rilis canary |
nginx.ingress.kubernetes.io/canary-by-header |
Kompatibel | Rilis canary |
nginx.ingress.kubernetes.io/canary-by-header-value |
Kompatibel | Rilis canary |
nginx.ingress.kubernetes.io/canary-by-header-pattern |
Kompatibel | Rilis canary |
mse.ingress.kubernetes.io/canary-by-query |
Eksklusif MSE | Rilis canary |
mse.ingress.kubernetes.io/canary-by-query-value |
Eksklusif MSE | Rilis canary |
mse.ingress.kubernetes.io/canary-by-query-pattern |
Eksklusif MSE | Rilis canary |
nginx.ingress.kubernetes.io/canary-by-cookie |
Kompatibel | Rilis canary |
mse.ingress.kubernetes.io/canary-by-cookie-value |
Eksklusif MSE (V1.2.30+) | Rilis canary |
nginx.ingress.kubernetes.io/canary-weight |
Kompatibel | Rilis canary |
nginx.ingress.kubernetes.io/canary-weight-total |
Kompatibel | Rilis canary |
mse.ingress.kubernetes.io/destination |
Eksklusif MSE | Routing multi-layanan |
mse.ingress.kubernetes.io/service-subset |
Eksklusif MSE (V1.2.25+) | Subset layanan |
mse.ingress.kubernetes.io/subset-labels |
Eksklusif MSE (V1.2.25+) | Subset layanan |
nginx.ingress.kubernetes.io/default-backend |
Kompatibel | Layanan fallback |
nginx.ingress.kubernetes.io/custom-http-errors |
Kompatibel | Layanan fallback |
nginx.ingress.kubernetes.io/use-regex |
Kompatibel | Pencocokan path ekspresi reguler |
nginx.ingress.kubernetes.io/rewrite-target |
Kompatibel | Penulisan ulang path |
nginx.ingress.kubernetes.io/upstream-vhost |
Kompatibel | Penulisan ulang path |
nginx.ingress.kubernetes.io/ssl-redirect |
Kompatibel | Pengalihan |
nginx.ingress.kubernetes.io/force-ssl-redirect |
Kompatibel | Pengalihan |
nginx.ingress.kubernetes.io/permanent-redirect |
Kompatibel | Pengalihan |
nginx.ingress.kubernetes.io/permanent-redirect-code |
Kompatibel | Pengalihan |
nginx.ingress.kubernetes.io/temporal-redirect |
Kompatibel | Pengalihan |
nginx.ingress.kubernetes.io/app-root |
Kompatibel | Pengalihan |
nginx.ingress.kubernetes.io/enable-cors |
Kompatibel | CORS |
nginx.ingress.kubernetes.io/cors-allow-origin |
Kompatibel | CORS |
nginx.ingress.kubernetes.io/cors-allow-methods |
Kompatibel | CORS |
nginx.ingress.kubernetes.io/cors-allow-headers |
Kompatibel | CORS |
nginx.ingress.kubernetes.io/cors-expose-headers |
Kompatibel | CORS |
nginx.ingress.kubernetes.io/cors-allow-credentials |
Kompatibel | CORS |
nginx.ingress.kubernetes.io/cors-max-age |
Kompatibel | CORS |
mse.ingress.kubernetes.io/request-header-control-add |
Eksklusif MSE | Kontrol header |
mse.ingress.kubernetes.io/request-header-control-update |
Eksklusif MSE | Kontrol header |
mse.ingress.kubernetes.io/request-header-control-remove |
Eksklusif MSE | Kontrol header |
mse.ingress.kubernetes.io/response-header-control-add |
Eksklusif MSE | Kontrol header |
mse.ingress.kubernetes.io/response-header-control-update |
Eksklusif MSE | Kontrol header |
mse.ingress.kubernetes.io/response-header-control-remove |
Eksklusif MSE | Kontrol header |
mse.ingress.kubernetes.io/timeout |
Eksklusif MSE | Timeout |
nginx.ingress.kubernetes.io/proxy-next-upstream-tries |
Kompatibel | Retry |
nginx.ingress.kubernetes.io/proxy-next-upstream-timeout |
Kompatibel | Retry |
nginx.ingress.kubernetes.io/proxy-next-upstream |
Kompatibel | Retry |
mse.ingress.kubernetes.io/mirror-target-service |
Eksklusif MSE | Pencerminan trafik |
mse.ingress.kubernetes.io/mirror-percentage |
Eksklusif MSE (V1.2.32+) | Pencerminan trafik |
nginx.ingress.kubernetes.io/server-alias |
Sebagian kompatibel (V1.2.30+) | Alias domain |
mse.ingress.kubernetes.io/route-limit-rpm |
Eksklusif MSE | Pembatasan laju (single-gateway, akan ditinggalkan) |
mse.ingress.kubernetes.io/route-limit-rps |
Eksklusif MSE | Pembatasan laju (single-gateway, akan ditinggalkan) |
mse.ingress.kubernetes.io/route-limit-burst-multiplier |
Eksklusif MSE | Pembatasan laju (single-gateway, akan ditinggalkan) |
mse.ingress.kubernetes.io/rate-limit |
Eksklusif MSE (V1.2.25+) | Pembatasan laju (global) |
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-code |
Eksklusif MSE (V1.2.25+) | Pembatasan laju (global) |
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body-type |
Eksklusif MSE (V1.2.25+) | Pembatasan laju (global) |
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body |
Eksklusif MSE (V1.2.25+) | Pembatasan laju (global) |
mse.ingress.kubernetes.io/rate-limit-fallback-redirect-url |
Eksklusif MSE (V1.2.25+) | Pembatasan laju (global) |
mse.ingress.kubernetes.io/concurrency-limit |
Eksklusif MSE (V1.2.25+) | Kontrol konkurensi |
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-code |
Eksklusif MSE (V1.2.25+) | Kontrol konkurensi |
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-body-type |
Eksklusif MSE (V1.2.25+) | Kontrol konkurensi |
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-body |
Eksklusif MSE (V1.2.25+) | Kontrol konkurensi |
mse.ingress.kubernetes.io/concurrency-limit-fallback-redirect-url |
Eksklusif MSE (V1.2.25+) | Kontrol konkurensi |
nginx.ingress.kubernetes.io/backend-protocol |
Sebagian kompatibel | Protokol backend |
nginx.ingress.kubernetes.io/load-balance |
Sebagian kompatibel | Penyeimbangan beban |
nginx.ingress.kubernetes.io/upstream-hash-by |
Sebagian kompatibel | Penyeimbangan beban |
mse.ingress.kubernetes.io/warmup |
Eksklusif MSE | Pemanasan layanan |
nginx.ingress.kubernetes.io/affinity |
Kompatibel | Afinitas cookie |
nginx.ingress.kubernetes.io/affinity-mode |
Sebagian kompatibel | Afinitas cookie |
nginx.ingress.kubernetes.io/session-cookie-name |
Kompatibel | Afinitas cookie |
nginx.ingress.kubernetes.io/session-cookie-path |
Kompatibel | Afinitas cookie |
nginx.ingress.kubernetes.io/session-cookie-max-age |
Kompatibel | Afinitas cookie |
nginx.ingress.kubernetes.io/session-cookie-expires |
Kompatibel | Afinitas cookie |
nginx.ingress.kubernetes.io/whitelist-source-range |
Kompatibel | Kontrol akses IP |
nginx.ingress.kubernetes.io/denylist-source-range |
Kompatibel (V1.2.31+) | Kontrol akses IP |
mse.ingress.kubernetes.io/blacklist-source-range |
Eksklusif MSE | Kontrol akses IP |
mse.ingress.kubernetes.io/domain-whitelist-source-range |
Eksklusif MSE | Kontrol akses IP |
mse.ingress.kubernetes.io/domain-blacklist-source-range |
Eksklusif MSE | Kontrol akses IP |
mse.ingress.kubernetes.io/connection-policy-tcp-max-connection |
Eksklusif MSE | Pool koneksi |
mse.ingress.kubernetes.io/connection-policy-tcp-max-connection-per-endpoint |
Eksklusif MSE | Pool koneksi |
mse.ingress.kubernetes.io/connection-policy-http-max-request-per-connection |
Eksklusif MSE | Pool koneksi |
mse.ingress.kubernetes.io/tls-min-protocol-version |
Eksklusif MSE | TLS (client-to-gateway) |
mse.ingress.kubernetes.io/tls-max-protocol-version |
Eksklusif MSE | TLS (client-to-gateway) |
nginx.ingress.kubernetes.io/ssl-cipher |
Kompatibel | TLS (client-to-gateway) |
mse.ingress.kubernetes.io/auth-tls-secret |
Sebagian kompatibel | TLS (client-to-gateway) |
nginx.ingress.kubernetes.io/proxy-ssl-secret |
Kompatibel | TLS (gateway-to-backend) |
nginx.ingress.kubernetes.io/proxy-ssl-name |
Kompatibel | TLS (gateway-to-backend) |
nginx.ingress.kubernetes.io/proxy-ssl-server-name |
Kompatibel | TLS (gateway-to-backend) |
nginx.ingress.kubernetes.io/auth-type |
Sebagian kompatibel | Otentikasi |
nginx.ingress.kubernetes.io/auth-secret |
Kompatibel | Otentikasi |
nginx.ingress.kubernetes.io/auth-secret-type |
Kompatibel | Otentikasi |
nginx.ingress.kubernetes.io/auth-realm |
Kompatibel | Otentikasi |
Anotasi yang didukung
Tata kelola lalu lintas
Rilis canary
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
nginx.ingress.kubernetes.io/canary |
Ingress | Kompatibel | Mengaktifkan rilis canary untuk Ingress. |
nginx.ingress.kubernetes.io/canary-by-header |
Ingress | Kompatibel | Memisahkan trafik berdasarkan kunci header permintaan. |
nginx.ingress.kubernetes.io/canary-by-header-value |
Ingress | Kompatibel | Memisahkan trafik berdasarkan nilai header permintaan. Mendukung pencocokan eksak. |
nginx.ingress.kubernetes.io/canary-by-header-pattern |
Ingress | Kompatibel | Memisahkan trafik berdasarkan nilai header permintaan. Mendukung pencocokan ekspresi reguler. |
mse.ingress.kubernetes.io/canary-by-query |
Ingress | Eksklusif MSE | Memisahkan trafik berdasarkan kunci parameter kueri URL. |
mse.ingress.kubernetes.io/canary-by-query-value |
Ingress | Eksklusif MSE | Memisahkan trafik berdasarkan nilai parameter kueri URL. Mendukung pencocokan eksak. |
mse.ingress.kubernetes.io/canary-by-query-pattern |
Ingress | Eksklusif MSE | Memisahkan trafik berdasarkan nilai parameter kueri URL. Mendukung pencocokan ekspresi reguler. |
nginx.ingress.kubernetes.io/canary-by-cookie |
Ingress | Kompatibel | Memisahkan trafik berdasarkan kunci cookie. |
mse.ingress.kubernetes.io/canary-by-cookie-value |
Ingress | Eksklusif MSE (memerlukan gateway V1.2.30 atau lebih baru) | Memisahkan trafik berdasarkan nilai cookie. Mendukung pencocokan eksak. |
nginx.ingress.kubernetes.io/canary-weight |
Ingress | Kompatibel | Mengatur bobot trafik untuk layanan canary. |
nginx.ingress.kubernetes.io/canary-weight-total |
Ingress | Kompatibel | Mengatur total bobot yang digunakan untuk perhitungan pemisahan trafik. |
Routing multi-layanan
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
mse.ingress.kubernetes.io/destination |
Ingress | Eksklusif MSE | Mendistribusikan trafik ke beberapa layanan berdasarkan bobot. |
Sintaks: {weight}% {serviceName}.{serviceNamespace}.svc.cluster.local:{port}
Mengonfigurasi anotasi ini menggantikan layanan tujuan untuk semua aturan routing pada Ingress. Jika sintaks tidak valid, anotasi diabaikan dan aturan routing asli tetap berlaku.
Contoh:
annotations:
# Arahkan 60% trafik ke foo dan 40% ke bar
mse.ingress.kubernetes.io/destination: |
60% foo.default.svc.cluster.local:8080
40% bar.default.svc.cluster.local:9090
Subset layanan
Gunakan subset layanan ketika satu Service Kubernetes mengelola beberapa deployment—misalnya, versi stabil dan versi canary. Subset mengarahkan permintaan ke grup pod tertentu.
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
mse.ingress.kubernetes.io/service-subset |
Ingress | Eksklusif MSE (memerlukan gateway V1.2.25 atau lebih baru) | Mengarahkan permintaan ke subset pod dari layanan target. Ketika mse.ingress.kubernetes.io/subset-labels tidak diatur, perilaku routing bergantung pada nilai anotasi ini: atur ke "" atau base untuk menargetkan pod dengan label opensergo.io/canary: "" atau pod tanpa awalan label opensergo.io/canary; atur ke nilai lain (misalnya, gray) untuk menargetkan pod dengan label opensergo.io/canary-gray: gray. Ketika mse.ingress.kubernetes.io/subset-labels diatur, permintaan hanya diteruskan ke pod yang labelnya sesuai dengan pasangan kunci-nilai yang ditentukan di sana. Jika tidak ada pod yang cocok, permintaan dialihkan ke semua pod layanan. |
mse.ingress.kubernetes.io/subset-labels |
Ingress | Eksklusif MSE (memerlukan gateway V1.2.25 atau lebih baru) | Opsional. Gunakan bersama mse.ingress.kubernetes.io/service-subset untuk menentukan label yang mendefinisikan subset pod. |
Layanan Fallback
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
nginx.ingress.kubernetes.io/default-backend |
Ingress | Kompatibel | Menentukan layanan fallback. Jika tidak ada node yang tersedia untuk layanan yang ditentukan dalam aturan Ingress, permintaan diteruskan ke layanan ini. |
nginx.ingress.kubernetes.io/custom-http-errors |
Ingress | Kompatibel | Bekerja dengan nginx.ingress.kubernetes.io/default-backend. Ketika backend mengembalikan salah satu kode status HTTP yang ditentukan, permintaan diteruskan ke layanan fallback dengan path ditulis ulang menjadi /. |
Pencocokan path ekspresi reguler
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
nginx.ingress.kubernetes.io/use-regex |
Ingress | Kompatibel | Mengaktifkan pencocokan ekspresi reguler untuk path yang ditentukan dalam aturan Ingress. Menggunakan sintaks RE2. |
Penulisan ulang path
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
nginx.ingress.kubernetes.io/rewrite-target |
Ingress | Kompatibel | Menulis ulang path permintaan sebelum meneruskan ke backend. Mendukung grup tangkapan. |
nginx.ingress.kubernetes.io/upstream-vhost |
Ingress | Kompatibel | Menulis ulang header Host ke nilai yang ditentukan saat meneruskan permintaan ke backend. |
Pengalihan
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
nginx.ingress.kubernetes.io/ssl-redirect |
Ingress | Kompatibel | Mengalihkan permintaan HTTP ke HTTPS. |
nginx.ingress.kubernetes.io/force-ssl-redirect |
Ingress | Kompatibel | Secara paksa mengalihkan permintaan HTTP ke HTTPS. |
nginx.ingress.kubernetes.io/permanent-redirect |
Ingress | Kompatibel | Mengalihkan permintaan ke URL yang ditentukan dengan pengalihan permanen. |
nginx.ingress.kubernetes.io/permanent-redirect-code |
Ingress | Kompatibel | Mengatur kode status HTTP untuk pengalihan permanen. |
nginx.ingress.kubernetes.io/temporal-redirect |
Ingress | Kompatibel | Mengalihkan permintaan ke URL yang ditentukan dengan pengalihan sementara. |
nginx.ingress.kubernetes.io/app-root |
Ingress | Kompatibel | Mengalihkan permintaan dari / ke path root aplikasi yang ditentukan. |
Berbagi sumber daya lintas asal (CORS)
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
nginx.ingress.kubernetes.io/enable-cors |
Ingress | Kompatibel | Mengaktifkan berbagi sumber daya lintas asal (CORS). |
nginx.ingress.kubernetes.io/cors-allow-origin |
Ingress | Kompatibel | Mengatur origin yang diizinkan untuk permintaan CORS. |
nginx.ingress.kubernetes.io/cors-allow-methods |
Ingress | Kompatibel | Mengatur metode HTTP yang diizinkan untuk permintaan CORS, seperti GET, POST, dan PUT. |
nginx.ingress.kubernetes.io/cors-allow-headers |
Ingress | Kompatibel | Mengatur header permintaan yang diizinkan untuk permintaan CORS. |
nginx.ingress.kubernetes.io/cors-expose-headers |
Ingress | Kompatibel | Mengatur header respons yang diekspos ke browser dalam respons CORS. |
nginx.ingress.kubernetes.io/cors-allow-credentials |
Ingress | Kompatibel | Menentukan apakah kredensial dapat disertakan dalam permintaan CORS. |
nginx.ingress.kubernetes.io/cors-max-age |
Ingress | Kompatibel | Mengatur durasi hasil permintaan preflight disimpan dalam cache. |
Kontrol header
Anotasi kontrol header pada rute dasar dan rute canary bersifat independen dan divalidasi secara terpisah. Konfigurasikan kebijakan header berbeda untuk trafik rute dasar dan trafik rute canary sesuai kebutuhan.
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
mse.ingress.kubernetes.io/request-header-control-add |
Ingress | Eksklusif MSE | Menambahkan header ke permintaan sebelum meneruskan ke backend. Jika header sudah ada, nilai baru ditambahkan ke nilai asli. Untuk satu header, gunakan pasangan kunci-nilai. Untuk beberapa header, gunakan blok literal YAML (|) dengan satu pasangan kunci-nilai per baris. |
mse.ingress.kubernetes.io/request-header-control-update |
Ingress | Eksklusif MSE | Memodifikasi header dalam permintaan sebelum meneruskan ke backend. Jika header ada, nilai baru menggantikan nilai asli. Sintaks sama dengan request-header-control-add. |
mse.ingress.kubernetes.io/request-header-control-remove |
Ingress | Eksklusif MSE | Menghapus header dari permintaan sebelum meneruskan ke backend. Untuk satu header, tentukan kuncinya. Untuk beberapa header, pisahkan kunci dengan koma. |
mse.ingress.kubernetes.io/response-header-control-add |
Ingress | Eksklusif MSE | Menambahkan header ke respons sebelum meneruskan ke klien. Jika header sudah ada, nilai baru ditambahkan ke nilai asli. Sintaks sama dengan request-header-control-add. |
mse.ingress.kubernetes.io/response-header-control-update |
Ingress | Eksklusif MSE | Memodifikasi header dalam respons sebelum meneruskan ke klien. Jika header ada, nilai baru menggantikan nilai asli. Sintaks sama dengan request-header-control-add. |
mse.ingress.kubernetes.io/response-header-control-remove |
Ingress | Eksklusif MSE | Menghapus header dari respons sebelum meneruskan ke klien. Untuk satu header, tentukan kuncinya. Untuk beberapa header, pisahkan kunci dengan koma. |
Timeout
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
mse.ingress.kubernetes.io/timeout |
Ingress | Eksklusif MSE | Mengatur timeout permintaan dalam detik. Secara default tidak ada timeout. Berlaku pada lapisan aplikasi, bukan pada lapisan transport TCP. |
Retry
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
nginx.ingress.kubernetes.io/proxy-next-upstream-tries |
Ingress | Kompatibel | Mengatur jumlah maksimum upaya retry. Default: 3. |
nginx.ingress.kubernetes.io/proxy-next-upstream-timeout |
Ingress | Kompatibel | Mengatur timeout untuk upaya retry dalam detik. Secara default tidak ada timeout. |
nginx.ingress.kubernetes.io/proxy-next-upstream |
Ingress | Kompatibel | Mengatur kondisi yang memicu retry. Lihat mekanisme retry NGINX untuk nilai yang didukung. |
Pencerminan trafik
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
mse.ingress.kubernetes.io/mirror-target-service |
Ingress | Eksklusif MSE | Meneruskan salinan trafik masuk ke layanan yang ditentukan. Format: namespace/name:port. namespace default mengikuti namespace gerbang Ingress. port default adalah port pertama layanan. |
mse.ingress.kubernetes.io/mirror-percentage |
Ingress | Eksklusif MSE (memerlukan gateway V1.2.32 atau lebih baru) | Mengatur persentase trafik yang dicerminkan. Nilai valid: 0–100. Default: 100. |
Alias domain
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
nginx.ingress.kubernetes.io/server-alias |
Domain | Sebagian kompatibel — hanya domain pencocokan eksak dan domain wildcard (memerlukan gateway V1.2.30 atau lebih baru) | Menentukan alias domain untuk hostname dalam spesifikasi Ingress. Alias mewarisi konfigurasi TLS, routing, dan tata kelola trafik dari domain sumber. |
Pembatasan laju (single-gateway, akan ditinggalkan)
Ketika pembatasan kecepatan dipicu, badan respons adalah local_rate_limited. Kode status respons bergantung pada versi gateway: gateway sebelum V1.2.23 mengembalikan 503; V1.2.23 dan seterusnya mengembalikan 429.
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
mse.ingress.kubernetes.io/route-limit-rpm |
Ingress | Eksklusif MSE | Mengatur jumlah maksimum permintaan per menit (RPM) pada rute. Batas burst sama dengan nilai ini dikalikan dengan mse.ingress.kubernetes.io/route-limit-burst-multiplier. |
mse.ingress.kubernetes.io/route-limit-rps |
Ingress | Eksklusif MSE | Mengatur jumlah maksimum permintaan per detik (RPS) pada rute. Batas burst sama dengan nilai ini dikalikan dengan mse.ingress.kubernetes.io/route-limit-burst-multiplier. |
mse.ingress.kubernetes.io/route-limit-burst-multiplier |
Ingress | Eksklusif MSE | Mengatur pengali batas burst. Default: 5. |
Pembatasan laju (global, direkomendasikan)
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
mse.ingress.kubernetes.io/rate-limit |
Ingress | Eksklusif MSE (memerlukan gateway V1.2.25 atau lebih baru) | Mengatur RPS maksimum untuk pembatasan laju global pada rute. |
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-code |
Ingress | Eksklusif MSE (memerlukan gateway V1.2.25 atau lebih baru) | Mengatur kode respons HTTP yang dikembalikan ketika pembatasan laju dipicu. Default: 429. Saling eksklusif dengan mse.ingress.kubernetes.io/rate-limit-fallback-redirect-url. |
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body-type |
Ingress | Eksklusif MSE (memerlukan gateway V1.2.25 atau lebih baru) | Mengatur format badan respons pembatasan laju. Default: text. Menetapkan text mengembalikan Content-Type: text/plain; charset=UTF-8. Menetapkan JSON mengembalikan Content-Type: application/json; charset=UTF-8. |
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body |
Ingress | Eksklusif MSE (memerlukan gateway V1.2.25 atau lebih baru) | Mengatur konten badan respons pembatasan laju. Default: sentinel rate limited. |
mse.ingress.kubernetes.io/rate-limit-fallback-redirect-url |
Ingress | Eksklusif MSE (memerlukan gateway V1.2.25 atau lebih baru) | Mengalihkan permintaan ke URL yang ditentukan ketika pembatasan laju dipicu. Saling eksklusif dengan mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-code. |
Kontrol konkurensi (global)
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
mse.ingress.kubernetes.io/concurrency-limit |
Ingress | Eksklusif MSE (memerlukan gateway V1.2.25 atau lebih baru) | Mengatur jumlah maksimum permintaan konkuren pada rute. |
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-code |
Ingress | Eksklusif MSE (memerlukan gateway V1.2.25 atau lebih baru) | Mengatur kode respons HTTP ketika kontrol konkurensi dipicu. Default: 429. Saling eksklusif dengan mse.ingress.kubernetes.io/concurrency-limit-fallback-redirect-url. |
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-body-type |
Ingress | Eksklusif MSE (memerlukan gateway V1.2.25 atau lebih baru) | Mengatur format badan respons pembatasan konkurensi. Default: text. Menetapkan text mengembalikan Content-Type: text/plain; charset=UTF-8. Menetapkan JSON mengembalikan Content-Type: application/json; charset=UTF-8. |
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-body |
Ingress | Eksklusif MSE (memerlukan gateway V1.2.25 atau lebih baru) | Mengatur konten badan respons pembatasan konkurensi. Default: sentinel rate limited. |
mse.ingress.kubernetes.io/concurrency-limit-fallback-redirect-url |
Ingress | Eksklusif MSE (memerlukan gateway V1.2.25 atau lebih baru) | Mengalihkan permintaan ke URL yang ditentukan ketika kontrol konkurensi dipicu. Saling eksklusif dengan mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-code. |
Protokol backend
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
nginx.ingress.kubernetes.io/backend-protocol |
Service | Sebagian kompatibel — AJP dan FCGI tidak didukung | Mengatur protokol yang digunakan untuk berkomunikasi dengan layanan backend. Default: HTTP. Nilai yang didukung: HTTP, HTTP2, HTTPS, gRPC, gRPCS. |
Penyeimbangan beban
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
nginx.ingress.kubernetes.io/load-balance |
Service | Sebagian kompatibel — algoritma Exponentially Weighted Moving Average (EWMA) tidak didukung dan fallback ke round-robin | Mengatur algoritma penyeimbangan beban. Default: round_robin. Nilai yang didukung: round_robin, least_conn, random. |
nginx.ingress.kubernetes.io/upstream-hash-by |
Service | Sebagian kompatibel — menggabungkan variabel NGINX dengan konstanta tidak didukung | Mengaktifkan hashing konsisten. Jenis kunci hash yang didukung: $request_uri (path permintaan, termasuk parameter path), $host (hostname permintaan), $remote_addr (alamat IP klien), $http_<headerName> (nilai header permintaan), $arg_<varName> (nilai parameter kueri URL). |
Pemanasan layanan (mulai mulus)
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
mse.ingress.kubernetes.io/warmup |
Service | Eksklusif MSE | Mengatur durasi pemanasan dalam detik. Secara default dinonaktifkan. Hanya didukung dengan algoritma penyeimbangan beban round_robin dan least_conn. |
Afinitas cookie
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
nginx.ingress.kubernetes.io/affinity |
Service | Kompatibel | Mengatur jenis afinitas. Satu-satunya nilai yang valid adalah cookie. |
nginx.ingress.kubernetes.io/affinity-mode |
Service | Sebagian kompatibel — mode persistent tidak didukung |
Mengatur mode afinitas. Satu-satunya nilai yang valid adalah balanced. |
nginx.ingress.kubernetes.io/session-cookie-name |
Service | Kompatibel | Mengatur nama cookie yang digunakan sebagai kunci hash untuk afinitas sesi. |
nginx.ingress.kubernetes.io/session-cookie-path |
Service | Kompatibel | Mengatur atribut path dari cookie sesi yang dihasilkan. Default: /. |
nginx.ingress.kubernetes.io/session-cookie-max-age |
Service | Kompatibel | Mengatur Max-Age cookie sesi yang dihasilkan dalam detik. Secara default berakhir saat sesi berakhir. |
nginx.ingress.kubernetes.io/session-cookie-expires |
Service | Kompatibel | Mengatur atribut Expires cookie sesi yang dihasilkan dalam detik. Secara default berakhir saat sesi berakhir. |
Kontrol akses berbasis alamat IP
Daftar putih tingkat rute memiliki prioritas lebih tinggi daripada daftar putih tingkat domain. Daftar hitam tingkat rute memiliki prioritas lebih tinggi daripada daftar hitam tingkat domain.
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
nginx.ingress.kubernetes.io/whitelist-source-range |
Ingress | Kompatibel | Mengatur daftar putih IP untuk rute. Menerima alamat IP dan blok CIDR, dipisahkan koma. |
nginx.ingress.kubernetes.io/denylist-source-range |
Ingress | Kompatibel (memerlukan gateway V1.2.31 atau lebih baru) | Mengatur daftar hitam IP untuk rute. Menerima alamat IP dan blok CIDR, dipisahkan koma. Memiliki prioritas lebih tinggi daripada mse.ingress.kubernetes.io/blacklist-source-range. |
mse.ingress.kubernetes.io/blacklist-source-range |
Ingress | Eksklusif MSE | Mengatur daftar hitam IP untuk rute. Menerima alamat IP dan blok CIDR, dipisahkan koma. |
mse.ingress.kubernetes.io/domain-whitelist-source-range |
Ingress | Eksklusif MSE | Mengatur daftar putih IP tingkat domain. Menerima alamat IP dan blok CIDR, dipisahkan koma. |
mse.ingress.kubernetes.io/domain-blacklist-source-range |
Ingress | Eksklusif MSE | Mengatur daftar hitam IP tingkat domain. Menerima alamat IP dan blok CIDR, dipisahkan koma. |
Pool koneksi (gateway ke backend)
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
mse.ingress.kubernetes.io/connection-policy-tcp-max-connection |
Service | Eksklusif MSE | Mengatur jumlah maksimum koneksi TCP antara gateway dan layanan backend. |
mse.ingress.kubernetes.io/connection-policy-tcp-max-connection-per-endpoint |
Service | Eksklusif MSE | Mengatur jumlah maksimum koneksi TCP antara gateway dan satu pod backend. |
mse.ingress.kubernetes.io/connection-policy-http-max-request-per-connection |
Service | Eksklusif MSE | Mengatur jumlah maksimum permintaan HTTP per koneksi antara gateway dan layanan backend. |
Perlindungan keamanan
TLS antara klien dan gateway
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
mse.ingress.kubernetes.io/tls-min-protocol-version |
Domain | Eksklusif MSE | Mengatur versi TLS minimum. Default: TLSv1.0. Nilai valid: TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3. |
mse.ingress.kubernetes.io/tls-max-protocol-version |
Domain | Eksklusif MSE | Mengatur versi TLS maksimum. Default: TLSv1.3. Nilai valid: TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3. |
nginx.ingress.kubernetes.io/ssl-cipher |
Domain | Kompatibel | Mengatur paket sandi TLS, dipisahkan koma. Hanya berlaku untuk proses jabat tangan TLS 1.0–1.2. Paket sandi default: ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES128-SHA, ECDHE-RSA-AES128-SHA, AES128-GCM-SHA256, AES128-SHA, ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES256-SHA, ECDHE-RSA-AES256-SHA, AES256-GCM-SHA384, AES256-SHA. |
mse.ingress.kubernetes.io/auth-tls-secret |
Domain | Sebagian kompatibel — nama secret harus mengikuti format <nama-secret-sertifikat-domain>-cacert |
Menentukan sertifikat CA yang digunakan gateway untuk memverifikasi sertifikat klien selama proses jabat tangan TLS mutual (mTLS). |
TLS antara gateway dan layanan backend
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
nginx.ingress.kubernetes.io/proxy-ssl-secret |
Service | Kompatibel | Menentukan sertifikat klien yang diberikan gateway ke layanan backend selama proses jabat tangan TLS. |
nginx.ingress.kubernetes.io/proxy-ssl-name |
Service | Kompatibel | Mengatur nilai Indikasi Nama Server (SNI) yang digunakan selama proses jabat tangan TLS dengan backend. |
nginx.ingress.kubernetes.io/proxy-ssl-server-name |
Service | Kompatibel | Mengaktifkan atau menonaktifkan SNI selama proses jabat tangan TLS dengan backend. |
Otentikasi
Otentikasi dasar
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|---|---|---|
nginx.ingress.kubernetes.io/auth-type |
Ingress | Sebagian kompatibel — hanya otentikasi basic yang didukung |
Mengatur jenis otentikasi. |
nginx.ingress.kubernetes.io/auth-secret |
Ingress | Kompatibel | Menentukan secret yang berisi kredensial untuk rute. Format: <namespace>/<name>. |
nginx.ingress.kubernetes.io/auth-secret-type |
Ingress | Kompatibel | Mengatur format data secret. auth-file: kunci auth berisi pasangan username:password yang dipisahkan baris baru. auth-map: setiap kunci adalah username dan nilainya adalah password. |
nginx.ingress.kubernetes.io/auth-realm |
Ingress | Kompatibel | Mengatur realm otentikasi. Kredensial dibagi dalam satu realm. |
Untuk daftar lengkap anotasi NGINX Ingress, lihat Annotations.