All Products
Search
Document Center

Microservices Engine:Anotasi yang didukung oleh gerbang MSE Ingress

Last Updated:Mar 11, 2026

Gerbang MSE (Microservices Engine) Ingress kompatibel dengan sebagian besar anotasi NGINX Ingress dan menyediakan 40 anotasi tambahan untuk tata kelola traffic dan keamanan. Jika Anda melakukan migrasi dari NGINX Ingress, sebagian besar anotasi dapat digunakan tanpa perubahan.

Ringkasan kompatibilitas

KategoriJumlahDetail
Anotasi NGINX Ingress yang didukung51Mencakup 90% kasus penggunaan umum
Anotasi no-op15Tidak memerlukan konfigurasi
Anotasi yang akan didukung48Direncanakan untuk rilis mendatang
Anotasi yang tidak didukung5Terikat pada potongan kode spesifik NGINX
Anotasi eksklusif MSE40Tata kelola lalu lintas dan keamanan yang diperluas

Dasar-dasar anotasi

Lingkup

Setiap anotasi berlaku pada salah satu dari tiga tingkat berikut:

LingkupBerlaku untukPerilaku lintas-Ingress
IngressAturan routing dalam resource IngressHanya berlaku pada Ingress saat ini
Nama domainHost yang didefinisikan dalam resource IngressJuga berlaku pada host yang sama di resource Ingress lainnya
LayananLayanan backend yang didefinisikan dalam resource IngressJuga berlaku pada layanan yang sama di resource Ingress lainnya

Awalan

Gerbang MSE Ingress menerima awalan nginx.ingress.kubernetes.io/ dan mse.ingress.kubernetes.io/ untuk anotasi yang kompatibel. Gunakan salah satu awalan sesuai preferensi Anda.

Anotasi eksklusif MSE hanya mendukung awalan mse.ingress.kubernetes.io/.

Format nilai anotasi

Anotasi Kubernetes selalu berupa string. Konvensi pengkodean berikut berlaku:

TipeFormatContoh
Boolean"true" atau "false""true"
IntegerAngka dalam tanda kutip"3"
DurasiAngka dalam tanda kutip (dalam detik)"30"
PersentaseAngka dalam tanda kutip (0–100)"80"
Daftar stringDipisahkan koma"192.168.0.1,10.0.0.0/8"
Multi-barisPipe YAML (|)Lihat contoh kontrol header

Aturan preseden dan interaksi

AturanDetail
Ekuivalensi awalannginx.ingress.kubernetes.io/xxx dan mse.ingress.kubernetes.io/xxx memiliki perilaku identik untuk anotasi yang kompatibel
Rute berbasis domainDaftar IP tingkat rute mengungguli daftar IP tingkat domain
Denylist NGINX mengungguli denylist MSEnginx.ingress.kubernetes.io/denylist-source-range mengungguli mse.ingress.kubernetes.io/blacklist-source-range
Fallback pembatasan laju saling eksklusifrate-limit-fallback-custom-response-code dan rate-limit-fallback-redirect-url tidak dapat digunakan bersamaan
Fallback konkurensi saling eksklusifconcurrency-limit-fallback-custom-response-code dan concurrency-limit-fallback-redirect-url tidak dapat digunakan bersamaan
Kontrol header independenAnotasi kontrol header untuk rute dasar dan rute canary divalidasi secara independen

Catatan kompatibilitas

  • Variabel NGINX: MSE mengimplementasikan fitur secara berbeda dari NGINX. Variabel NGINX yang dikonfigurasi dalam anotasi atau potongan kode tidak kompatibel dengan MSE.

  • Perilaku proxy-body-size: Gerbang cloud-native MSE menggunakan enkode transfer chunked, yang secara otomatis memecah badan permintaan besar menjadi chunk. Untuk menangani transfer file besar, sesuaikan parameter DownstreamConnectionBufferLimits di Pengaturan Parameter untuk gerbang MSE Anda.

Tata kelola traffic

Rilis canary

