Nginx Ingress merupakan gerbang masuk untuk lalu lintas dalam Kluster ACK yang dikelola. Gerbang ini menggunakan aturan routing fleksibel untuk meneruskan permintaan eksternal ke layanan internal. Nginx Ingress mendukung enkripsi HTTPS, rilis bertahap, serta konfigurasi kustom melalui anotasi, sehingga membantu Anda membangun jaringan Lapisan 7 yang aman, sangat tersedia, dan dapat diskalakan.
Metode penagihan langganan untuk Classic Load Balancer (CLB) tidak lagi tersedia. Mulai 28 Agustus 2025, saat Anda menginstal Controller Nginx Ingress baru di konsol Container Service for Kubernetes, instance Network Load Balancer (NLB) akan dibuat secara default. Penggunaan instance CLB dibatasi hanya untuk daftar putih. Untuk membuat instance CLB, metode penagihan bayar sesuai pemakaian digunakan secara default. Untuk informasi selengkapnya, lihat [Perubahan Produk] Pengumuman tentang Perubahan Jenis Load Balancer Default dan Metode Penagihan untuk Layanan Baru serta Controller Nginx Ingress.
Peringatan
Jangan menghapus layanan default yang digunakan oleh Controller Nginx Ingress. Setelah instalasi, layanan bernama
nginx-ingress-lbakan dibuat secara default di namespacekube-system. Menghapus layanan ini dapat menyebabkan komponen menjadi tidak stabil atau bahkan crash.Konfigurasikan parameter komponen kustom pada halaman Manajemen Komponen atau dengan memanggil OpenAPI. Jika Anda mengubah konfigurasi komponen melalui saluran lain, komponen mungkin tidak berfungsi sebagaimana mestinya dan peningkatan di masa depan dapat gagal.
Gunakan kamus konfigurasi Nginx Ingress untuk mengimplementasikan fitur yang diperlukan. Jika Anda menggunakan cuplikan (snippet) atau kode Lua untuk menambahkan konfigurasi kustom ke komponen, dukungan teknis tidak mencakup masalah yang timbul, seperti perilaku yang tidak diharapkan.
Tingkatkan komponen Controller Nginx Ingress secara tepat waktu untuk mencegah masalah yang disebabkan oleh bug atau kerentanan pada versi komunitas hulu.
Prasyarat
Komponen Controller Nginx Ingress telah diinstal. Setelah instalasi, komponen tersebut dikaitkan dengan instance Classic Load Balancer (CLB) yang berfungsi sebagai titik masuk lalu lintas untuk Nginx Ingress.
Anda telah mendapatkan file kubeconfig kluster dan menggunakan kubectl untuk terhubung ke kluster.
Anda telah mendaftarkan nama domain.
Anda telah membeli sertifikat komersial, mengajukan sertifikat tersebut, dan memastikan bahwa sertifikat yang akan digunakan berada dalam status Issued.
Buat aplikasi contoh
Aplikasi contoh ini men-deploy dua beban kerja tanpa status (deployment) bernama coffee dan tea, serta layanan terkaitnya bernama coffee-svc dan tea-svc.
Konsol
1. Buat sumber daya
|
|
2. Lihat hasil pembuatan Di kotak dialog YAML Resource Creation Result, klik View di kolom Actions untuk sumber daya guna mengonfirmasi hasil pembuatan. |
|
kubectl
Buat file bernama test-deployment-service.yaml yang berisi konten berikut.
Jalankan perintah berikut untuk membuat deployment dan layanan.
kubectl apply -f test-deployment-service.yamlJalankan perintah berikut untuk memeriksa progres pembuatan deployment
coffeedantea.kubectl get deployment coffee teaOutput yang diharapkan:
NAME READY UP-TO-DATE AVAILABLE AGE coffee 2/2 2 2 14m tea 2/2 2 2 14mJalankan perintah berikut untuk melihat layanan
coffee-svcdantea-svc.kubectl get service coffee-svc tea-svcOutput yang diharapkan:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE coffee-svc ClusterIP 192.168.xxx.xxx <none> 80/TCP 15m tea-svc ClusterIP 192.168.xxx.xxx <none> 80/TCP 15m
Buat Nginx Ingress
Pada contoh berikut, nama domain (host) dalam aturan adalah test-nginx-ingress.com. Gantilah dengan nama domain yang telah Anda daftarkan. Pemetaan path (paths) dalam aturan menggunakan aplikasi contoh yang dibuat sebelumnya. Sesuaikan sesuai kebutuhan.
Konsol
1. Buat sumber daya
|
|
2. Dapatkan titik akhir Setelah Ingress dibuat, tunggu sekitar satu menit dan klik tombol segarkan di pojok kanan atas. Jika kolom Endpoint menampilkan Alamat IP Elastis yang sesuai (titik akhir instance CLB publik terkait), berarti Nginx Ingress berhasil dibuat. Jika informasi titik akhir tidak diperbarui setelah waktu yang lama, klik nama Ingress dan buka tab Events untuk memecahkan masalah apa pun. |
|
kubectl
Buat file bernama test-ingress.yaml yang berisi konten berikut.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: test-nginx-ingress namespace: default spec: ingressClassName: nginx rules: - host: test-nginx-ingress.com # Ganti ini dengan nama domain yang telah Anda daftarkan http: paths: - path: /coffee backend: service: name: coffee-svc port: number: 80 pathType: ImplementationSpecific - path: /tea backend: service: name: tea-svc port: number: 80 pathType: ImplementationSpecific - host: www.test-nginx-ingress.com # Ganti ini dengan nama domain yang telah Anda daftarkan http: paths: - path: /coffee backend: service: name: coffee-svc port: number: 80 pathType: ImplementationSpecific - path: /tea backend: service: name: tea-svc port: number: 80 pathType: ImplementationSpecificDeskripsi parameter utama:
name: Nama Ingress. Pada contoh ini, namanya adalahtest-nginx-ingress.host: Nama domain untuk mengakses layanan. Pada contoh ini, nama domainnya adalahtest-nginx-ingress.com. Gantilah dengan nama domain yang telah Anda daftarkan.path: Path URL. Instance CLB hanya meneruskan permintaan arah masuk ke backend jika permintaan tersebut cocok dengan host dan path yang ditentukan. Pada contoh ini, path-nya adalah/coffeedan/tea.backend: Terdiri dari nama layanan dan port layanan.Nama layanan: Nama layanan backend tempat Ingress meneruskan lalu lintas. Pada contoh ini, nama layanannya adalah
coffee-svcdantea-svc.Port layanan: Port yang diekspos oleh layanan. Pada contoh ini, port-nya adalah
80.
Jalankan perintah berikut untuk membuat Ingress.
kubectl apply -f test-ingress.yamlJalankan perintah berikut untuk melihat Ingress dan mendapatkan Alamat IP Elastis-nya, misalnya
8.xxx.xxx.117.kubectl get ingressOutput yang diharapkan:
NAME CLASS HOSTS ADDRESS PORTS AGE test-nginx-ingress nginx test-nginx-ingress.com,www.test-nginx-ingress.com 8.xxx.xxx.117 80 2m39sJalankan perintah berikut untuk memverifikasi bahwa Nginx Ingress berfungsi. Gunakan Alamat IP Elastis yang telah Anda peroleh.
curl http://8.xxx.xxx.117/coffee -H "Host: test-nginx-ingress.com"Output yang diharapkan:
... <title>Hello World</title> ... <p>Server address:10.xxx.xxx.19:80Server name:coffee-96d4bc87-l29dhDate:08/Aug/2025:02:21:02 +0000URI:/coffee
Konfigurasi resolusi nama domain
Prosedur ini hanya berlaku untuk nama domain yang tidak didaftarkan di Alibaba Cloud. Jika Anda membeli nama domain dari Alibaba Cloud Domain Names, nama domain tersebut akan disinkronkan secara otomatis dengan DNS otoritatif publik, dan Anda dapat langsung menambahkan rekaman DNS.
1. Tambahkan nama domain
|
|
2. Tambahkan rekaman DNS
Untuk informasi selengkapnya, lihat Tambahkan rekaman resolusi situs web. |
|
3. Verifikasi bahwa nama domain dan path berfungsi Di browser, akses Anda juga dapat merujuk ke Metode untuk menguji resolusi DNS guna mengonfirmasi hasilnya. Jika resolusi tidak berfungsi, lihat Memecahkan kegagalan resolusi DNS dengan cepat. |
|
Konfigurasi enkripsi HTTPS (konfigurasi TLS)
Pertama, beli dan ajukan sertifikat seperti yang dijelaskan di bagian Prasyarat. Kemudian, ikuti langkah-langkah berikut untuk mengunduh sertifikat dan menambahkan konfigurasi TLS. Hal ini memungkinkan akses ke nama domain Anda melalui koneksi HTTPS terenkripsi.
Konsol
1. Unduh sertifikat
Untuk informasi selengkapnya, lihat Unduh sertifikat SSL. |
|
2. Buat rahasia
|
|
3. Tambahkan konfigurasi TLS
|
|
4. Verifikasi akses HTTPS Di browser, akses |
|
kubectl
Masuk ke Konsol Layanan Manajemen Sertifikat Digital. Di panel navigasi kiri, pilih .
Di tab Official Certificate, pilih sertifikat yang ingin Anda unduh, lalu klik Download di pojok kiri bawah daftar sertifikat.
Di kotak dialog yang muncul, pilih Nginx sebagai tipe server, lalu unduh dan ekstrak paket sertifikat.
Jalankan perintah berikut untuk membuat rahasia menggunakan file sertifikat (.pem) dan file kunci privat (.key) yang telah diunduh.
kubectl create secret tls nginx-ingress-tls --cert test-nginx-ingress.com.pem --key test-nginx-ingress.com.key -n defaultJalankan perintah berikut untuk menambahkan konfigurasi TLS ke Ingress
test-nginx-ingress. Gantitest-nginx-ingress.comdalam perintah dengan nama domain yang telah Anda daftarkan.kubectl patch ingress test-nginx-ingress -p '{"spec":{"tls":[{"hosts":["test-nginx-ingress.com"],"secretName":"nginx-ingress-tls"}]}}'Jalankan perintah berikut untuk memverifikasi bahwa Anda dapat mengakses nama domain dan path layanan melalui koneksi HTTPS terenkripsi. Gunakan Alamat IP Elastis Anda.
curl -v -k https://8.xxx.xxx.117/coffee -H "Host: test-nginx-ingress.com"Deskripsi parameter:
-v: Menampilkan proses komunikasi terperinci, termasuk informasi Proses jabat tangan TLS.-k(atau --insecure): Jika Anda menggunakan sertifikat tanda tangan sendiri, Anda dapat menggunakan parameter ini untuk mengabaikan validasi sertifikat.
Output yang diharapkan:
... * Trying 8.xxx.xxx.117:443... * Connected to 8.xxx.xxx.117 (8.xxx.xxx.117) port 443 * ALPN: curl offers h2,http/1.1 * (304) (OUT), TLS handshake, Client hello (1): * (304) (IN), TLS handshake, Server hello (2): * (304) (IN), TLS handshake, Unknown (8): * (304) (IN), TLS handshake, Certificate (11): * (304) (IN), TLS handshake, CERT verify (15): * (304) (IN), TLS handshake, Finished (20): * (304) (OUT), TLS handshake, Finished (20): ... <title>Hello World</title> ... <p>Server address:10.xxx.xxx.159:80Server name:coffee-96d4bc87-6cstvDate:14/Aug/2025:09:27:42 +0000URI:/coffee
Konfigurasi lanjutan
Rilis bertahap
Saat memperbarui layanan, Anda dapat menggunakan metode rilis seperti peningkatan bergulir, rilis bertahap, dan penyebaran biru-hijau. Untuk informasi selengkapnya, lihat Gunakan Nginx Ingress untuk mengimplementasikan rilis bertahap dan penyebaran biru-hijau.
Protokol layanan backend
Anda dapat menentukan protokol layanan backend dengan menambahkan anotasi nginx.ingress.kubernetes.io/backend-protocol. Protokol yang didukung adalah HTTP, HTTPS, gRPC, dan gRPCS. Untuk contoh konfigurasi, lihat Sebarkan layanan gRPC di backend Controller Nginx Ingress.
Menulis ulang path
Saat menggunakan controller NGINX Ingress, NGINX meneruskan path lengkap ke backend. Misalnya, permintaan ke path Ingress /service1/api diteruskan ke pod backend di /service1/api/. Jika path layanan backend Anda adalah /api, terjadi ketidakcocokan path dan kesalahan 404 dikembalikan. Dalam kasus ini, Anda dapat menggunakan anotasi nginx.ingress.kubernetes.io/rewrite-target untuk menulis ulang path ke direktori yang benar.
Untuk informasi selengkapnya, lihat Konfigurasikan layanan routing untuk pengalihan URL.
Tambahkan anotasi
Nginx Ingress mendukung penambahan anotasi untuk mengaktifkan lebih banyak fitur. Untuk informasi selengkapnya, lihat Kamus konfigurasi Nginx Ingress dan Konfigurasi lanjutan Nginx Ingress.
Observabilitas
Aktifkan Simple Log Service (SLS) saat membuat kluster. Kemudian, Anda dapat melihat laporan analisis log akses Nginx Ingress dan memantau status real-time Nginx Ingress di konsol SLS. Untuk informasi selengkapnya, lihat Analisis dan pantau log akses Nginx Ingress.
Skenario muatan tinggi
Untuk informasi tentang cara meningkatkan kinerja dan stabilitas Controller Nginx Ingress dalam skenario muatan tinggi, lihat Konfigurasikan Controller Nginx Ingress untuk skenario muatan tinggi dan Saran untuk menggunakan Controller Nginx Ingress.
FAQ
Mengapa saya tidak dapat mengakses titik akhir eksternal instance Server Load Balancer dari dalam kluster?
Bagaimana cara mengizinkan permintaan dengan header atau cookie klien yang besar?
Bagaimana cara mengonfigurasi akses lintas domain untuk Nginx Ingress?
Bagaimana cara mengonfigurasi transmisi alamat IP klien?
Referensi
Untuk informasi tentang versi dan catatan rilis komponen Controller Nginx Ingress, lihat Komponen Controller Nginx Ingress.
Untuk informasi selengkapnya tentang masalah umum dan metode pemecahan masalah, lihat FAQ Nginx Ingress dan Pemecahan masalah Nginx Ingress.













