Baca dalam bahasa Inggris

Bagikan melalui


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:

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 di app-routing-system namespace tidak didukung.
  • Anotasi cuplikan berikut diblokir dan akan mencegah Ingress dikonfigurasi: load_module, , lua_package, _by_lualocation, root, serviceaccountproxy_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 .

Azure CLI
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 .

Azure CLI
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.

Azure CLI
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.

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

    Bash
    kubectl create namespace aks-store
    
  2. Sebarkan aplikasi penyimpanan AKS menggunakan file manifes YAML berikut:

    YAML
    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.

  1. Salin manifes YAML berikut ke dalam file baru bernama ingress.yaml dan simpan file ke komputer lokal Anda.

    YAML
    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.

    Bash
    kubectl apply -f ingress.yaml -n aks-store
    

    Contoh output berikut menunjukkan sumber daya yang dibuat:

    Output
    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 .

Bash
kubectl get ingress -n aks-store

Contoh output berikut menunjukkan Ingress terkelola yang dibuat:

Output
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:

Bash
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 .

Bash
kubectl delete namespace aks-store

Untuk menghapus add-on perutean aplikasi dari kluster Anda, gunakan az aks approuting disable perintah .

Azure CLI
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