AnotasiLingkupStatusDeskripsi
nginx.ingress.kubernetes.io/canaryIngressKompatibelAktifkan rilis canary.
nginx.ingress.kubernetes.io/canary-by-headerIngressKompatibelTetapkan kunci header permintaan untuk pemisahan traffic.
nginx.ingress.kubernetes.io/canary-by-header-valueIngressKompatibelTetapkan nilai header permintaan untuk pemisahan traffic. Mendukung pencocokan eksak.
nginx.ingress.kubernetes.io/canary-by-header-patternIngressKompatibelTetapkan nilai header permintaan untuk pemisahan traffic. Mendukung pencocokan regex.
nginx.ingress.kubernetes.io/canary-by-cookieIngressKompatibelTetapkan kunci cookie permintaan untuk pemisahan traffic.
nginx.ingress.kubernetes.io/canary-weightIngressKompatibelTetapkan bobot layanan untuk pemisahan traffic.
nginx.ingress.kubernetes.io/canary-weight-totalIngressKompatibelTetapkan total bobot.
mse.ingress.kubernetes.io/canary-by-queryIngressEksklusif MSETetapkan parameter kueri URL untuk pemisahan traffic.
mse.ingress.kubernetes.io/canary-by-query-valueIngressEksklusif MSETetapkan nilai parameter kueri URL untuk pemisahan traffic. Mendukung pencocokan eksak.
mse.ingress.kubernetes.io/canary-by-query-patternIngressEksklusif MSETetapkan nilai parameter kueri URL untuk pemisahan traffic. Mendukung pencocokan regex.
mse.ingress.kubernetes.io/canary-by-cookie-valueIngressEksklusif MSE (V1.2.30+)Tetapkan nilai cookie permintaan untuk pemisahan traffic. Mendukung pencocokan eksak.
# Rilis canary: arahkan traffic berdasarkan nilai header
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: canary-ingress
  annotations:
    nginx.ingress.kubernetes.io/canary: "true"
    nginx.ingress.kubernetes.io/canary-by-header: "x-canary"
    nginx.ingress.kubernetes.io/canary-by-header-value: "true"
spec:
  rules:
    - host: example.com
      http:
        paths:
          - path: /api
            pathType: Prefix
            backend:
              service:
                name: my-service-canary
                port:
                  number: 80

Routing multi-layanan

Arahkan traffic ke beberapa layanan backend dengan distribusi berbasis bobot.

AnotasiLingkupStatusDeskripsi
mse.ingress.kubernetes.io/destinationIngressEksklusif MSEDefinisikan distribusi layanan berbasis bobot untuk rute.

Sintaks: {weight}% {serviceName}.{serviceNamespace}.svc.cluster.local:{port}

annotations:
  # Arahkan 60% traffic 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
Setelah Anda mengonfigurasi anotasi ini, semua aturan routing pada Ingress diarahkan ke layanan yang ditentukan. Jika sintaks tidak valid, anotasi diabaikan dan aturan routing asli tetap tidak berubah.

Subset layanan

Arahkan traffic ke subset pod dalam suatu layanan, berguna ketika satu layanan mengelola beberapa deployment.

AnotasiLingkupStatusDeskripsi
mse.ingress.kubernetes.io/service-subsetIngressEksklusif MSE (V1.2.25+)Tetapkan subset layanan untuk routing pod tertarget.
mse.ingress.kubernetes.io/subset-labelsIngressEksklusif MSE (V1.2.25+)Opsional. Tetapkan label yang digunakan untuk mengklasifikasikan pod ke dalam subset.

Cara service-subset mengarahkan traffic:

  • Tanpa konfigurasi subset-labels:

    • Diatur ke "" atau base: Mengarahkan ke pod dengan label opensergo.io/canary: "" atau pod tanpa kunci label opensergo.io/canary.

    • Diatur ke nilai lain (misalnya, gray): Mengarahkan ke pod dengan label opensergo.io/canary-gray: gray.

  • Dengan konfigurasi subset-labels: Hanya mengarahkan ke pod yang labelnya sesuai dengan pasangan kunci:nilai yang didefinisikan dalam subset-labels.

Jika tidak ada pod yang cocok dengan label yang ditentukan, traffic secara otomatis diarahkan ke semua pod dalam layanan tersebut.
annotations:
  # Arahkan traffic ke pod yang dilabeli sebagai subset "gray"
  mse.ingress.kubernetes.io/service-subset: "gray"

