Gyakorlat – Alkalmazás üzembe helyezése egy Azure Kubernetes Service-fürtben

Befejeződött

Ebben a gyakorlatban helyezze üzembe a vállalat webhelyét tesztalkalmazásként az Azure Kubernetes Service-ben (AKS). A webhely statikus, és HTML, CSS, valamint JavaScript típusú mögöttes technológiai eszközkészlettel rendelkezik. Nem kap annyi kérést, mint a többi szolgáltatás, és az üzembe helyezési lehetőségek biztonságos tesztelését teszi lehetővé.

Feljegyzés

A webalkalmazás kódja ebben a GitHub-adattárban érhető el, ha tovább szeretné vizsgálni a forráskódot. Ez a mintaalkalmazás emellett csak Linux-csomópontkészleten üzemel.

Fontos

A gyakorlat elvégzéséhez saját Azure-előfizetésre van szüksége, és előfordulhat, hogy díjakat von maga után. Ha még nem rendelkezik Azure-előfizetéssel, a kezdés előtt hozzon létre egy ingyenes fiókot .

Üzembe helyezési jegyzék létrehozása

Üzembe helyezési jegyzéket az alkalmazás üzembe helyezéséhez hozhat létre. A jegyzékfájllal meghatározhatja, milyen típusú erőforrást szeretne üzembe helyezni, valamint a számítási feladathoz társítandó adatokat.

A Kubernetes a tárolókat logikai struktúrákba, úgynevezett podokba csoportosítja, amelyek nem rendelkeznek intelligenciával. Az üzembe helyezések adják meg a hiányzó intelligenciát az alkalmazásodhoz. Hozzunk létre egy üzembe helyezési fájlt.

  1. A számítógépen használjon egy szövegszerkesztőt, például a Visual Studio Code-ot, és másolja és illessze be a következő YAML-kódot egy deployment.yaml nevű fájlba, és mentse a fájlt.

    # deployment.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: contoso-website
    spec:
      selector:
        matchLabels:
          app: contoso-website
      template:
        metadata:
          labels:
            app: contoso-website
        spec:
          nodeSelector:
            kubernetes.io/os: linux
          containers:
            - image: mcr.microsoft.com/mslearn/samples/contoso-website
              name: contoso-website
              resources:
                requests:
                  cpu: 100m
                  memory: 128Mi
                limits:
                  cpu: 250m
                  memory: 256Mi
              ports:
                - containerPort: 80
                  name: http
    
    • A jegyzék apiVersion és kind meghatározásához két kulcs használható. A kulccsal kapcsolatos további információkért apiVersion és a kulcsban elhelyezendő értékekről a Kubernetes központi telepítéseinek hivatalos dokumentációjában olvashat.
    • Itt name az üzemelő példány neve. Az kubectl használatával azonosíthatja és lekérdezheti az üzembehelyezési adatokat.
    • A sablondefiníció határozza meg a podinformációkat a jegyzékfájlban. A sablon a jegyzékfájlban az üzembe helyezési specifikációk alá kerül.
    • A labels kulcs, amely lehetővé teszi a telepítések számára a podok keresését és csoportosítását.
    • Linux- és Windows-csomópontkészletekkel rendelkező AKS-fürtökben az üzembe helyezési jegyzék meghatároz egy nodeSelector paramétert, amely jelzi az AKS-fürtnek, hogy a mintaalkalmazás podját egy Linux-tárolókat futtatni képes csomóponton futtassa. A Linux-csomópontok nem futtathatnak Windows-tárolókat, és fordítva.
    • A containers kulcs tárolóspecifikációk tömbje, egy pod ugyanis egy vagy több tárolóval is rendelkezhet. A specifikáció meghatározza a image tárolót, a name, resources, ports, és az egyéb fontos információkat. Minden futó pod a nevet contoso-website-<UUID>követi, ahol az UUID egy generált azonosító az összes erőforrás egyedi azonosításához.
    • Ajánlott meghatározni, hogy az alkalmazás milyen minimális és maximális mennyiségű erőforrást használhat a fürtből. Ezt az információt a resources kulccsal adhatja meg. Az erőforrásszakasz lehetővé teszi, hogy kérésként megszabja a minimális erőforrás-összeget, a maximális erőforrásmennyiséget pedig korlátként.
    • A portok, amelyeket ez a tároló a ports kulcson keresztül külsőleg megoszt. A ports kulcs objektumok tömbje, ami azt jelenti, hogy egy pod tárolója több portot is közzé tud tenni több névvel. A name billentyű használatával nevezze el a portot. A portok elnevezésével úgy módosíthatja az elérhetővé tett portot, hogy nem módosítja a portra hivatkozó fájlokat.
  2. Töltse fel a deployment.yaml fájlt a Cloud Shell-munkamenetbe a Fájlok>feltöltésének kezelése lehetőséget választva.

A manifest alkalmazása

  1. A Cloud Shellben a kubectl apply paranccsal küldje el az üzembe helyezési nyilvántartást a fürtre.

    kubectl apply -f ./deployment.yaml
    

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

    deployment.apps/contoso-website created
    
  2. A kubectl get deploy paranccsal ellenőrizze, hogy sikeres volt-e az üzembe helyezés.

    kubectl get deploy contoso-website
    

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

    NAME              READY   UP-TO-DATE   AVAILABLE   AGE
    contoso-website   1/1     1            1           19s
    
  3. A kubectl get pods parancs futtatásával ellenőrizze, hogy fut-e a pod.

    kubectl get pods
    

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

    NAME                               READY   STATUS    RESTARTS   AGE
    contoso-website-1c2b3b4b5b-dzsvm   1/1     Running   0          68s