Gyakorlat – Alkalmazás üzembe helyezése egy Azure Kubernetes Service-fürtben
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.
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éskindmeghatározásához két kulcs használható. A kulccsal kapcsolatos további információkértapiVersionés a kulcsban elhelyezendő értékekről a Kubernetes központi telepítéseinek hivatalos dokumentációjában olvashat. - Itt
nameaz üzemelő példány neve. Azkubectlhaszná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
labelskulcs, 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
nodeSelectorparamé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
containerskulcs tárolóspecifikációk tömbje, egy pod ugyanis egy vagy több tárolóval is rendelkezhet. A specifikáció meghatározza aimagetárolót, aname,resources,ports, és az egyéb fontos információkat. Minden futó pod a nevetcontoso-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
resourceskulccsal 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
portskulcson keresztül külsőleg megoszt. Aportskulcs objektumok tömbje, ami azt jelenti, hogy egy pod tárolója több portot is közzé tud tenni több névvel. Anamebillentyű 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.
- A jegyzék
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
A Cloud Shellben a
kubectl applyparanccsal küldje el az üzembe helyezési nyilvántartást a fürtre.kubectl apply -f ./deployment.yamlA parancs kimenete a következő példához hasonlót eredményez.
deployment.apps/contoso-website createdA
kubectl get deployparanccsal ellenőrizze, hogy sikeres volt-e az üzembe helyezés.kubectl get deploy contoso-websiteA 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 19sA
kubectl get podsparancs futtatásával ellenőrizze, hogy fut-e a pod.kubectl get podsA 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