Aracılığıyla paylaş


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

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. Uygulama yönlendirme eklentisi NGINX Giriş sınıflarını kullanan bir Giriş nesnesi oluşturduğunuzda, eklenti AKS kümenizde bir veya daha fazla Giriş denetleyicisi oluşturur, yapılandırılır ve yönetir.

Bu makalede AKS kümenizde temel bir Giriş denetleyicisinin nasıl dağıtılacağı ve yapılandırılacağı 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:

Cloud Native Computing Foundation (CNCF) tarafından Open Service Mesh'in (OSM) kullanımdan kaldırılmasıyla, OSM ile uygulama yönlendirme eklentisini kullanmanız önerilmez.

Önkoşullar

  • 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 gerekirse, bkz. Azure CLI yükleme.

Sınırlamalar

  • 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.
  • Ad alanında ingress-nginx'in ConfigMap app-routing-system düzenlenmesi desteklenmez.
  • Aşağıdaki kod parçacığı ek açıklamaları engellenir ve girişin yapılandırılmasını engeller: load_module, lua_package, _by_lua, , location, , root, proxy_passserviceaccount{, }, . '

Azure CLI kullanarak uygulama yönlendirmeyi etkinleştirme

Yeni bir kümede etkinleştirme

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

az aks create \
    --resource-group <ResourceGroupName> \
    --name <ClusterName> \
    --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 <ResourceGroupName> --name <ClusterName>

AKS kümenize bağlanma

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

az aks get-credentials komutunu kullanarak Kubernetes kümenize bağlanacak şekilde yapılandırınkubectl.

az aks get-credentials --resource-group <ResourceGroupName> --name <ClusterName>

Uygulama dağıtma

Uygulama yönlendirme eklentisi, uygun kaynakları oluşturmak için Kubernetes Giriş nesnelerindeki ek açıklamaları kullanır.

  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, AKS depolama uygulaması için gerekli dağıtımları ve hizmetleri oluşturur.

Giriş nesnesini oluşturma

Uygulama yönlendirme eklentisi, kümede webapprouting.kubernetes.azure.com adlı bir Giriş sınıfı oluşturur. Bu sınıfla bir Giriş nesnesi oluşturduğunuzda eklenti etkinleştirilir.

  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şin oluşturulduğunu doğrulama

komutunu kullanarak yönetilen Girişin oluşturulduğunu kubectl get ingress 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

AKS deposunun tarayıcınızı Giriş denetleyicisinin genel IP adresine işaret ederek çalıştığını doğrulayabilirsiniz. kubectl ile IP adresini bulun:

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 <ClusterName> --resource-group <ResourceGroupName>

Not

Uygulama yönlendirme eklentisi devre dışı bırakıldığında 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. Ad alanını ile kubectl delete ns app-routing-systemsilerek artık gerekli değilse bu kaynakları kaldırabilirsiniz.

Sonraki adımlar

  • Özel giriş yapılandırmalarını yapılandırma, gelişmiş giriş yapılandırması oluşturmayı ve DNS bölgelerini yönetmek ve güvenli bir giriş ayarlamak için Azure DNS kullanarak özel bir etki alanı yapılandırmayı gösterir.

  • Azure iç yük dengeleyiciyle tümleştirmek ve özel uç noktaların belirli etki alanlarını çözümlemek üzere DNS çözümlemesini etkinleştirmek üzere özel bir Azure DNS bölgesi yapılandırmak için bkz . Azure özel DNS bölgesi için iç NGINX giriş denetleyicisini yapılandırma.

  • Uygulamanızın performansını ve kullanımını analiz etme kapsamında Grafana'da Prometheus (önizleme) ile uygulama yönlendirme eklentisine dahil edilen giriş-nginx denetleyicisi ölçümlerini izleme hakkında bilgi edinin.