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.
  • aks-preview 0.5.171 veya sonraki bir sürümün Azure CLI uzantısı yüklü

Sınırlamalar

  • Uygulama yönlendirme eklentisi en fazla beş Azure DNS bölgesini destekler.
  • 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 ConfigMapapp-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 -g <ResourceGroupName> -n <ClusterName> -l <Location> --enable-app-routing

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 -g <ResourceGroupName> -n <ClusterName>

AKS kümenize Bağlan

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 -g <ResourceGroupName> -n <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ı hello-web-app-routing uygulama ad alanını kubectl create namespace oluşturun.

    kubectl create namespace hello-web-app-routing
    
  2. Aşağıdaki YAML bildirimini deployment.yaml adlı yeni bir dosyaya kopyalayıp dosyayı yerel bilgisayarınıza kaydederek dağıtımı oluşturun.

    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. Aşağıdaki YAML bildirimini service.yaml adlı yeni bir dosyaya kopyalayıp dosyayı yerel bilgisayarınıza kaydederek hizmeti oluşturun.

    apiVersion: v1
    kind: Service
    metadata:
      name: aks-helloworld
      namespace: hello-web-app-routing
    spec:
      type: ClusterIP
      ports:
      - port: 80
      selector:
        app: aks-helloworld
    

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: 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. komutunu kullanarak kubectl apply küme kaynaklarını oluşturun.

    kubectl apply -f deployment.yaml -n hello-web-app-routing
    

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

    deployment.apps/aks-helloworld created
    
    kubectl apply -f service.yaml -n hello-web-app-routing
    

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

    service/aks-helloworld created
    
    kubectl apply -f ingress.yaml -n hello-web-app-routing
    

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

    ingress.networking.k8s.io/aks-helloworld 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 hello-web-app-routing

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

NAME             CLASS                                HOSTS               ADDRESS       PORTS     AGE
aks-helloworld   webapprouting.kubernetes.azure.com   myapp.contoso.com   20.51.92.19   80, 443   4m

Uygulama yönlendirme eklentisini kaldırma

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

kubectl delete namespace hello-web-app-routing

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

az aks approuting disable --name myAKSCluster --resource-group myResourceGroup 

Uygulama yönlendirme eklentisi devre dışı bırakıldığında, bazı Kubernetes kaynakları kümede kalabilir. Bu kaynaklar yapılandırma Haritalar ve gizli dizileri içerir ve uygulama yönlendirme sistemi ad alanında oluşturulur. İsterseniz 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.