Ingress NGINX terkelola dengan tambahan perutean aplikasi

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:

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 mengaktifkan add-on perutean aplikasi dengan NGINX, ia membuat, mengonfigurasi, dan mengelola pengontrol Ingress di kluster AKS Anda.

Artikel ini menunjukkan kepada Anda cara mengaktifkan pengontrol NGINX Ingress terkelola dan mengonfigurasi objek Ingress untuk merutekan lalu lintas ke aplikasi di kluster AKS Anda.

Penambahan routing aplikasi dengan fitur NGINX

Add-on perutean aplikasi dengan NGINX memberikan hal berikut:

  • Konfigurasi mudah dari pengontrol NGINX Ingress terkelola berdasarkan NGINX Ingress controller Kubernetes.
  • Integrasi dengan Azure DNS untuk manajemen zona publik dan privat.
  • Penghentian SSL dengan sertifikat yang disimpan di Azure Key Vault.

Untuk konfigurasi lain, lihat:

Penting

Mulai 30 September 2027, Azure Kubernetes Service (AKS) tidak lagi mendukung add-on Open Service Mesh (OSM). Proyek Open Service Mesh upstream telah dihentikan.

Jika kluster Anda menggunakan add-on OSM, migrasikan ke add-on Istio sebelum tanggal akhir dukungan. Pemberitahuan penghentian ini hanya berlaku untuk add-on OSM terkelola dan tidak mencakup instalasi service mesh open-source atau yang dikelola sendiri. Untuk langkah-langkah migrasi, lihat Panduan migrasi dari add-on OSM ke add-on Istio. Untuk tetap mendapatkan informasi tentang pengumuman dan pembaruan AKS, ikuti catatan rilis AKS.

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

  • Tambahan perutean aplikasi mendukung hingga lima zona Azure DNS.

  • Add-on pengarutan aplikasi hanya dapat diaktifkan pada cluster 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 di app-routing-system namespace tidak didukung.

  • Jika nilai anotasi cuplikan cocok dengan salah satu nilai yang diblokir berikut, Ingress tidak dikonfigurasi:

    Nilai yang diblokir Efek
    load_module Ingress tidak dikonfigurasi.
    lua_package Ingress tidak dikonfigurasi.
    _by_lua Ingress tidak dikonfigurasi.
    location Ingress tidak dikonfigurasi.
    root Ingress tidak dikonfigurasi.
    proxy_pass Ingress tidak dikonfigurasi.
    serviceaccount Ingress tidak dikonfigurasi.
    { Ingress tidak dikonfigurasi.
    } Ingress tidak dikonfigurasi.
    ' Ingress tidak dikonfigurasi.
  • Add-on tidak secara resmi mendukung menyuntikkan sidecar yang tidak dikelola Microsoft (misalnya, telemetri kustom, pengelogan, atau agen keamanan) ke dalam pod proksi ingress-nginx yang dikelolanya. Jika Anda memilih untuk menyisipkan sidecar Anda sendiri ke dalam pod proksi terkelola, Microsoft hanya memberikan dukungan sebatas upaya terbaik atas masalah apa pun yang Anda alami.

Mengaktifkan add-on perutean aplikasi menggunakan Azure CLI

Aktifkan pada kluster baru

Untuk mengaktifkan perutean aplikasi pada kluster baru, gunakan perintah az aks create dengan menentukan flag --enable-app-routing.

az aks create \
    --resource-group <resource-group-name> \
    --name <cluster-name> \
    --location <location> \
    --enable-app-routing \
    --generate-ssh-keys

Aktifkan pada kluster yang ada

Untuk mengaktifkan perutean aplikasi pada kluster yang ada, gunakan perintah az aks approuting enable.

az aks approuting enable --resource-group <resource-group-name> --name <cluster-name>

Hubungkan 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 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 <resource-group-name> --name <cluster-name>

Menyebarkan aplikasi

Objek Ingress Kubernetes menentukan aturan perutean untuk pengontrol Ingress. Gunakan kelas Ingress terkelola add-on perutean aplikasi dan anotasi yang didukung untuk mengonfigurasi bagaimana pengontrolnya menangani lalu lintas.

  1. Buat namespace aplikasi yang disebut aks-store untuk menjalankan contoh pod menggunakan perintah kubectl create namespace.

    kubectl create namespace aks-store
    
  2. 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 membuat rabbitmq, order-service, product-service, dan store-front Penyebaran dan Layanan terkait. store-front Layanan mengekspos port 80, yang dirutekan Ingress di bagian berikutnya.

Membuat objek Ingress

Saat Anda mengaktifkan add-on perutean aplikasi, ia membuat kelas Ingress bernama webapprouting.kubernetes.azure.com. Tentukan kelas ini dalam objek Ingress untuk menggunakan pengontrol NGINX Ingress terkelola add-on.

  1. 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
    
  2. 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
    

Memverifikasi sumber daya Ingress terkelola

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   webapprouting.kubernetes.azure.com   *       51.8.10.109   80      110s

Anda dapat memverifikasi bahwa penyimpanan AKS berfungsi dengan mengarahkan browser Anda ke alamat IP publik pengontrol Ingress. Perintah berikut mengambil alamat IP eksternal yang ditetapkan oleh load balancer ke Layanan pengontrol ingress NGINX terkelola nginx di app-routing-system namespace:

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 perintah az aks approuting disable.

az aks approuting disable --name <cluster-name> --resource-group <resource-group-name>

Catatan

Untuk menghindari potensi gangguan lalu lintas ke dalam kluster saat Anda menonaktifkan add-on perutean aplikasi, beberapa sumber daya Kubernetes, termasuk configMaps, rahasia, dan penyebaran yang menjalankan pengontrol, tetap berada di kluster. Sumber daya ini berada di namespace app-routing-system. Anda dapat menghapus sumber daya ini jika tidak lagi diperlukan dengan menghapus namespace dengan kubectl delete ns app-routing-system.