Gerbang MSE Ingress dari Microservices Engine (MSE) mendukung anotasi inti dan umum dari gerbang NGINX Ingress, sehingga memungkinkan migrasi yang mulus. Gerbang MSE Ingress juga memperluas anotasi NGINX dengan kemampuan tambahan untuk tata kelola lalu lintas dan perlindungan keamanan.
Jika Anda melakukan migrasi dari gerbang NGINX Ingress ke gerbang MSE Ingress, gunakan halaman ini sebagai referensi kompatibilitas anotasi. Untuk anotasi yang ditandai Compatible, tidak diperlukan perubahan. Untuk anotasi yang ditandai Partially compatible, tinjau batasan yang tercantum sebelum melakukan migrasi.
Ikhtisar fitur anotasi
Kubernetes Ingress standar hanya menyediakan enkripsi Transport Layer Security (TLS) dan kemampuan routing sederhana untuk lalu lintas HTTP Lapisan 7. Pengontrol Ingress biasanya menggunakan anotasi untuk meningkatkan kemampuan Ingress dalam tata kelola lalu lintas dan perlindungan keamanan.
Rangkuman dukungan anotasi
Anotasi NGINX Ingress
| Kategori | Jumlah | Deskripsi |
|---|
| Didukung | 51 | Mencakup 90% kasus penggunaan |
| Tidak berdampak pada fungsionalitas | 15 | Tidak memerlukan konfigurasi |
| Akan didukung | 48 | Direncanakan untuk skenario terbatas |
| Tidak didukung | 5 | Spesifik pada implementasi internal NGINX Ingress |
Anotasi Tambahan MSE
| Kategori | Jumlah | Deskripsi |
|---|
| Diperluas | 40 | Anotasi tambahan untuk tata kelola lalu lintas dan perlindungan keamanan, di luar yang disediakan oleh NGINX Ingress |
Awalan anotasi
Gerbang MSE Ingress menyediakan anotasi yang setara dengan anotasi NGINX Ingress. Misalnya, nginx.ingress.kubernetes.io/xxx dan mse.ingress.kubernetes.io/xxx memiliki fungsionalitas yang sama. Gunakan awalan nginx atau mse sesuai preferensi Anda.
Pengecualian: Anotasi eksklusif MSE hanya menerima awalan mse. Awalan nginx tidak dapat menggantikan awalan mse untuk anotasi tersebut.
Cakupan anotasi
| Cakupan | Efek |
|---|
| Ingress | Berlaku untuk aturan routing yang ditentukan pada resource Ingress |
| Nama domain | Berlaku untuk host yang ditentukan oleh resource Ingress, termasuk host yang sama pada resource Ingress lainnya |
| Layanan | Berlaku untuk layanan yang ditentukan oleh resource Ingress, termasuk layanan yang sama pada resource Ingress lainnya |
Tata kelola lalu lintas
Rilis canary
Gunakan anotasi-anotasi berikut secara bersamaan untuk membagi lalu lintas antar versi layanan.
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
nginx.ingress.kubernetes.io/canary | Ingress | Compatible | Mengaktifkan rilis canary. Atur ke true untuk menandai Ingress ini sebagai Ingress canary. |
nginx.ingress.kubernetes.io/canary-by-header | Ingress | Compatible | Kunci header permintaan yang digunakan untuk pemisahan lalu lintas. |
nginx.ingress.kubernetes.io/canary-by-header-value | Ingress | Compatible | Nilai header permintaan untuk pemisahan lalu lintas. Mendukung pencocokan eksak. |
nginx.ingress.kubernetes.io/canary-by-header-pattern | Ingress | Compatible | Nilai header permintaan untuk pemisahan lalu lintas. Mendukung pencocokan ekspresi reguler. |
mse.ingress.kubernetes.io/canary-by-query | Ingress | MSE-exclusive | Kunci parameter kueri URL yang digunakan untuk pemisahan lalu lintas. |
mse.ingress.kubernetes.io/canary-by-query-value | Ingress | MSE-exclusive | Nilai parameter kueri URL untuk pemisahan lalu lintas. Mendukung pencocokan eksak. |
mse.ingress.kubernetes.io/canary-by-query-pattern | Ingress | MSE-exclusive | Nilai parameter kueri URL untuk pemisahan lalu lintas. Mendukung pencocokan ekspresi reguler. |
nginx.ingress.kubernetes.io/canary-by-cookie | Ingress | Compatible | Kunci cookie permintaan yang digunakan untuk pemisahan lalu lintas. |
mse.ingress.kubernetes.io/canary-by-cookie-value | Ingress | MSE-exclusive (memerlukan gateway V1.2.30 atau lebih baru) | Nilai cookie permintaan untuk pemisahan lalu lintas. Mendukung pencocokan eksak. |
nginx.ingress.kubernetes.io/canary-weight | Ingress | Compatible | Bobot layanan untuk pemisahan lalu lintas. |
nginx.ingress.kubernetes.io/canary-weight-total | Ingress | Compatible | Total bobot di seluruh layanan. |
Routing multi-layanan
Arahkan lalu lintas ke beberapa layanan backend dari satu Ingress berdasarkan bobot. Setelah mengonfigurasi anotasi ini, aturan akan menggantikan layanan tujuan untuk semua aturan routing pada Ingress tersebut.
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
mse.ingress.kubernetes.io/destination | Ingress | MSE-exclusive | Distribusi layanan berbasis bobot. Format: {weight}% {serviceName}.{serviceNamespace}.svc.cluster.local:{port}. Jika sintaks tidak valid, anotasi diabaikan dan aturan routing asli tetap tidak berubah. |
Contoh:
annotations:
# Arahkan 60% lalu lintas 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
Arahkan permintaan ke subset Pod tertentu dalam suatu layanan. Fitur ini berguna ketika satu layanan mengelola beberapa deployment dengan label berbeda.
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
mse.ingress.kubernetes.io/service-subset | Ingress | MSE-exclusive (memerlukan gateway V1.2.25 atau lebih baru) | Menentukan subset untuk meneruskan permintaan. Lihat aturan routing subset di bawah ini. |
mse.ingress.kubernetes.io/subset-labels | Ingress | MSE-exclusive (memerlukan gateway V1.2.25 atau lebih baru) | (Opsional) Selektor label yang digunakan untuk mengklasifikasikan Pod ke dalam subset. Gunakan bersama service-subset. |
Aturan routing subset:
Jika subset-labels tidak dikonfigurasi, routing didasarkan pada nilai service-subset:
"" atau base → Pod dengan label opensergo.io/canary: "", atau Pod tanpa label berawalan opensergo.io/canary.
Nilai lain (misalnya, gray) → Pod dengan label opensergo.io/canary-gray: gray.
Jika subset-labels dikonfigurasi, permintaan hanya diteruskan ke Pod yang cocok dengan label Key:Value yang ditentukan.
Jika tidak ada Pod yang cocok dengan label yang ditentukan, permintaan secara otomatis diteruskan ke semua Pod dalam layanan tersebut.
Layanan fallback
Arahkan permintaan ke layanan fallback ketika backend utama tidak tersedia.
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
nginx.ingress.kubernetes.io/default-backend | Ingress | Compatible | Layanan fallback yang menerima permintaan ketika tidak ada node sehat yang tersedia untuk layanan utama. |
nginx.ingress.kubernetes.io/custom-http-errors | Ingress | Compatible | Bekerja bersama default-backend. Ketika backend mengembalikan salah satu kode status HTTP yang ditentukan, permintaan asli diteruskan ke layanan fallback. |
Penting Ketika permintaan diteruskan ke layanan fallback, path permintaan ditulis ulang menjadi /. Perilaku ini sesuai dengan gerbang NGINX Ingress.
Pencocokan regex
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
nginx.ingress.kubernetes.io/use-regex | Ingress | Compatible | Mengaktifkan pencocokan ekspresi reguler untuk path yang ditentukan dalam Ingress. Menggunakan sintaks RE2. |
Menulis ulang
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
nginx.ingress.kubernetes.io/rewrite-target | Ingress | Compatible | Path tujuan untuk operasi penulisan ulang. Grup tangkapan didukung. |
nginx.ingress.kubernetes.io/upstream-vhost | Ingress | Compatible | Mengganti nilai header Host ketika permintaan yang cocok diteruskan ke layanan backend. |
Pengalihan
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
nginx.ingress.kubernetes.io/ssl-redirect | Ingress | Compatible | Mengalihkan permintaan HTTP ke HTTPS. |
nginx.ingress.kubernetes.io/force-ssl-redirect | Ingress | Compatible | Memaksa pengalihan HTTP ke HTTPS. |
nginx.ingress.kubernetes.io/permanent-redirect | Ingress | Compatible | URL tujuan untuk pengalihan permanen. |
nginx.ingress.kubernetes.io/permanent-redirect-code | Ingress | Compatible | Kode status HTTP untuk pengalihan permanen. |
nginx.ingress.kubernetes.io/temporal-redirect | Ingress | Compatible | URL tujuan untuk pengalihan sementara. |
nginx.ingress.kubernetes.io/app-root | Ingress | Compatible | Mengalihkan permintaan dari / ke path root aplikasi yang ditentukan. |
CORS
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
nginx.ingress.kubernetes.io/enable-cors | Ingress | Compatible | Mengaktifkan Berbagi Sumber Daya Lintas Asal (CORS). |
nginx.ingress.kubernetes.io/cors-allow-origin | Ingress | Compatible | Origin pihak ketiga yang diizinkan untuk CORS. |
nginx.ingress.kubernetes.io/cors-allow-methods | Ingress | Compatible | Metode HTTP yang diizinkan untuk permintaan CORS (misalnya, GET, POST, PUT). |
nginx.ingress.kubernetes.io/cors-allow-headers | Ingress | Compatible | Header permintaan yang diizinkan untuk CORS. |
nginx.ingress.kubernetes.io/cors-expose-headers | Ingress | Compatible | Header respons yang diekspos ke browser. |
nginx.ingress.kubernetes.io/cors-allow-credentials | Ingress | Compatible | Menentukan apakah kredensial dapat disertakan dalam permintaan CORS. |
nginx.ingress.kubernetes.io/cors-max-age | Ingress | Compatible | Durasi maksimum (dalam detik) untuk menyimpan hasil preflight dalam cache. |
Kontrol header
Kebijakan kontrol header untuk rute dasar dan rute canary bersifat independen. Konfigurasikan secara terpisah untuk menerapkan aturan manipulasi header yang berbeda pada lalu lintas dasar dan lalu lintas canary.
Semua anotasi kontrol header bersifat eksklusif MSE dengan cakupan Ingress. Gunakan literal blok YAML (|) untuk mengonfigurasi beberapa header, dengan setiap pasangan key: value pada barisnya sendiri.
| Anotasi | Deskripsi |
|---|
mse.ingress.kubernetes.io/request-header-control-add | Menambahkan header ke permintaan yang diteruskan ke layanan backend. Jika header sudah ada, nilai baru ditambahkan ke nilai asli. |
mse.ingress.kubernetes.io/request-header-control-update | Memodifikasi header dalam permintaan yang diteruskan ke layanan backend. Jika header sudah ada, nilai baru menggantikan nilai asli. |
mse.ingress.kubernetes.io/request-header-control-remove | Menghapus header dari permintaan. Tentukan satu kunci atau beberapa kunci yang dipisahkan koma (,). |
mse.ingress.kubernetes.io/response-header-control-add | Menambahkan header ke respons yang diterima dari layanan backend sebelum diteruskan ke klien. Jika header sudah ada, nilai baru ditambahkan. |
mse.ingress.kubernetes.io/response-header-control-update | Memodifikasi header dalam respons yang diterima dari layanan backend. Jika header sudah ada, nilai baru menggantikan nilai asli. |
mse.ingress.kubernetes.io/response-header-control-remove | Menghapus header dari respons. Tentukan satu kunci atau beberapa kunci yang dipisahkan koma (,). |
Contoh — beberapa header permintaan:
annotations:
mse.ingress.kubernetes.io/request-header-control-add: |
x-custom-header: value1
x-another-header: value2
mse.ingress.kubernetes.io/request-header-control-remove: x-remove-me,x-also-remove
Timeout
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
mse.ingress.kubernetes.io/timeout | Ingress | MSE-exclusive | Timeout permintaan dalam detik. Secara default tidak dikonfigurasi timeout. |
Timeout berlaku pada lapisan aplikasi (HTTP), bukan pada lapisan transport TCP.
Retry
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
nginx.ingress.kubernetes.io/proxy-next-upstream-tries | Ingress | Compatible | Jumlah maksimum retry. Default: 3. |
nginx.ingress.kubernetes.io/proxy-next-upstream-timeout | Ingress | Compatible | Timeout untuk upaya retry dalam detik. Secara default tidak dikonfigurasi timeout. |
nginx.ingress.kubernetes.io/proxy-next-upstream | Ingress | Compatible | Kondisi yang memicu retry. Lihat kondisi retry NGINX. |
Mirroring lalu lintas
Cerminkan persentase lalu lintas langsung ke layanan shadow untuk pengujian tanpa memengaruhi respons produksi.
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
mse.ingress.kubernetes.io/mirror-target-service | Ingress | MSE-exclusive | Layanan tujuan untuk lalu lintas yang dicerminkan. Format: namespace/name:port. Bidang namespace dan port bersifat opsional; namespace default ke namespace gerbang Ingress dan port default ke port pertama. |
mse.ingress.kubernetes.io/mirror-percentage | Ingress | MSE-exclusive (memerlukan gateway V1.2.32 atau lebih baru) | Persentase lalu lintas yang dicerminkan. Nilai valid: 0–100. Default: 100. |
Alias domain
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
nginx.ingress.kubernetes.io/server-alias | Nama domain | Partially compatible (memerlukan gateway V1.2.30 atau lebih baru; hanya mendukung domain exact-match dan wildcard) | Alias domain untuk host yang ditentukan dalam spesifikasi Ingress. Alias tersebut berbagi konfigurasi TLS, routing, dan tata kelola lalu lintas dari domain sumber. |
Pembatasan kecepatan tingkat gateway (akan ditinggalkan)
Anotasi pembatasan kecepatan tingkat gateway ini akan ditinggalkan. Gunakan anotasi pembatasan kecepatan global sebagai gantinya.
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
mse.ingress.kubernetes.io/route-limit-rpm | Ingress | MSE-exclusive | Maksimum permintaan per menit (RPM) per gateway. Batas burst = nilai × route-limit-burst-multiplier. Isi respons saat dipicu: local_rate_limited. Kode status: 503 (gateway sebelum V1.2.23) atau 429 (gateway V1.2.23 atau lebih baru). |
mse.ingress.kubernetes.io/route-limit-rps | Ingress | MSE-exclusive | Maksimum permintaan per detik (RPS) per gateway. Batas burst = nilai × route-limit-burst-multiplier. Isi respons saat dipicu: local_rate_limited. Kode status: 503 (gateway sebelum V1.2.23) atau 429 (gateway V1.2.23 atau lebih baru). |
mse.ingress.kubernetes.io/route-limit-burst-multiplier | Ingress | MSE-exclusive | Pengali untuk batas burst. Default: 5. |
Pembatasan kecepatan global (direkomendasikan)
Anotasi ini memerlukan gateway V1.2.25 atau lebih baru. rate-limit-fallback-custom-response-code dan rate-limit-fallback-redirect-url saling eksklusif — tentukan hanya salah satu.
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
mse.ingress.kubernetes.io/rate-limit | Ingress | MSE-exclusive | Maksimum RPS untuk rute. Digunakan untuk pembatasan kecepatan global. |
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-code | Ingress | MSE-exclusive | Kode status HTTP yang dikembalikan saat pembatasan kecepatan dipicu. Default: 429. Saling eksklusif dengan rate-limit-fallback-redirect-url. |
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body-type | Ingress | MSE-exclusive | Format isi respons saat pembatasan kecepatan dipicu. text → text/plain; charset=UTF-8. json → application/json; charset=UTF-8. Default: text. |
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body | Ingress | MSE-exclusive | Isi respons saat pembatasan kecepatan dipicu. Default: sentinel rate limited. |
mse.ingress.kubernetes.io/rate-limit-fallback-redirect-url | Ingress | MSE-exclusive | URL pengalihan saat pembatasan kecepatan dipicu. Saling eksklusif dengan rate-limit-fallback-custom-response-code. |
Contoh — mengembalikan error JSON kustom saat pembatasan kecepatan:
annotations:
mse.ingress.kubernetes.io/rate-limit: "100"
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-code: "429"
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body-type: json
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body: '{"error":"rate limit exceeded"}'
Kontrol konkurensi global
Anotasi ini memerlukan gateway V1.2.25 atau lebih baru. concurrency-limit-fallback-custom-response-code dan concurrency-limit-fallback-redirect-url saling eksklusif — tentukan hanya salah satu.
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
mse.ingress.kubernetes.io/concurrency-limit | Ingress | MSE-exclusive | Jumlah maksimum permintaan konkuren untuk rute. |
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-code | Ingress | MSE-exclusive | Kode status HTTP yang dikembalikan saat kontrol konkurensi dipicu. Default: 429. Saling eksklusif dengan concurrency-limit-fallback-redirect-url. |
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-body-type | Ingress | MSE-exclusive | Format isi respons saat kontrol konkurensi dipicu. text → text/plain; charset=UTF-8. json → application/json; charset=UTF-8. Default: text. |
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-body | Ingress | MSE-exclusive | Isi respons saat kontrol konkurensi dipicu. Default: sentinel rate limited. |
mse.ingress.kubernetes.io/concurrency-limit-fallback-redirect-url | Ingress | MSE-exclusive | URL pengalihan saat kontrol konkurensi dipicu. Saling eksklusif dengan concurrency-limit-fallback-custom-response-code. |
Protokol backend
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
nginx.ingress.kubernetes.io/backend-protocol | Layanan | Partially compatible (AJP dan FCGI tidak didukung) | Protokol yang digunakan oleh layanan backend. Default: HTTP. Nilai valid: HTTP, HTTP2, HTTPS, gRPC, gRPCS. |
Penyeimbangan beban
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
nginx.ingress.kubernetes.io/load-balance | Layanan | Partially compatible (Exponentially Weighted Moving Average (EWMA) tidak didukung; fallback ke round-robin) | Algoritma penyeimbangan beban untuk layanan backend. Default: round_robin. Nilai valid: round_robin (round-robin), least_conn (least connections), random. |
nginx.ingress.kubernetes.io/upstream-hash-by | Layanan | Partially compatible (menggabungkan variabel NGINX dan konstanta tidak didukung) | Algoritma hashing konsisten. Kunci hash yang didukung: $request_uri (path permintaan termasuk parameter), $host (host permintaan), $remote_addr (alamat IP klien), $http_<headerName> (nilai header permintaan), $arg_<varName> (nilai parameter kueri URL). |
Pra-ambil layanan (mulai mulus)
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
mse.ingress.kubernetes.io/warmup | Layanan | MSE-exclusive | Durasi pemanasan dalam detik. Secara default, fitur pra-ambil layanan dinonaktifkan. |
Penting Pra-ambil layanan memerlukan algoritma penyeimbangan beban round-robin atau least connections. Fitur ini tidak didukung dengan algoritma lain.
Afinitas cookie
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
nginx.ingress.kubernetes.io/affinity | Layanan | Compatible | Jenis afinitas. Satu-satunya nilai valid adalah cookie. |
nginx.ingress.kubernetes.io/affinity-mode | Layanan | Partially compatible (persistent mode tidak didukung) | Mode afinitas. Satu-satunya nilai valid adalah balanced. |
nginx.ingress.kubernetes.io/session-cookie-name | Layanan | Compatible | Nama cookie yang digunakan sebagai kunci hash untuk afinitas sesi. |
nginx.ingress.kubernetes.io/session-cookie-path | Layanan | Compatible | Path yang ditetapkan pada cookie sesi yang dihasilkan. Default: /. |
nginx.ingress.kubernetes.io/session-cookie-max-age | Layanan | Compatible | Usia maksimum cookie sesi yang dihasilkan dalam detik. Default: tingkat sesi (tidak ada Max-Age yang diatur). |
nginx.ingress.kubernetes.io/session-cookie-expires | Layanan | Compatible | Waktu kedaluwarsa cookie sesi yang dihasilkan dalam detik. Default: tingkat sesi (tidak ada Expires yang diatur). |
Kontrol akses berbasis alamat IP
Kontrol akses tingkat rute memiliki prioritas lebih tinggi daripada kontrol akses tingkat domain. Dalam kebijakan tingkat rute, denylist-source-range memiliki prioritas lebih tinggi daripada blacklist-source-range.
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
nginx.ingress.kubernetes.io/whitelist-source-range | Ingress | Compatible | Daftar putih alamat IP untuk rute. Menerima alamat IP dan Blok CIDR, dipisahkan koma. |
nginx.ingress.kubernetes.io/denylist-source-range | Ingress | Compatible (memerlukan gateway V1.2.31 atau lebih baru) | Daftar hitam alamat 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 | MSE-exclusive | Daftar hitam alamat IP untuk rute. Menerima alamat IP dan Blok CIDR, dipisahkan koma. |
mse.ingress.kubernetes.io/domain-whitelist-source-range | Ingress | MSE-exclusive | Daftar putih alamat IP yang diterapkan pada tingkat domain. Daftar putih tingkat rute memiliki prioritas lebih tinggi. |
mse.ingress.kubernetes.io/domain-blacklist-source-range | Ingress | MSE-exclusive | Daftar hitam alamat IP yang diterapkan pada tingkat domain. Daftar hitam tingkat rute memiliki prioritas lebih tinggi. |
Kolam koneksi (gateway ke backend)
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
mse.ingress.kubernetes.io/connection-policy-tcp-max-connection | Layanan | MSE-exclusive | Maksimum total koneksi TCP antara gateway dan layanan backend. |
mse.ingress.kubernetes.io/connection-policy-tcp-max-connection-per-endpoint | Layanan | MSE-exclusive | Maksimum koneksi TCP antara gateway dan satu endpoint backend. |
mse.ingress.kubernetes.io/connection-policy-http-max-request-per-connection | Layanan | MSE-exclusive | Maksimum permintaan HTTP per koneksi TCP antara gateway dan layanan backend. |
Perlindungan keamanan
TLS klien-ke-gateway
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
mse.ingress.kubernetes.io/tls-min-protocol-version | Nama domain | MSE-exclusive | Versi TLS minimum. Default: TLSv1.0. Nilai valid: TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3. |
mse.ingress.kubernetes.io/tls-max-protocol-version | Nama domain | MSE-exclusive | Versi TLS maksimum. Default: TLSv1.3. Nilai valid: TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3. |
nginx.ingress.kubernetes.io/ssl-cipher | Nama domain | Compatible | Paket sandi TLS, dipisahkan koma. Hanya berlaku selama 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 | Nama domain | Partially compatible (nama rahasia harus mengikuti format <domain-cert-secret-name>-cacert) | Sertifikat CA yang digunakan gateway untuk memverifikasi sertifikat klien selama proses jabat tangan TLS timbal balik (mTLS). |
Contoh — mewajibkan TLS 1.2 atau lebih baru dengan paket sandi tertentu:
annotations:
mse.ingress.kubernetes.io/tls-min-protocol-version: TLSv1.2
mse.ingress.kubernetes.io/tls-max-protocol-version: TLSv1.3
nginx.ingress.kubernetes.io/ssl-cipher: ECDHE-RSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES256-GCM-SHA384
TLS gateway-ke-backend
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
nginx.ingress.kubernetes.io/proxy-ssl-secret | Layanan | Compatible | Sertifikat klien yang disajikan gateway ke layanan backend untuk otentikasi timbal balik. |
nginx.ingress.kubernetes.io/proxy-ssl-name | Layanan | Compatible | Nilai Indikasi Nama Server (SNI) yang dikirim selama proses jabat tangan TLS ke layanan backend. |
nginx.ingress.kubernetes.io/proxy-ssl-server-name | Layanan | Compatible | Mengaktifkan SNI selama proses jabat tangan TLS ke layanan backend. |
Otentikasi
MSE Ingress mendukung otentikasi dasar HTTP. Gunakan anotasi-anotasi berikut secara bersamaan: konfigurasikan nama rahasia, format, dan realm opsional.
| Anotasi | Cakupan | Status dukungan | Deskripsi |
|---|
nginx.ingress.kubernetes.io/auth-type | Ingress | Partially compatible (hanya basic yang didukung) | Jenis otentikasi. |
nginx.ingress.kubernetes.io/auth-secret | Ingress | Compatible | Rahasia Kubernetes yang berisi kredensial. Format: <namespace>/<name>. |
nginx.ingress.kubernetes.io/auth-secret-type | Ingress | Compatible | Format data rahasia. auth-file: kunci auth berisi entri username:password yang dipisahkan baris baru. auth-map: setiap kunci adalah username dan nilainya adalah password. |
nginx.ingress.kubernetes.io/auth-realm | Ingress | Compatible | Realm otentikasi. Kredensial dibagikan di seluruh rute dalam realm yang sama. |
Untuk informasi lebih lanjut tentang anotasi NGINX Ingress, lihat Annotations.