Felügyelt NGINX-bejövő forgalom az alkalmazás-útválasztási bővítményrel

A Hypertext Transfer Protocol (HTTP) és a biztonságos (HTTPS) forgalom azure Kubernetes Service-fürtön (AKS) futó alkalmazásokhoz való átirányításának egyik módja a Kubernetes Bejövő forgalom objektum használata. Amikor létrehoz egy bejövő objektumot, amely az alkalmazás-útválasztási bővítmény NGINX bejövő osztályait használja, a bővítmény létrehoz, konfigurál és kezel egy vagy több bejövő vezérlőt az AKS-fürtben.

Ez a cikk bemutatja, hogyan helyezhet üzembe és konfigurálhat egy alapszintű bejövőforgalom-vezérlőt az AKS-fürtben.

Alkalmazás-útválasztási bővítmény NGINX-funkciókkal

Az NGINX-et tartalmazó alkalmazás-útválasztási bővítmény a következőket biztosítja:

  • Felügyelt NGINX bejövőforgalom-vezérlők egyszerű konfigurálása Kubernetes NGINX bejövőforgalom-vezérlő alapján.
  • Integráció az Azure DNS-sel a nyilvános és privát zónakezeléshez
  • SSL-leállítás az Azure Key Vaultban tárolt tanúsítványokkal.

További konfigurációkért lásd:

Az Open Service Mesh (OSM) a Cloud Native Computing Foundation (CNCF) általi kivonásával az OSM-et használó alkalmazás-útválasztási bővítmény használata nem ajánlott.

Előfeltételek

  • Azure-előfizetés. Ha nem rendelkezik Azure-előfizetéssel, létrehozhat egy ingyenes fiókot.
  • Az Azure CLI 2.54.0-s vagy újabb verziója telepítve és konfigurálva van. A verzió azonosításához futtassa a következőt: az --version. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.
  • aks-preview A 0.5.171-es vagy újabb verzió Azure CLI-bővítménye telepítve van

Korlátozások

  • Az alkalmazás-útválasztási bővítmény legfeljebb öt Azure DNS-zónát támogat.
  • A bővítményrel integrált összes globális Azure DNS-zónának ugyanabban az erőforráscsoportban kell lennie.
  • A bővítményrel integrált összes privát Azure DNS-zónának ugyanabban az erőforráscsoportban kell lennie.
  • A névtérben lévő bejövő nginx ConfigMapapp-routing-system szerkesztése nem támogatott.
  • A következő kódrészlet-széljegyzetek le vannak tiltva, és megakadályozzák a bejövő forgalom konfigurálását: load_module, , lua_package, _by_lua, rootlocation, {proxy_passserviceaccount}'.

Alkalmazás-útválasztás engedélyezése az Azure CLI használatával

Engedélyezés új fürtön

Ha engedélyezni szeretné az alkalmazás-útválasztást egy új fürtön, használja a az aks create parancsot, és adja meg a jelölőt --enable-app-routing .

az aks create -g <ResourceGroupName> -n <ClusterName> -l <Location> --enable-app-routing

Engedélyezés meglévő fürtön

Ha engedélyezni szeretné az alkalmazás-útválasztást egy meglévő fürtön, használja a az aks approuting enable parancsot.

az aks approuting enable -g <ResourceGroupName> -n <ClusterName>

Csatlakozás az AKS-fürthöz

Ahhoz, hogy csatlakozni tudjon a Kubernetes-fürthöz a helyi számítógépről, használja a Kubernetes kubectl nevű parancssori ügyfelét. A parancs használatával az aks install-cli helyileg telepítheti. Ha az Azure Cloud Shellt használja, a kubectl már telepítve van.

Konfigurálja kubectl a Kubernetes-fürthöz való csatlakozást az az aks get-credentials paranccsal.

az aks get-credentials -g <ResourceGroupName> -n <ClusterName>

Alkalmazás üzembe helyezése

Az alkalmazás-útválasztási bővítmény a Kubernetes Bejövő forgalom objektumainak megjegyzéseit használja a megfelelő erőforrások létrehozásához.

  1. Hozza létre a példa podok futtatásához hívott hello-web-app-routing alkalmazásnévteret a kubectl create namespace paranccsal.

    kubectl create namespace hello-web-app-routing
    
  2. Hozza létre az üzembe helyezést úgy, hogy a következő YAML-jegyzékfájlt egy új, deployment.yaml nevű fájlba másolja, és mentse a fájlt a helyi számítógépre.

    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 szolgáltatás létrehozásához másolja a következő YAML-jegyzékfájlt egy service.yaml nevű új fájlba, és mentse a fájlt a helyi számítógépre.

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

A bejövő forgalom objektumának létrehozása

Az alkalmazás-útválasztási bővítmény létrehoz egy bejövő osztályt a webapprouting.kubernetes.azure.com nevű fürtön. Amikor ezzel az osztálysal hoz létre bejövő objektumot, az aktiválja a bővítményt.

  1. Másolja a következő YAML-jegyzékfájlt egy ingress.yaml nevű új fájlba, és mentse a fájlt a helyi számítógépre.

    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. Hozza létre a fürterőforrásokat a kubectl apply paranccsal.

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

    A következő példakimenet a létrehozott erőforrást mutatja be:

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

    A következő példakimenet a létrehozott erőforrást mutatja be:

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

    A következő példakimenet a létrehozott erőforrást mutatja be:

    ingress.networking.k8s.io/aks-helloworld created
    

A felügyelt bejövő forgalom létrehozásának ellenőrzése

A parancs használatával ellenőrizheti, hogy a felügyelt bejövő forgalom létrejött-e kubectl get ingress .

kubectl get ingress -n hello-web-app-routing

A következő példakimenet a létrehozott felügyelt bejövő forgalmat mutatja be:

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

Az alkalmazás útválasztási bővítményének eltávolítása

A társított névtér eltávolításához használja a kubectl delete namespace parancsot.

kubectl delete namespace hello-web-app-routing

Az alkalmazás-útválasztási bővítmény fürtből való eltávolításához használja a az aks approuting disable parancsot.

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

Ha az alkalmazás-útválasztási bővítmény le van tiltva, előfordulhat, hogy egyes Kubernetes-erőforrások a fürtben maradnak. Ezek az erőforrások közé tartozik a konfiguráció Térképek és a titkos kódok, és az alkalmazás-útválasztási rendszer névterében jönnek létre. Ezeket az erőforrásokat igény szerint eltávolíthatja.

Következő lépések