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

az aks create -g <ResourceGroupName> -n <ClusterName> -l <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 -g <ResourceGroupName> -n <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 -g <ResourceGroupName> -n <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 hello-web-app-routing untuk menjalankan contoh pod menggunakan kubectl create namespace perintah .

    kubectl create namespace hello-web-app-routing
    
  2. 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)"
    
  3. 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.

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