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.
  • aks-preview Nainstalované rozšíření Azure CLI verze 0.5.171 nebo novější

Omezení

  • Doplněk pro směrování aplikací podporuje až pět zón Azure DNS.
  • 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 -g <ResourceGroupName> -n <ClusterName> -l <Location> --enable-app-routing

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

Připojení do 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 -g <ResourceGroupName> -n <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ý hello-web-app-routing pro spuštění ukázkových podů pomocí kubectl create namespace příkazu.

    kubectl create namespace hello-web-app-routing
    
  2. Vytvořte nasazení zkopírováním následujícího manifestu YAML do nového souboru s názvem deployment.yaml a uložte ho do místního počítače.

    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. Vytvořte službu zkopírováním následujícího manifestu YAML do nového souboru s názvem service.yaml a uložte soubor do místního počítače.

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

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: 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. Pomocí příkazu vytvořte prostředky clusteru kubectl apply .

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

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

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

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

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

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

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

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

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

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 hello-web-app-routing

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 myAKSCluster --resource-group myResourceGroup 

Pokud je doplněk pro směrování aplikací zakázaný, některé prostředky Kubernetes můžou zůstat v clusteru. Mezi tyto prostředky patří konfigurace Mapy a tajné kódy a jsou vytvořeny v oboru názvů systému směrování aplikace. Pokud chcete, můžete tyto prostředky odebrat.

Další kroky