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. aks-preview
Ekstensi Azure CLI versi 0.5.171 atau yang lebih baru terinstal
Batasan
- Add-on perutean aplikasi mendukung hingga lima zona Azure DNS.
- 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
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
hello-web-app-routing
untuk menjalankan contoh pod menggunakankubectl create namespace
perintah .kubectl create namespace hello-web-app-routing
Buat penyebaran dengan menyalin manifes YAML berikut ke dalam file baru bernama deployment.yaml dan simpan file ke komputer lokal Anda.
apiVersion: apps/v1 kind: Deployment metadata: name: aks-helloworld namespace: hello-web-app-routing spec: replicas: 1 selector: matchLabels: app: aks-helloworld template: metadata: labels: app: aks-helloworld spec: containers: - name: aks-helloworld image: mcr.microsoft.com/azuredocs/aks-helloworld:v1 ports: - containerPort: 80 env: - name: TITLE value: "Welcome to Azure Kubernetes Service (AKS)"
Buat layanan dengan menyalin manifes YAML berikut ke dalam file baru bernama service.yaml dan simpan file ke komputer lokal Anda.
apiVersion: v1 kind: Service metadata: name: aks-helloworld namespace: hello-web-app-routing spec: type: ClusterIP ports: - port: 80 selector: app: aks-helloworld
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: aks-helloworld namespace: hello-web-app-routing spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - host: <Hostname> http: paths: - backend: service: name: aks-helloworld port: number: 80 path: / pathType: Prefix
Buat sumber daya kluster menggunakan
kubectl apply
perintah .kubectl apply -f deployment.yaml -n hello-web-app-routing
Contoh output berikut menunjukkan sumber daya yang dibuat:
deployment.apps/aks-helloworld created
kubectl apply -f service.yaml -n hello-web-app-routing
Contoh output berikut menunjukkan sumber daya yang dibuat:
service/aks-helloworld created
kubectl apply -f ingress.yaml -n hello-web-app-routing
Contoh output berikut menunjukkan sumber daya yang dibuat:
ingress.networking.k8s.io/aks-helloworld created
Verifikasi bahwa Ingress terkelola telah dibuat
Anda dapat memverifikasi bahwa Ingress terkelola dibuat menggunakan kubectl get ingress
perintah .
kubectl get ingress -n hello-web-app-routing
Contoh output berikut menunjukkan Ingress terkelola yang dibuat:
NAME CLASS HOSTS ADDRESS PORTS AGE
aks-helloworld webapprouting.kubernetes.azure.com myapp.contoso.com 20.51.92.19 80, 443 4m
Menghapus add-on perutean aplikasi
Untuk menghapus namespace terkait, gunakan kubectl delete namespace
perintah .
kubectl delete namespace hello-web-app-routing
Untuk menghapus add-on perutean aplikasi dari kluster Anda, gunakan az aks approuting disable
perintah .
az aks approuting disable --name myAKSCluster --resource-group myResourceGroup
Ketika add-on perutean aplikasi dinonaktifkan, beberapa sumber daya Kubernetes mungkin tetap ada di kluster. Sumber daya ini mencakup konfigurasi Peta dan rahasia dan dibuat di namespace layanan sistem perutean aplikasi. Anda dapat menghapus sumber daya ini jika mau.
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.