Uygulama yönlendirme eklentisiyle yönetilen NGINX girişi

Dikkat

Kubernetes SIG Ağı ve Güvenlik Yanıt Komitesi, Ingress NGINX projesinin yakında kullanımdan kaldırılıpbakımın Mart 2026'da sona ermesini duyurdu. NGINX ile uygulama yönlendirme eklentisini kullanan AKS kümeleri için hemen eyleme gerek yoktur. Microsoft, Kasım 2026'ya kadar NGINX Giriş kaynaklarına uygulama yönlendirme eklentisi için kritik güvenlik düzeltme ekleri için resmi destek sağlayacaktır.

AKS, yukarı akış Kubernetes ile uyum sağlamak için, giriş ve L7 trafik yönetimi için uzun vadeli standart olarak Ağ Geçidi API'sine geçiş yapmaktadır. Geçiş yolunuzu geçerli kurulumunuza göre planlamaya başlamanızı öneririz:

Köprü Metni Aktarım Protokolü (HTTP) ve güvenli (HTTPS) trafiğini Azure Kubernetes Service (AKS) kümesinde çalışan uygulamalara yönlendirmenin bir yolu Kubernetes Giriş nesnesini kullanmaktır. NGINX ile uygulama yönlendirme eklentisini etkinleştirdiğinizde AKS kümenizde bir Giriş denetleyicisi oluşturur, yapılandırılır ve yönetir.

Bu makalede, yönetilen NGINX Giriş denetleyicisini etkinleştirme ve trafiği AKS kümenizdeki bir uygulamaya yönlendirmek için bir Giriş nesnesi yapılandırma adımları gösterilmektedir.

NGINX özellikleriyle uygulama yönlendirme eklentisi

NGINX ile uygulama yönlendirme eklentisi aşağıdakileri sunar:

Diğer yapılandırmalar için bkz:

Önemli

Azure Kubernetes Service (AKS), 30 Eylül 2027'den itibaren Open Service Mesh (OSM) eklentisini artık desteklememektedir. Yukarı akış Open Service Mesh projesi kullanımdan kaldırıldı.

Kümeniz OSM eklentisini kullanıyorsa destek sonu tarihinden önce Istio eklentisine geçin. Bu kullanımdan kaldırma bildirimi yalnızca yönetilen OSM eklentisi için geçerlidir ve açık kaynak veya kendi kendine yönetilen hizmet ağı yüklemelerini ele almaz. Geçiş adımları için bkz . OSM eklentisinden Istio eklentisine geçiş kılavuzu. AKS duyuruları ve güncelleştirmeleri hakkında bilgi sahibi olmak için AKS sürüm notlarını izleyin.

Prerequisites

  • Bir Azure aboneliği. Azure aboneliğiniz yoksa ücretsiz hesap oluşturabilirsiniz.
  • Azure CLI sürüm 2.54.0 veya üzeri yüklü ve yapılandırılmış. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI'yı yükleme.

Limitations

  • Uygulama yönlendirme eklentisi en fazla beş Azure DNS bölgesini destekler.

  • Uygulama yönlendirme eklentisi yalnızca yönetilen kimliğe sahip AKS kümelerinde etkinleştirilebilir.

  • Eklentiyle tümleştirilmiş tüm genel Azure DNS bölgelerinin aynı kaynak grubunda olması gerekir.

  • Eklentiyle tümleştirilmiş tüm özel Azure DNS bölgelerinin aynı kaynak grubunda olması gerekir.

  • ConfigMap ad aralığındaki ingress-nginx'in app-routing-system düzenlenmesi desteklenmez.

  • Kod parçacığı ek açıklaması değeri aşağıdaki engellenen değerlerden herhangi biri ile eşleşiyorsa Giriş yapılandırılmaz:

    Engellenen değer Etkisi
    load_module Giriş yapılandırılmamış.
    lua_package Giriş yapılandırılmamış.
    _by_lua Giriş yapılandırılmamış.
    location Giriş yapılandırılmamış.
    root Giriş yapılandırılmamış.
    proxy_pass Giriş yapılandırılmamış.
    serviceaccount Giriş yapılandırılmamış.
    { Giriş yapılandırılmamış.
    } Giriş yapılandırılmamış.
    ' Giriş yapılandırılmamış.
  • Eklenti, yönettiği ingress-nginx proxy podlarına Microsoft yönetilmeyen sepetlerin (örneğin, özel telemetri, günlük veya güvenlik aracıları) eklenmesini resmi olarak desteklemez. Yönetilen bir proxy poduna kendi sidecar’ınızı enjekte etmeyi seçerseniz, Microsoft karşılaştığınız sorunlar için yalnızca elinden gelen ölçüde destek sunar.