Fallback

AnotasiLingkupStatusDeskripsi
nginx.ingress.kubernetes.io/default-backendIngressKompatibelTetapkan layanan fallback. Permintaan diteruskan ke layanan ini ketika tidak ada node sehat yang tersedia untuk layanan utama.
nginx.ingress.kubernetes.io/custom-http-errorsIngressKompatibelDigunakan bersama default-backend. Teruskan permintaan ke layanan fallback ketika backend mengembalikan kode status HTTP tertentu.
Penting

Ketika permintaan diteruskan ke layanan fallback, path permintaan ditulis ulang menjadi /. Perilaku ini konsisten dengan gerbang NGINX Ingress.

Pencocokan regex

AnotasiLingkupStatusDeskripsi
nginx.ingress.kubernetes.io/use-regexIngressKompatibelAktifkan pencocokan ekspresi reguler untuk path Ingress. Menggunakan sintaks RE2.

Menulis ulang

AnotasiLingkupStatusDeskripsi
nginx.ingress.kubernetes.io/rewrite-targetIngressKompatibelTetapkan path target untuk penulisan ulang. Mendukung grup tangkapan.
nginx.ingress.kubernetes.io/upstream-vhostIngressKompatibelTimpa header Host saat meneruskan permintaan ke layanan backend.

Pengalihan

AnotasiLingkupStatusDeskripsi
nginx.ingress.kubernetes.io/ssl-redirectIngressKompatibelAlihkan HTTP ke HTTPS.
nginx.ingress.kubernetes.io/force-ssl-redirectIngressKompatibelPaksa alihkan HTTP ke HTTPS.
nginx.ingress.kubernetes.io/permanent-redirectIngressKompatibelTetapkan URL pengalihan permanen.
nginx.ingress.kubernetes.io/permanent-redirect-codeIngressKompatibelTetapkan kode status untuk pengalihan permanen.
nginx.ingress.kubernetes.io/temporal-redirectIngressKompatibelTetapkan URL pengalihan sementara.
nginx.ingress.kubernetes.io/app-rootIngressKompatibelAlihkan permintaan dari / ke path root aplikasi yang ditentukan.
Beberapa versi NGINX Ingress mendukung variabel NGINX untuk pengalihan, tetapi ini tidak didokumentasikan dalam referensi resmi Anotasi dan dapat menyebabkan masalah ketidakkompatibilitas. Hindari penggunaan variabel NGINX untuk pengalihan.

CORS

AnotasiLingkupStatusDeskripsi
nginx.ingress.kubernetes.io/enable-corsIngressKompatibelAktifkan Berbagi Sumber Daya Lintas Asal (CORS).
nginx.ingress.kubernetes.io/cors-allow-originIngressKompatibelTetapkan origin yang diizinkan.
nginx.ingress.kubernetes.io/cors-allow-methodsIngressKompatibelTetapkan metode HTTP yang diizinkan (GET, POST, PUT, dll.).
nginx.ingress.kubernetes.io/cors-allow-headersIngressKompatibelTetapkan header permintaan yang diizinkan.
nginx.ingress.kubernetes.io/cors-expose-headersIngressKompatibelTetapkan header respons yang diekspos ke browser.
nginx.ingress.kubernetes.io/cors-allow-credentialsIngressKompatibelIzinkan kredensial dalam permintaan CORS.
nginx.ingress.kubernetes.io/cors-max-ageIngressKompatibelTetapkan durasi maksimum (dalam detik) untuk caching hasil preflight.

Kontrol header

Manipulasi header permintaan dan respons di tingkat gateway. Anotasi kontrol header untuk rute dasar dan rute canary bersifat independen—konfigurasikan kebijakan header yang berbeda untuk masing-masing.

Header permintaan:

