Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Perhatian
Jaringan SIG Kubernetes dan Komite Respons Keamanan mengumumkan penghentianproyek NGINX Ingress yang akan datang, dengan pemeliharaan berakhir pada Maret 2026. Tidak ada tindakan langsung yang diperlukan hari ini untuk kluster AKS menggunakan add-on perutean aplikasi dengan NGINX. Microsoft akan memberikan dukungan resmi untuk patch keamanan penting pada sumber daya add-on perutean aplikasi NGINX Ingress hingga November 2026.
AKS menyelaraskan dengan Kubernetes utama dengan pindah ke Gateway API sebagai standar jangka panjang untuk ingress dan manajemen trafik L7. Sebaiknya Anda mulai merencanakan jalur migrasi berdasarkan penyiapan Anda saat ini:
- Pengguna add-on perutean aplikasi: Beban kerja produksi tetap didukung sepenuhnya hingga November 2026. Migrasikan ke implementasi API Gateway perutean aplikasi untuk pengalaman manajemen lalu lintas masuk berbasis API Gateway.
-
Pengguna OSS NGINX memiliki beberapa opsi:
- Migrasikan ke add-on perutean aplikasi dengan NGINX untuk memanfaatkan dukungan resmi hingga November 2026 sambil merencanakan migrasi API Gateway jangka panjang Anda.
- Migrasikan ke implementasi API Gateway perutean aplikasi untuk pengalaman manajemen lalu lintas masuk berbasis API Gateway.
- Migrasikan ke Gerbang Aplikasi untuk Kontainer yang mendukung API Ingress dan API Gerbang.
- Pengguna jala layanan: Jika Anda berencana untuk mengadopsi jala layanan, pertimbangkan add-on jala layanan berbasis Istio. Gunakan Istio Ingress hari ini, dan rencanakan untuk bermigrasi ke ISTIO Gateway API, yang sekarang menjadi GA.
Artikel ini memperlihatkan kepada Anda cara mengonfigurasi pengontrol ingress NGINX untuk bekerja dengan load balancer internal Azure. Ini juga menjelaskan cara mengonfigurasi zona Azure DNS privat untuk mengaktifkan resolusi DNS untuk titik akhir privat untuk menyelesaikan domain tertentu.
Sebelum Anda mulai
Kluster AKS dengan add-on perutean aplikasi.
Untuk melampirkan Zona DNS privat Azure, Anda memerlukan peran Pemilik, administrator akun Azure, atau azure coadministrator di langganan Azure Anda.
Koneksi ke kluster AKS Anda
Untuk menyambungkan ke kluster Kubernetes dari komputer lokal, Anda menggunakan kubectl, klien baris perintah Kubernetes. Anda dapat menginstalnya secara lokal menggunakan perintah az aks install-cli . Jika Anda menggunakan Azure Cloud Shell, kubectl sudah terpasang.
Contoh berikut mengonfigurasi sambungan ke kluster Anda bernama aks-cluster di test-rg menggunakan perintah az aks get-credentials.
az aks get-credentials \
--resource-group test-rg \
--name aks-cluster
Membuat jaringan virtual
Untuk menerbitkan zona DNS privat ke jaringan virtual Anda, tentukan daftar jaringan virtual yang diizinkan untuk menyelesaikan rekaman dalam zona dengan tautan jaringan virtual.
Contoh berikut membuat jaringan virtual bernama vnet-1 di grup sumber daya test-rg , dan satu subnet bernama subnet-1 untuk dibuat dalam jaringan virtual dengan awalan alamat tertentu.
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--location eastus \
--address-prefix 10.2.0.0/16 \
--subnet-name subnet-1 \
--subnet-prefixes 10.2.0.0/24
Membuat zona DNS privat Azure
Catatan
Anda dapat mengonfigurasi tambahan perutean aplikasi untuk membuat catatan secara otomatis pada satu atau beberapa zona DNS global dan privat Azure untuk host yang ditetapkan pada sumber daya ingress. Semua zona Azure DNS global dan semua zona Azure DNS privat harus berada dalam grup sumber daya yang sama.
Buat zona DNS menggunakan perintah buat zona dns privat jaringan az , menentukan nama zona dan grup sumber daya untuk membuatnya. Contoh berikut membuat zona DNS bernama private.contoso.com di grup sumber daya test-rg .
az network private-dns zone create \
--resource-group test-rg \
--name private.contoso.com
Anda membuat tautan jaringan virtual ke zona DNS yang dibuat sebelumnya menggunakan perintah az network private-dns link vnet create . Contoh berikut membuat tautan bernama dns-link ke zona private.contoso.com untuk jaringan virtual vnet-1. Sertakan --registration-enabled parameter untuk menentukan tautan tidak diaktifkan pendaftaran.
az network private-dns link vnet create \
--resource-group test-rg \
--name dns-link \
--zone-name private.contoso.com \
--virtual-network vnet-1 \
--registration-enabled false
Fitur pendaftaran otomatis zona privat Azure DNS mengelola catatan DNS untuk komputer virtual yang disebarkan dalam jaringan virtual. Saat Anda menautkan jaringan virtual dengan zona DNS privat dengan pengaturan ini diaktifkan, rekaman DNS akan dibuat untuk setiap komputer virtual Azure untuk simpul AKS Anda yang disebarkan di jaringan virtual.
Melampirkan zona DNS privat Azure ke add-on pengaturan rute aplikasi
Catatan
Perintah az aks approuting zone add menggunakan izin pengguna yang menjalankan perintah untuk membuat penetapan peran Zona Azure DNS. Peran Kontributor Zona DNS Privat adalah peran bawaan untuk mengelola sumber daya DNS Privat dan ditetapkan ke identitas terkelola add-on. Untuk informasi selengkapnya tentang identitas terkelola AKS, lihat Ringkasan identitas terkelola.
Ambil ID sumber daya untuk zona DNS menggunakan
az network dns zone showperintah dan atur output ke variabel bernamaZONEID. Contoh berikut mengkueri zona private.contoso.com dalam grup sumber daya test-rg.ZONEID=$(az network private-dns zone show \ --resource-group test-rg \ --name private.contoso.com \ --query "id" \ --output tsv)Perbarui add-on untuk mengaktifkan integrasi dengan Azure DNS menggunakan
az aks approuting zoneperintah . Anda dapat mengirimkan daftar ID sumber daya dari zona DNS yang dipisahkan dengan koma. Contoh berikut memperbarui kluster AKS aks-cluster di grup sumber daya test-rg.az aks approuting zone add \ --resource-group test-rg \ --name aks-cluster \ --ids=${ZONEID} \ --attach-zones
Buat sebuah pengontrol ingress NGINX dengan alamat IP privat dan sebuah load balancer internal
Add-on perutean aplikasi menggunakan definisi sumber daya kustom (CRD) Kubernetes yang disebut NginxIngressController untuk mengonfigurasi pengontrol ingress NGINX. Anda dapat membuat lebih banyak pengontrol ingress atau memodifikasi konfigurasi yang ada.
NginxIngressController CRD memiliki loadBalancerAnnotations bidang untuk mengontrol perilaku layanan pengontrol ingress NGINX dengan mengatur anotasi load balancer. Untuk informasi selengkapnya tentang anotasi load balancer, lihat Kustomisasi melalui anotasi Kubernetes.
Lakukan langkah-langkah berikut untuk membuat pengontrol ingress NGINX dengan konfigurasi Azure Load Balancer berorientasi internal menggunakan alamat IP privat.
Salin manifes YAML berikut ke dalam file baru bernama nginx-internal-controller.yaml dan simpan file ke komputer lokal Anda.
apiVersion: approuting.kubernetes.azure.com/v1alpha1 kind: NginxIngressController metadata: name: nginx-internal spec: ingressClassName: nginx-internal controllerNamePrefix: nginx-internal loadBalancerAnnotations: service.beta.kubernetes.io/azure-load-balancer-internal: "true"Buat sumber daya pengontrol ingress NGINX menggunakan
kubectl applyperintah .kubectl apply -f nginx-internal-controller.yamlContoh output berikut menunjukkan sumber daya yang dibuat:
nginxingresscontroller.approuting.kubernetes.azure.com/nginx-internal createdVerifikasi bahwa kontroler ingress telah dibuat
Anda dapat memverifikasi status pengontrol ingress NGINX menggunakan
kubectl get nginxingresscontrollerperintah .kubectl get nginxingresscontrollerContoh output berikut menunjukkan sumber daya yang dibuat. Mungkin perlu waktu beberapa menit agar pengontrol tersedia:
NAME INGRESSCLASS CONTROLLERNAMEPREFIX AVAILABLE default webapprouting.kubernetes.azure.com nginx True nginx-internal nginx-internal nginx-internal True
Menyebarkan aplikasi
Add-on routing aplikasi menggunakan anotasi pada objek Kubernetes Ingress untuk membuat sumber daya yang sesuai.
Buat namespace aplikasi yang dipanggil
aks-storeuntuk menjalankan contoh pod menggunakan perintahkubectl create namespace.kubectl create namespace aks-storeSebarkan aplikasi penyimpanan AKS menggunakan file manifes YAML berikut:
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/sample-manifests/docs/app-routing/aks-store-deployments-and-services.yaml -n aks-store
Manifes ini membuat penyebaran dan layanan yang diperlukan untuk aplikasi AKS Store.
Membuat sumber daya Ingress yang menggunakan nama host di zona DNS privat Azure dan alamat IP privat
Perbarui host dengan nama host DNS Anda, misalnya, store-front.private.contoso.com. Verifikasi bahwa Anda menentukan nginx-internal untuk ingressClassName.
Salin manifes YAML berikut ke dalam file baru bernama ingress.yaml dan simpan file ke komputer lokal Anda.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: store-front namespace: aks-store spec: ingressClassName: nginx-internal rules: - host: store-front.private.contoso.com http: paths: - backend: service: name: store-front port: number: 80 path: / pathType: PrefixBuat sumber daya ingress menggunakan
kubectl applyperintah .kubectl apply -f ingress.yaml -n aks-storeContoh output berikut menunjukkan sumber daya yang dibuat:
ingress.networking.k8s.io/store-front created
Verifikasi bahwa Ingress terkelola telah dibuat
Anda dapat memverifikasi bahwa Ingress terkelola dibuat dengan menggunakan perintah kubectl get ingress.
kubectl get ingress -n aks-store
Contoh output berikut menunjukkan Ingress terkelola yang dibuat:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front nginx-internal store-front.private.contoso.com 80 10s
Verifikasi bahwa zona DNS privat Azure telah diperbarui
Dalam beberapa menit, jalankan perintah az network private-dns record-set a list untuk menampilkan rekaman A untuk zona DNS privat Azure Anda. Tentukan nama grup sumber daya dan nama zona DNS. Dalam contoh ini, grup sumber daya adalah test-rg dan zona DNS private.contoso.com.
az network private-dns record-set a list \
--resource-group test-rg \
--zone-name private.contoso.com
Contoh output berikut menunjukkan rekaman yang dibuat:
[
{
"aRecords": [
{
"ipv4Address": "10.224.0.7"
}
],
"etag": "ecc303c5-4577-4ca2-b545-d34e160d1c2d",
"fqdn": "store-front.private.contoso.com.",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/test-rg/providers/Microsoft.Network/privateDnsZones/private.contoso.com/A/store-front",
"isAutoRegistered": false,
"name": "store-front",
"resourceGroup": "test-rg",
"ttl": 300,
"type": "Microsoft.Network/privateDnsZones/A"
}
]
Langkah berikutnya
Untuk informasi konfigurasi lain yang terkait dengan enkripsi SSL pengontrol ingress NGINX lanjutan lainnya dan konfigurasi resource ingress, tinjau konfigurasi DNS dan SSL dan konfigurasi add-on perutean aplikasi.