Spravované příchozí přenosy dat NGINX pomocí doplňku pro směrování aplikací

Jedním ze způsobů, jak směrovat provoz protokolu HTTP (Hypertext Transfer Protocol) a zabezpečeného provozu (HTTPS) do aplikací spuštěných v clusteru Azure Kubernetes Service (AKS), je použití objektu Příchozí přenos dat Kubernetes. Když vytvoříte objekt příchozího přenosu dat, který používá doplňky NGINX ingress směrování aplikace, doplněk vytvoří, nakonfiguruje a spravuje jeden nebo více kontrolerů příchozího přenosu dat v clusteru AKS.

V tomto článku se dozvíte, jak nasadit a nakonfigurovat základní kontroler příchozího přenosu dat v clusteru AKS.

Doplněk směrování aplikací s funkcemi NGINX

Doplněk směrování aplikací s NGINX poskytuje následující:

  • Snadná konfigurace spravovaných kontrolerů příchozího přenosu dat NGINX na základě kontroleru příchozího přenosu dat NGINX Kubernetes
  • Integrace s Azure DNS pro správu veřejných a privátních zón
  • Ukončení protokolu SSL s certifikáty uloženými ve službě Azure Key Vault

Další konfigurace najdete tady:

Při vyřazení open service mesh (OSM) od základu CLOUD Native Computing Foundation (CNCF) se nedoporučuje používat doplněk směrování aplikací s OSM.

Požadavky

  • Předplatné Azure. Pokud ještě nemáte předplatné Azure, můžete si vytvořit bezplatný účet.
  • Azure CLI verze 2.54.0 nebo novější je nainstalovaná a nakonfigurovaná. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.

Omezení

  • Doplněk pro směrování aplikací podporuje až pět zón Azure DNS.
  • Doplněk pro směrování aplikací je možné povolit jenom v clusterech AKS se spravovanou identitou.
  • Všechny globální zóny Azure DNS integrované s doplňkem musí být ve stejné skupině prostředků.
  • Všechny privátní zóny Azure DNS integrované s doplňkem musí být ve stejné skupině prostředků.
  • Úpravy ingress-nginx ConfigMap v app-routing-system oboru názvů se nepodporují.
  • Následující poznámky fragmentu kódu jsou blokované a zabrání konfiguraci příchozího přenosu dat: , , , , , , }{proxy_passrootserviceaccount, . 'location_by_lualua_packageload_module

Povolení směrování aplikací pomocí Azure CLI

Povolení v novém clusteru

Pokud chcete povolit směrování aplikací v novém clusteru, použijte az aks create příkaz a --enable-app-routing zadejte příznak.

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

Povolení v existujícím clusteru

Pokud chcete povolit směrování aplikací v existujícím clusteru, použijte az aks approuting enable příkaz.

az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>

Připojení ke clusteru AKS

Pokud se chcete připojit ke clusteru Kubernetes z místního počítače, použijte klienta příkazového řádku Kubernetes kubectl. Můžete ho az aks install-cli nainstalovat místně pomocí příkazu. Pokud používáte Azure Cloud Shell, kubectl je už nainstalovaný.

Nakonfigurujte kubectl připojení ke clusteru Kubernetes pomocí příkazu az aks get-credentials .

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

Nasazení aplikace

Doplněk směrování aplikace používá poznámky k objektům příchozího přenosu dat Kubernetes k vytvoření příslušných prostředků.

  1. Vytvořte obor názvů aplikace volaný aks-store pro spuštění ukázkových podů pomocí kubectl create namespace příkazu.

    kubectl create namespace aks-store
    
  2. Nasaďte aplikaci úložiště AKS pomocí následujícího souboru manifestu 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
    

Tento manifest vytvoří potřebná nasazení a služby pro aplikaci úložiště AKS.

Vytvoření objektu Příchozí přenos dat

Doplněk směrování aplikace vytvoří třídu příchozího přenosu dat v clusteru s názvem webapprouting.kubernetes.azure.com. Když vytvoříte objekt Ingress s touto třídou, aktivuje doplněk.

  1. Zkopírujte následující manifest YAML do nového souboru s názvem ingress.yaml a uložte ho do místního počítače.

    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. Pomocí příkazu vytvořte prostředek příchozího kubectl apply přenosu dat.

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

    Následující příklad výstupu ukazuje vytvořený prostředek:

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

Ověření vytvoření spravovaného příchozího přenosu dat

Spravovaný příchozí přenos dat můžete ověřit pomocí kubectl get ingress příkazu.

kubectl get ingress -n aks-store

Následující příklad výstupu ukazuje vytvořený spravovaný příchozí přenos dat:

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

Můžete ověřit, že úložiště AKS funguje tak, že prohlížeč odkazuje na veřejnou IP adresu kontroleru příchozího přenosu dat. Vyhledejte IP adresu pomocí kubectl:

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

Odebrání doplňku pro směrování aplikací

Chcete-li odebrat přidružený obor názvů, použijte kubectl delete namespace příkaz.

kubectl delete namespace aks-store

Pokud chcete z clusteru odebrat doplněk pro směrování aplikací, použijte az aks approuting disable příkaz.

az aks approuting disable --name <ClusterName> --resource-group <ResourceGroupName>

Poznámka:

Aby se zabránilo potenciálnímu přerušení provozu do clusteru, když je doplněk pro směrování aplikací zakázaný, některé prostředky Kubernetes, včetně objektů configMap, tajných kódů a nasazení, které spouští kontroler, zůstanou v clusteru. Tyto prostředky jsou v oboru názvů systému směrování aplikace. Tyto prostředky můžete odebrat, pokud už je nepotřebujete, odstraněním oboru názvů pomocí kubectl delete ns app-routing-systemnástroje .

Další kroky