Gyakorlat – natív felhőbeli összetevők Csatlakozás

Befejeződött

A Kubernetes saját IP-címeket ad a podoknak, és egyetlen DNS-nevet ad egy podkészletnek. A szolgáltatásjegyzék-fájlok útmutatást tartalmaznak a podok megbízható módon való elérhetővé helyezéséhez egy olyan szabályzat használatával, amely meghatározza a velük való kapcsolódás módját. Ha újra üzembe helyezik a tárolólemezképet, a szolgáltatásjegyzékben található utasítások miatt nem kell újrakonfigurálnia a kapcsolatot.

A bejövőforgalom-vezérlők határozzák meg, hogyan csatlakozhat az alkalmazás a külvilághoz. A példaforgatókönyvben az intelligens hűtőknek üzeneteket kell küldenie a Node.js-tárolóba, és a bejövőforgalom-vezérlők határozzák meg a kapcsolat konfigurációját.

Ebben a leckében a következőket teheti meg:

  • Konfigurálja a bemeneti jegyzékfájlt, hogy a tárolórendszerképet külső alkalmazások is elérhessék.
  • Telepítse a bejövőforgalom-vezérlőt.
  • Webalkalmazás létrehozása Docker-rendszerkép használatával.

A bejövő forgalom jegyzékének konfigurálása

  1. Azonosítsa a gazdagép teljes tartománynevét (FQDN) a parancs használatával az aks show , és kérdezze le az addonProfiles.httpApplicationRouting.config.HTTPApplicationRoutingZoneName értéket.

    az aks show --resource-group $RESOURCEGROUP --name $CLUSTERNAME -o tsv --query addonProfiles.httpApplicationRouting.config.HTTPApplicationRoutingZoneName
    
  2. Másolja ki a kimenetet, és nyissa meg az integrált szerkesztőt a Cloud Shellben a code .

  3. Nyissa meg a ingress.yaml fájlt, és cserélje le az apiVersion értéket networking.k8s.io/v1 az host előző lépésben másolt teljes tartománynévre.

    A fájlnak a következő példához hasonlóan kell kinéznie:

    # ingress.yaml
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: cna-express
      annotations:
        kubernetes.io/ingress.class: addon-http-application-routing
    spec:
      rules:
      - host: cna-express.<exampleURL.eastus.aksapp.io>
        http:
          paths:
          - path: / # Which path is this rule referring to
            pathType: Prefix
            backend: # How the ingress will handle the requests
              service:
                name: cna-express # Which service the request will be forwarded to
                port: 
                  name: http # Which port in that service    
    
  4. Mentse a jegyzékfájlt a CTRL S billentyűkombinációval + , és zárja be a szerkesztőt a CTRL Q billentyűkombinációval. +

A bemeneti vezérlő üzembe helyezése

  1. Küldje el a bejövő jegyzékfájlt a fürtnek a kubectl apply paranccsal.

    kubectl apply -f ./ingress.yaml
    

    A parancs kimenete a következő példához hasonlót eredményez:

    ingress.networking.k8s.io/cna-express created
    
  2. Adja vissza a Cloud Shellt a forrásmappába a következő használatával cd ..: .

    cd ..
    

A bejövő forgalom létrehozása és a zónarekord létrehozása között kis késés lehet. Amíg ez történik, létrehozhatjuk a webalkalmazást.

Docker-rendszerkép használata a webalkalmazás létrehozásához

  1. Lépjen az Azure Portalra , és válassza ki a tárolóregisztrációs adatbázist.

  2. A Beállítások területen válassza a Hozzáférési kulcsok elemet.

  3. Válassza a Rendszergazda felhasználói lehetőséget, amely aktiválja a beállításjegyzék rendszergazdai felhasználói fiókját.

    Screenshot that shows the Access keys page for the container registry with Admin user selected.