Azure CLI kullanarak uygulama yönlendirme eklentisini etkinleştirme

Yeni bir kümede etkinleştir

Yeni bir kümede uygulama yönlendirmeyi etkinleştirmek için az aks create komutunu ve --enable-app-routing bayrağını belirtin.

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

Mevcut bir kümede etkinleştirme

Mevcut bir kümede uygulama yönlendirmeyi az aks approuting enable etkinleştirmek için komutunu kullanın.

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

AKS kümenize bağlanma

Yerel bilgisayarınızdan Kubernetes kümesine bağlanmak için Kubernetes komut satırı istemcisini kullanırsınız kubectl. komutunu kullanarak az aks install-cli yerel olarak yükleyebilirsiniz. Azure Cloud Shell'i kullanıyorsanız kubectl zaten yüklüdür.

kubectl'yi, az aks get-credentials komutunu kullanarak Kubernetes kümenize bağlanmak için yapılandırın.

az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>

Uygulama dağıtmak

Kubernetes Giriş nesneleri, giriş denetleyicisi için yönlendirme kurallarını tanımlar. Denetleyicinin trafiği nasıl işleyeceğini yapılandırmak için uygulama yönlendirme eklentisinin yönetilen Giriş sınıfını ve desteklenen ek açıklamaları kullanın.

  1. komutunu kullanarak örnek podları çalıştırmak için adlı aks-store uygulama ad alanını kubectl create namespace oluşturun.

    kubectl create namespace aks-store
    
  2. AKS deposu uygulamasını aşağıdaki YAML bildirim dosyasını kullanarak dağıtın:

    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
    

Bu bildirim , , order-serviceproduct-service, ve Dağıtımları ile store-front karşılık gelen Hizmetleri oluştururrabbitmq. store-front Hizmet, Giriş'in sonraki bölümde yönlendirildiği 80 numaralı bağlantı noktasını kullanıma sunar.

Giriş nesnesini oluşturma

Uygulama yönlendirme eklentisini etkinleştirdiğinizde, webapprouting.kubernetes.azure.com adlı bir Giriş sınıfı oluşturur. Eklentinin yönetilen NGINX Giriş denetleyicisini kullanmak için bir Giriş nesnesinde bu sınıfı belirtin.

  1. Aşağıdaki YAML bildirimini ingress.yaml adlı yeni bir dosyaya kopyalayın ve dosyayı yerel bilgisayarınıza kaydedin.

    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. komutunu kullanarak kubectl apply giriş kaynağını oluşturun.

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

    Aşağıdaki örnek çıktı, oluşturulan kaynağı gösterir:

    ingress.networking.k8s.io/store-front created
    

Yönetilen Giriş kaynağını doğrulama

kubectl get ingress komutunu kullanarak yönetilen Girişin oluşturulduğunu doğrulayabilirsiniz.

kubectl get ingress -n aks-store

Aşağıdaki örnek çıktıda, oluşturulan yönetilen Giriş gösterilmektedir:

NAME          CLASS                                HOSTS   ADDRESS       PORTS   AGE
store-front   webapprouting.kubernetes.azure.com   *       51.8.10.109   80      110s

Tarayıcınızı Giriş denetleyicisinin genel IP adresine işaret ederek AKS deposunun çalıştığını doğrulayabilirsiniz. Aşağıdaki komut, yük dengeleyici tarafından ad alanında yönetilen NGINX giriş denetleyicisinin nginx Hizmetine app-routing-system atanan dış IP adresini alır:

kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"

Uygulama yönlendirme eklentisini kaldırma

İlişkili ad alanını kaldırmak için komutunu kullanın kubectl delete namespace .

kubectl delete namespace aks-store

Uygulama yönlendirme eklentisini kümenizden kaldırmak için komutunu kullanın az aks approuting disable .

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

Note

Uygulama yönlendirme eklentisini devre dışı bırakırken kümeye gelen trafiğin kesintiye uğramasını önlemek için configMap'ler, gizli diziler ve denetleyiciyi çalıştıran dağıtım gibi bazı Kubernetes kaynakları kümede kalır. Bu kaynaklar uygulama yönlendirme sistemi ad alanındadır. "kubectl delete ns app-routing-system ile ad alanını silerek bu kaynakları artık gerekli değilse kaldırabilirsiniz."