AnotasiLingkupStatusDeskripsi
mse.ingress.kubernetes.io/request-header-control-addIngressEksklusif MSETambahkan header ke permintaan yang diteruskan ke backend. Jika header sudah ada, nilai baru ditambahkan ke nilai asli.
mse.ingress.kubernetes.io/request-header-control-updateIngressEksklusif MSETimpa header dalam permintaan yang diteruskan ke backend. Jika header sudah ada, nilai asli diganti.
mse.ingress.kubernetes.io/request-header-control-removeIngressEksklusif MSEHapus header dari permintaan yang diteruskan ke backend.

Header respons:

AnotasiLingkupStatusDeskripsi
mse.ingress.kubernetes.io/response-header-control-addIngressEksklusif MSETambahkan header ke respons sebelum diteruskan ke klien. Jika header sudah ada, nilai baru ditambahkan.
mse.ingress.kubernetes.io/response-header-control-updateIngressEksklusif MSETimpa header dalam respons sebelum diteruskan ke klien. Jika header sudah ada, nilai asli diganti.
mse.ingress.kubernetes.io/response-header-control-removeIngressEksklusif MSEHapus header dari respons sebelum diteruskan ke klien.

Sintaksis untuk menambahkan dan memperbarui anotasi:

  • Header tunggal: key value

  • Beberapa header: Gunakan pipe YAML (|), satu pasangan kunci-nilai per baris.

Sintaks untuk menghapus anotasi:

  • Header tunggal: key

  • Beberapa header: Pisahkan dengan koma (,).

annotations:
  # Tambahkan header kustom ke permintaan
  mse.ingress.kubernetes.io/request-header-control-add: "x-request-id 12345"
  # Tambahkan beberapa header ke respons
  mse.ingress.kubernetes.io/response-header-control-add: |
    x-custom-header value1
    x-another-header value2
  # Hapus header dari respons
  mse.ingress.kubernetes.io/response-header-control-remove: "x-powered-by,server"

Timeout

AnotasiLingkupStatusDeskripsi
mse.ingress.kubernetes.io/timeoutIngressEksklusif MSETetapkan timeout permintaan dalam detik. Tidak ada timeout yang dikonfigurasi secara default.
Timeout ini berlaku di lapisan aplikasi, bukan di lapisan transport TCP.
annotations:
  mse.ingress.kubernetes.io/timeout: "30"

Retry

AnotasiLingkupStatusDeskripsi
nginx.ingress.kubernetes.io/proxy-next-upstream-triesIngressKompatibelTetapkan jumlah maksimum upaya retry. Default: 3.
nginx.ingress.kubernetes.io/proxy-next-upstream-timeoutIngressKompatibelTetapkan timeout untuk retry dalam detik. Tidak ada timeout secara default.
nginx.ingress.kubernetes.io/proxy-next-upstreamIngressKompatibelDefinisikan kondisi retry. Lihat mekanisme retry NGINX.

Mirror traffic

AnotasiLingkupStatusDeskripsi
mse.ingress.kubernetes.io/mirror-target-serviceIngressEksklusif MSETetapkan layanan yang menerima traffic mirror. Format: namespace/name:port.
mse.ingress.kubernetes.io/mirror-percentageIngressEksklusif MSE (V1.2.32+)Tetapkan persentase traffic yang dimirror. Nilai valid: 0-100. Default: 100.

Parameter mirror-target-service:

ParameterWajibDeskripsi
namespaceTidakNamespace dari Service Kubernetes. Default ke namespace gerbang Ingress.
nameYaNama Service Kubernetes.
portTidakPort layanan untuk traffic mirror. Default ke port pertama.
annotations:
  # Mirror 50% traffic ke layanan shadow
  mse.ingress.kubernetes.io/mirror-target-service: "default/shadow-service:8080"
  mse.ingress.kubernetes.io/mirror-percentage: "50"

Alias domain

AnotasiLingkupStatusDeskripsi
nginx.ingress.kubernetes.io/server-aliasNama domainSebagian kompatibel (V1.2.30+)Tetapkan alias domain untuk domain yang didefinisikan dalam spesifikasi Ingress. Alias domain berbagi konfigurasi TLS, routing, dan tata kelola traffic dari domain sumber. Hanya mendukung pencocokan eksak dan domain wildcard.

Pembatasan laju

Pembatasan laju global (direkomendasikan)

Gunakan pembatasan laju global untuk kontrol traffic yang konsisten di seluruh instans gateway.

