Ingress NGINX terkelola dengan add-on perutean aplikasi
Salah satu cara untuk merutekan lalu lintas Hypertext Transfer Protocol (HTTP) dan aman (HTTPS) ke aplikasi yang berjalan pada kluster Azure Kubernetes Service (AKS) adalah dengan menggunakan objek Kubernetes Ingress. Saat Anda membuat objek Ingress yang menggunakan kelas add-on perutean aplikasi NGINX Ingress, add-on membuat, mengonfigurasi, dan mengelola satu atau beberapa pengontrol Ingress di kluster AKS Anda.
Artikel ini menunjukkan kepada Anda cara menyebarkan dan mengonfigurasi pengontrol Ingress dasar di kluster AKS Anda.
Add-on perutean aplikasi dengan fitur NGINX
Add-on perutean aplikasi dengan NGINX memberikan hal berikut:
- Konfigurasi mudah pengontrol NGINX Ingress terkelola berdasarkan pengontrol Ingress Kubernetes NGINX.
- Integrasi dengan Azure DNS untuk manajemen zona publik dan privat
- Penghentian SSL dengan sertifikat yang disimpan di Azure Key Vault.
Untuk konfigurasi lain, lihat:
- Konfigurasi DNS dan SSL
- Konfigurasi add-on perutean aplikasi
- Konfigurasikan pengontrol ingress NGIX internal untuk zona DNS privat Azure.
Dengan penghentian Open Service Mesh (OSM) oleh Cloud Native Computing Foundation (CNCF), menggunakan add-on perutean aplikasi dengan OSM tidak disarankan.
Prasyarat
- Langganan Azure. Jika Anda tidak memiliki langganan Azure, Anda dapat membuat akun gratis.
- Azure CLI versi 2.54.0 atau yang lebih baru diinstal dan dikonfigurasi. Jalankan
az --version
untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.
Batasan
- Add-on perutean aplikasi mendukung hingga lima zona Azure DNS.
- Add-on perutean aplikasi hanya dapat diaktifkan pada kluster AKS dengan identitas terkelola.
- Semua zona Azure DNS global yang terintegrasi dengan add-on harus berada dalam grup sumber daya yang sama.
- Semua zona Azure DNS privat yang terintegrasi dengan add-on harus berada dalam grup sumber daya yang sama.
- Mengedit ingress-nginx
ConfigMap
diapp-routing-system
namespace tidak didukung. - Anotasi cuplikan berikut diblokir dan akan mencegah Ingress dikonfigurasi:
load_module
, ,lua_package
,_by_lua
location
,root
,serviceaccount
proxy_pass
,{
, , .'
}
Mengaktifkan perutean aplikasi menggunakan Azure CLI
Aktifkan pada kluster baru
Untuk mengaktifkan perutean aplikasi pada kluster baru, gunakan az aks create
perintah , menentukan --enable-app-routing
bendera .
az aks create \
--resource-group <ResourceGroupName> \
--name <ClusterName> \
--location <Location> \
--enable-app-routing \
--generate-ssh-keys
Aktifkan pada kluster yang ada
Untuk mengaktifkan perutean aplikasi pada kluster yang ada, gunakan az aks approuting enable
perintah .
az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
Menyambungkan ke kluster AKS Anda
Untuk terhubung ke kluster Kube dari komputer lokal, Anda menggunakan kubectl, yakni klien baris perintah Kube. Anda dapat menginstalnya secara lokal menggunakan az aks install-cli
perintah . Jika Anda menggunakan Azure Cloud Shell, kubectl
sudah terpasang.
Konfigurasikan kubectl
untuk terhubung ke kluster Kubernetes menggunakan perintah az aks get-credentials.
az aks get-credentials --resource-group <ResourceGroupName> --name <ClusterName>
Menyebarkan aplikasi
Add-on perutean aplikasi menggunakan anotasi pada objek Kubernetes Ingress untuk membuat sumber daya yang sesuai.
Buat namespace aplikasi yang dipanggil
aks-store
untuk menjalankan contoh pod menggunakankubectl create namespace
perintah .kubectl create namespace aks-store
Sebarkan 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 akan membuat penyebaran dan layanan yang diperlukan untuk aplikasi penyimpanan AKS.
Membuat objek Ingress
Add-on perutean aplikasi membuat kelas Ingress pada kluster bernama webapprouting.kubernetes.azure.com. Saat Anda membuat objek Ingress dengan kelas ini, objek tersebut akan mengaktifkan add-on.
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: webapprouting.kubernetes.azure.com rules: - http: paths: - backend: service: name: store-front port: number: 80 path: / pathType: Prefix
Buat sumber daya ingress menggunakan perintah
kubectl apply
.kubectl apply -f ingress.yaml -n aks-store
Contoh 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 menggunakan kubectl get ingress
perintah .
kubectl get ingress -n aks-store
Contoh output berikut menunjukkan Ingress terkelola yang dibuat:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front webapprouting.kubernetes.azure.com * 51.8.10.109 80 110s
Anda dapat memverifikasi bahwa penyimpanan AKS berfungsi mengarahkan browser Anda ke alamat IP publik pengontrol Ingress. Temukan alamat IP dengan kubectl:
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
Menghapus add-on perutean aplikasi
Untuk menghapus namespace terkait, gunakan kubectl delete namespace
perintah .
kubectl delete namespace aks-store
Untuk menghapus add-on perutean aplikasi dari kluster Anda, gunakan az aks approuting disable
perintah .
az aks approuting disable --name <ClusterName> --resource-group <ResourceGroupName>
Catatan
Untuk menghindari potensi gangguan lalu lintas ke dalam kluster ketika add-on perutean aplikasi dinonaktifkan, beberapa sumber daya Kubernetes, termasuk configMaps, rahasia, dan penyebaran yang menjalankan pengontrol, akan tetap berada di kluster. Sumber daya ini berada di namespace layanan sistem perutean aplikasi. Anda dapat menghapus sumber daya ini jika tidak lagi diperlukan dengan menghapus namespace layanan dengan kubectl delete ns app-routing-system
.
Langkah berikutnya
Mengonfigurasi konfigurasi ingress kustom memperlihatkan cara membuat konfigurasi Ingress tingkat lanjut dan mengonfigurasi domain kustom menggunakan Azure DNS untuk mengelola zona DNS dan menyiapkan ingress aman.
Untuk berintegrasi dengan load balancer internal Azure dan mengonfigurasi zona Azure DNS privat untuk mengaktifkan resolusi DNS untuk titik akhir privat guna mengatasi domain tertentu, lihat Mengonfigurasi pengontrol ingress NGINX internal untuk zona DNS privat Azure.
Pelajari tentang memantau metrik pengontrol ingress-nginx yang disertakan dengan add-on perutean aplikasi dengan Prometheus di Grafana (pratinjau) sebagai bagian dari menganalisis performa dan penggunaan aplikasi Anda.
Azure Kubernetes Service