A bejövő forgalom áttekintése

  1. Lépjen az Azure Cloud Shellre, és ellenőrizze, hogy az üzembe helyezés sikeres volt-e a kubectl get ingress paranccsal.

    kubectl get ingress cna-express
    

    A parancs kimenete a következő példához hasonlót eredményez:

    NAME              HOSTS                                           ADDRESS        PORTS   AGE
    cna-express       cna.5cd29ec927f24764b052.eastus.aksapp.io       52.226.96.30   80      4m44s
    

    Győződjön meg arról, hogy az ADDRESS oszlop tartalmaz egy IP-címet.

  2. Sorolja fel a DNS-zónákat, és állapítsa meg, hogy a DNS-ünket a az network dns zone list parancs használatával hozták-e létre."

    az network dns zone list --output table
    

    A parancs kimenete a következő példához hasonlót eredményez:

    Name                               ResourceGroup                                 RecordSets    MaxRecordSets
    -------------------------------------  --------------------------------------------  ------------  ---------------
    5cd29ec927f24764b052.eastus.aksapp.io  mc_rg-contoso-video_aks-contoso-video_eastus  4             10000
    
  3. Másolja ki a következő lépésben használni kívánt értékeket NameResourceGroup .

  4. A parancs használatával az network dns record-set list listázhatja a zóna DNS-rekordjait. Cserélje le <name> az <resource-group> előző lépésben másolt értékeket.

    az network dns record-set list -g <resource-group> -z <name> --output table
    

    A parancs kimenete a következő példához hasonlót eredményez:

    Fqdn                                            Name     ProvisioningState    ResourceGroup                                 Ttl
    ----------------------------------------------  -------  -------------------  --------------------------------------------  ------
    5cd29ec927f24764b052.eastus.aksapp.io.          @        Succeeded            mc_learn-cna-rg_cna-demo-aks_eastus           172800
    5cd29ec927f24764b052.eastus.aksapp.io.          @        Succeeded            mc_learn-cna-rg_cna-demo-aks_eastus           3600
    cna.5cd29ec927f24764b052.eastus.aksapp.io.      cna      Succeeded            mc_learn-cna-rg_cna-demo-aks_eastus           300
    cna.5cd29ec927f24764b052.eastus.aksapp.io.      cna      Succeeded            mc_learn-cna-rg_cna-demo-aks_eastus           300
    

    Győződjön meg arról, hogy a host kulcsban létrehozott gazdagép listájának alján két új rekord található. A ProvisioningState értéke Succeeded. A zónarekordok propagálása több percet is igénybe vehet.

  5. Nyissa meg a böngészőt, és keresse meg a kimenetben leírt teljes aksapp.io teljes tartománynév URL-címét. Egy "hello world" üzenetnek kell megjelennie. Ne felejtse el, hogy az . URL-cím végéről ne adja meg az url-címet.

    Screenshot of the deployment test.

Webalkalmazás létrehozása

  1. Térjen vissza az Azure Portalra , és válassza az Erőforrás létrehozása lehetőséget.

  2. Válassza a Web>Webalkalmazás lehetőséget.

  3. Az Alapszintű beállítások lapon adja meg az alábbi értékeket az egyes beállításokhoz:

    Setting Érték
    Projekt részletei
    Előfizetés Válassza ki az alapértelmezett Azure-előfizetést, amelyben erőforrásokat hozhat létre és kezelhet.
    Erőforráscsoport A legördülő listában válassza ki a meglévő erőforráscsoportot.
    Példány részletei
    Név Adjon meg egy egyedi nevet, és jegyezze fel.
    Közzététel Docker-tároló
    Operating System Linux
    Region Hagyja meg alapértelmezettként, vagy válasszon egy Önhöz közeli helyet.
    Díjszabások
    Linux-csomag Hagyja meg az alapértelmezett beállítást.
    Tarifacsomag Válassza az Ingyenes F1 0,00 USD/hónap lehetőséget.
  4. Válassza a docker lapot a képernyő tetején.

  5. A Docker lapon adja meg az alábbi értékeket az egyes beállításokhoz:

    Setting Érték
    Beállítások Egyetlen tároló
    Kép forrása Azure Container Registry
    Beállításjegyzék Válassza ki a saját beállításjegyzékét.
    Kép webimage
    Címke latest
    Indítási parancs Hagyja üresen ezt a beállítást.
  6. Válassza a Véleményezés lehetőséget, és hozza létre a Létrehozás lehetőséget>.

A webalkalmazás konfigurálása

  1. Amikor az üzembe helyezés befejeződött, válassza az Ugrás az erőforráshoz lehetőséget.

  2. A Beállítások területen válassza a Konfiguráció elemet.

  3. Az Alkalmazásbeállítások területen válassza az Új alkalmazásbeállítás lehetőséget.

  4. Másolja ki a következő értéket, és illessze be a Név mezőbe.

    SOCKET_SERVER_URL
    
  5. Érték esetén használja ugyanazt a aksapp.io teljes tartománynév URL-címét, amelyet a bejövőforgalom-vezérlővel használt, és hogy hozzáférjen a Hello World weblapjához.

  6. Válassza az OK>Mentés>folytatása lehetőséget.

    Screenshot that shows the Web App application setting being set.

  7. Térjen vissza a Cloud Shellhez, és hozzon létre egy környezeti változót a webalkalmazás nevéhez az alábbi paranccsal. Győződjön meg arról, hogy lecseréli <webapp-name> a webalkalmazás nevére.

    WEBAPPNAME=<webapp-name>
    

A megoldás tesztelése

  • Futtassa a következő parancsot, és válassza ki a webalkalmazás URL-címét.

    echo select the link below
    echo http://$WEBAPPNAME.azurewebsites.net
    

Ennyi az egész! Most létrehozott egy méretezhető, natív felhőbeli megoldást. Nyugodtan játszhat a létrehozott erőforrásokkal és kódokkal. Ha végzett, futtassa a következő lépést az Azure Cloud Shellben az erőforráscsoport törléséhez és a fiók szükségtelen költségeinek elkerüléséhez.

az group delete --name $RESOURCEGROUP