AnotasiLingkupStatusDeskripsi
mse.ingress.kubernetes.io/rate-limitIngressEksklusif MSE (V1.2.25+)Tetapkan jumlah maksimum permintaan per detik (RPS) untuk suatu rute.
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-codeIngressEksklusif MSE (V1.2.25+)Tetapkan kode respons saat pembatasan laju dipicu. Default: 429. Saling eksklusif dengan rate-limit-fallback-redirect-url.
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body-typeIngressEksklusif MSE (V1.2.25+)Tetapkan format badan respons. Default: text. text mengatur Content-Type ke text/plain; charset=UTF-8. JSON mengatur ke application/json; charset=UTF-8.
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-bodyIngressEksklusif MSE (V1.2.25+)Tetapkan teks badan respons. Default: sentinel rate limited.
mse.ingress.kubernetes.io/rate-limit-fallback-redirect-urlIngressEksklusif MSE (V1.2.25+)Alihkan ke URL saat pembatasan laju dipicu. Saling eksklusif dengan rate-limit-fallback-custom-response-code.
annotations:
  # Batasi hingga 100 RPS dengan respons JSON kustom
  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"}'

Pembatasan laju single-gateway (akan ditinggalkan)

Penting

Pembatasan laju single-gateway akan ditinggalkan. Gunakan pembatasan laju global sebagai gantinya.

AnotasiLingkupStatusDeskripsi
mse.ingress.kubernetes.io/route-limit-rpmIngressEksklusif MSETetapkan jumlah maksimum permintaan per menit (RPM) untuk suatu rute pada satu gateway. Batas burst = RPM x route-limit-burst-multiplier.
mse.ingress.kubernetes.io/route-limit-rpsIngressEksklusif MSETetapkan jumlah maksimum permintaan per detik (RPS) untuk suatu rute pada satu gateway. Batas burst = RPS x route-limit-burst-multiplier.
mse.ingress.kubernetes.io/route-limit-burst-multiplierIngressEksklusif MSETetapkan pengali batas burst. Default: 5.

Saat pembatasan laju dipicu:

  • Badan respons: local_rate_limited

  • Versi gateway sebelum V1.2.23: mengembalikan kode status 503

  • Versi gateway V1.2.23 dan seterusnya: mengembalikan kode status 429

Kontrol konkurensi

Kontrol konkurensi global membatasi jumlah permintaan yang diproses secara bersamaan pada suatu rute.

AnotasiLingkupStatusDeskripsi
mse.ingress.kubernetes.io/concurrency-limitIngressEksklusif MSE (V1.2.25+)Tetapkan jumlah maksimum permintaan konkuren untuk suatu rute.
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-codeIngressEksklusif MSE (V1.2.25+)Tetapkan kode respons saat kontrol konkurensi dipicu. Default: 429. Saling eksklusif dengan concurrency-limit-fallback-redirect-url.
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-body-typeIngressEksklusif MSE (V1.2.25+)Tetapkan format badan respons. Default: text. text mengatur Content-Type ke text/plain; charset=UTF-8. JSON mengatur ke application/json; charset=UTF-8.
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-bodyIngressEksklusif MSE (V1.2.25+)Tetapkan teks badan respons. Default: sentinel rate limited.
mse.ingress.kubernetes.io/concurrency-limit-fallback-redirect-urlIngressEksklusif MSE (V1.2.25+)Alihkan ke URL saat kontrol konkurensi dipicu. Saling eksklusif dengan concurrency-limit-fallback-custom-response-code.
annotations:
  # Batasi hingga 50 permintaan konkuren dengan pengalihan saat overflow
  mse.ingress.kubernetes.io/concurrency-limit: "50"
  mse.ingress.kubernetes.io/concurrency-limit-fallback-redirect-url: "https://example.com/busy"

Protokol backend

AnotasiLingkupStatusDeskripsi
nginx.ingress.kubernetes.io/backend-protocolLayananSebagian kompatibelTetapkan protokol untuk layanan backend. Default: HTTP. Nilai valid: HTTP, HTTP2, HTTPS, gRPC, gRPCS. AJP dan FCGI tidak didukung.

Penyeimbangan beban

AnotasiLingkupStatusDeskripsi
nginx.ingress.kubernetes.io/load-balanceLayananSebagian kompatibelTetapkan algoritma penyeimbangan beban. Default: round_robin. Nilai valid: round_robin, least_conn, random. Algoritma Exponentially Weighted Moving Average (EWMA) tidak didukung. Jika EWMA dikonfigurasi, algoritma kembali ke round_robin.
nginx.ingress.kubernetes.io/upstream-hash-byLayananSebagian kompatibelAktifkan hashing konsisten. Menggabungkan variabel NGINX dengan konstanta tidak didukung.

Metode hashing konsisten yang didukung:

  • Variabel NGINX: $request_uri (path permintaan termasuk parameter), $host (host permintaan), $remote_addr (alamat IP klien)

  • Header permintaan: $http_headerName

  • Parameter path permintaan: $arg_varName

Start graceful (prefetching layanan)

AnotasiLingkupStatusDeskripsi
mse.ingress.kubernetes.io/warmupLayananEksklusif MSETetapkan durasi pemanasan dalam detik. Dinonaktifkan secara default.
Penting

Start graceful hanya berfungsi dengan algoritma penyeimbangan beban round_robin dan least_conn.

annotations:
  # Panaskan pod baru selama 60 detik
  mse.ingress.kubernetes.io/warmup: "60"

Afinitas cookie

AnotasiLingkupStatusDeskripsi
nginx.ingress.kubernetes.io/affinityLayananKompatibelTetapkan tipe afinitas. Satu-satunya nilai valid adalah cookie.
nginx.ingress.kubernetes.io/affinity-modeLayananSebagian kompatibelTetapkan mode afinitas. Satu-satunya nilai valid adalah balanced. Mode persistent tidak didukung.
nginx.ingress.kubernetes.io/session-cookie-nameLayananKompatibelTetapkan nama cookie yang digunakan sebagai kunci hash.
nginx.ingress.kubernetes.io/session-cookie-pathLayananKompatibelTetapkan path cookie yang dihasilkan. Default: /.
nginx.ingress.kubernetes.io/session-cookie-max-ageLayananKompatibelTetapkan waktu kedaluwarsa cookie dalam detik. Default ke kedaluwarsa tingkat sesi.
nginx.ingress.kubernetes.io/session-cookie-expiresLayananKompatibelTetapkan waktu kedaluwarsa cookie dalam detik. Default ke kedaluwarsa tingkat sesi.

Kontrol akses IP

AnotasiLingkupStatusDeskripsi
nginx.ingress.kubernetes.io/whitelist-source-rangeIngressKompatibelTetapkan daftar putih IP untuk suatu rute. Mendukung alamat IP dan blok CIDR, dipisahkan koma.
nginx.ingress.kubernetes.io/denylist-source-rangeIngressKompatibel (V1.2.31+)Tetapkan daftar hitam IP untuk suatu rute. Mendukung alamat IP dan blok CIDR, dipisahkan koma.
mse.ingress.kubernetes.io/blacklist-source-rangeIngressEksklusif MSETetapkan daftar hitam IP untuk suatu rute. Mendukung alamat IP dan blok CIDR, dipisahkan koma.
mse.ingress.kubernetes.io/domain-whitelist-source-rangeIngressEksklusif MSETetapkan daftar putih IP untuk nama domain. Mendukung alamat IP dan blok CIDR, dipisahkan koma.
mse.ingress.kubernetes.io/domain-blacklist-source-rangeIngressEksklusif MSETetapkan daftar hitam IP untuk nama domain. Mendukung alamat IP dan blok CIDR, dipisahkan koma.

Aturan prioritas:

  • Daftar IP tingkat rute mengungguli daftar IP tingkat domain.

  • nginx.ingress.kubernetes.io/denylist-source-range mengungguli mse.ingress.kubernetes.io/blacklist-source-range.

annotations:
  # Izinkan hanya IP tertentu di tingkat rute
  nginx.ingress.kubernetes.io/whitelist-source-range: "10.0.0.0/8,192.168.1.100"

Kolam koneksi gateway-ke-backend

AnotasiLingkupStatusDeskripsi
mse.ingress.kubernetes.io/connection-policy-tcp-max-connectionLayananEksklusif MSETetapkan jumlah maksimum koneksi TCP antara gateway dan layanan backend.
mse.ingress.kubernetes.io/connection-policy-tcp-max-connection-per-endpointLayananEksklusif MSETetapkan jumlah maksimum koneksi TCP antara gateway dan setiap endpoint backend.
mse.ingress.kubernetes.io/connection-policy-http-max-request-per-connectionLayananEksklusif MSETetapkan jumlah maksimum permintaan HTTP per koneksi antara gateway dan layanan backend.
annotations:
  # Batasi kolam koneksi ke backend
  mse.ingress.kubernetes.io/connection-policy-tcp-max-connection: "1024"
  mse.ingress.kubernetes.io/connection-policy-tcp-max-connection-per-endpoint: "100"
  mse.ingress.kubernetes.io/connection-policy-http-max-request-per-connection: "500"

Proteksi keamanan

TLS klien-ke-gateway

AnotasiLingkupStatusDeskripsi
mse.ingress.kubernetes.io/tls-min-protocol-versionNama domainEksklusif MSETetapkan versi TLS minimum. Default: TLSv1.0. Nilai valid: TLSv1.0, TLSv1.1, TLSv1.2.
mse.ingress.kubernetes.io/tls-max-protocol-versionNama domainEksklusif MSETetapkan versi TLS maksimum. Direkomendasikan: TLSv1.2. Nilai valid: TLSv1.0, TLSv1.1, TLSv1.2.
nginx.ingress.kubernetes.io/ssl-cipherNama domainKompatibelTetapkan paket sandi TLS, dipisahkan koma. Hanya berlaku untuk proses jabat tangan TLS 1.0 hingga 1.2.
mse.ingress.kubernetes.io/auth-tls-secretNama domainSebagian kompatibelTetapkan sertifikat CA untuk verifikasi sertifikat klien selama proses jabat tangan mTLS. Nama rahasia harus mengikuti format: {domain-cert-secret-name}-cacert.

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

annotations:
  # Terapkan minimum TLS 1.2
  mse.ingress.kubernetes.io/tls-min-protocol-version: "TLSv1.2"
  mse.ingress.kubernetes.io/tls-max-protocol-version: "TLSv1.2"

TLS gateway-ke-backend

AnotasiLingkupStatusDeskripsi
nginx.ingress.kubernetes.io/proxy-ssl-secretLayananKompatibelTetapkan sertifikat klien yang digunakan oleh gateway, memungkinkan layanan backend mengotentikasi gateway.
nginx.ingress.kubernetes.io/proxy-ssl-nameLayananKompatibelTetapkan Indikasi Nama Server (SNI) untuk proses jabat tangan TLS.
nginx.ingress.kubernetes.io/proxy-ssl-server-nameLayananKompatibelAktifkan SNI selama proses jabat tangan TLS.

Otentikasi

AnotasiLingkupStatusDeskripsi
nginx.ingress.kubernetes.io/auth-typeIngressSebagian kompatibelTetapkan tipe otentikasi. Hanya basic yang didukung.
nginx.ingress.kubernetes.io/auth-secretIngressKompatibelTetapkan rahasia yang berisi kredensial. Format: <namespace>/<nama>.
nginx.ingress.kubernetes.io/auth-secret-typeIngressKompatibelTetapkan format rahasia. auth-file: kunci data adalah auth, nilai berisi pasangan username:password (satu per baris). auth-map: kunci data adalah username, nilai adalah password.
nginx.ingress.kubernetes.io/auth-realmIngressKompatibelTetapkan realm otentikasi. Kredensial dibagikan dalam realm yang sama.
annotations:
  # Otentikasi basic dengan rahasia Kubernetes
  nginx.ingress.kubernetes.io/auth-type: "basic"
  nginx.ingress.kubernetes.io/auth-secret: "default/my-auth-secret"
  nginx.ingress.kubernetes.io/auth-secret-type: "auth-file"
  nginx.ingress.kubernetes.io/auth-realm: "Protected Area"

Lihat juga