Gyakorlat – Az Azure DevOps-környezet beállítása
Ebben a szakaszban úgy konfigurálja az Azure DevOps-szervezetet, hogy folytassa a modul többi részét, és hozzon létre egy Azure Kubernetes Service-környezetet (AKS) az alkalmazás üzembe helyezéséhez.
E célok elérése érdekében a következőkre lesz szüksége:
- Adjon hozzá egy felhasználót az Azure DevOps-szervezethez.
- Állítsa be az Azure DevOps-projektet.
- A munkafolyamat kezelése az Azure Boards használatával.
- Azure-erőforrások létrehozása az Azure CLI használatával.
- Folyamatváltozók létrehozása az Azure Pipelinesban.
- Szolgáltatáskapcsolat létrehozása az Azure-ral való hitelesítéshez.
- Frissítse a Kubernetes üzembehelyezési jegyzékét.
Felhasználó hozzáadása a szervezethez
A modul elvégzéséhez Azure-előfizetésre van szükség. Ingyenesen használhatja az Azure-t.
Bár nem szükséges az Azure DevOps használatához, azure-előfizetésre van szükség az Azure-erőforrások Azure DevOpson keresztüli üzembe helyezéséhez. A folyamat egyszerűbbé tétele érdekében ugyanazzal a Microsoft-fiókkal jelentkezzen be az Azure-előfizetésbe és az Azure DevOps-szervezetbe is.
Ha különböző Microsoft-fiókokkal jelentkezik be az Azure-ba és az Azure DevOpsba, továbbra is hozzáadhat egy felhasználót a DevOps-szervezethez az Azure-előfizetéséhez társított Microsoft-fiók alatt. További részletekért lásd: Felhasználók hozzáadása a szervezethez vagy projekthez . A felhasználó hozzáadásakor válassza az Alapszintű hozzáférési szintet.
Miután hozzáadta a felhasználót alapszintű hozzáférési szinttel, jelentkezzen ki az Azure DevOpsból, és jelentkezzen be újra az Azure-előfizetéséhez társított Microsoft-fiókkal.
Az Azure DevOps-projekt lekérése
Ebben a szakaszban egy sablont futtat, amely létrehozza a projektet az Azure DevOpsban.
A sablon futtatása
Futtassa a sablont az Azure DevOps-projekt beállításához ehhez a modulhoz:
Az Azure DevOps Demo Generator portálon az alábbi lépéseket követve futtassa a sablont:
Válassza a Bejelentkezés lehetőséget, és fogadja el a használati feltételeket.
Az Új projekt létrehozása lapon válassza ki az Azure DevOps-szervezetet, és adjon meg egy projektnevet, például a Space Game – web – Kubernetes nevet.
Válassza az Igen lehetőséget, el szeretném elágaztetni ezt az adattárat, majd engedélyezni. Ha előugrik egy ablak, adjon engedélyt a GitHub-fiók elérésére.
Fontos
Ha ezt a lehetőséget választja, a sablonnak csatlakoznia kell a GitHub-adattárhoz. Akkor is válassza ki, ha már elágazott a Space Game-adattár , mivel a sablon a meglévő elágazását fogja használni.
Válassza a Projekt létrehozása lehetőséget, és várja meg, amíg a sablon fut, ami eltarthat néhány percig.
Válassza a Navigálás a projekthez lehetőséget a projekthez való hozzáféréshez az Azure DevOpsban.
Fontos
Ebben a modulban az Azure DevOps-környezet megtisztítása egység alapvető lépéseket tartalmaz a törléshez. Ezeket a lépéseket ajánlott elvégezni, hogy ne fogyjon el az ingyenes buildelési percek száma. Még ha nem is fejezi be ezt a modult, fontos, hogy kövesse a törlési lépéseket.
A projekt láthatóságának beállítása
Kezdetben a GitHubon a Space Game-adattár elágazása nyilvánosra van állítva, míg az Azure DevOps-sablon által létrehozott projekt privátra van állítva. A GitHub nyilvános adattárát bárki elérheti, míg egy privát adattár csak Ön és az Ön által megosztott személyek számára érhető el. Hasonlóképpen, az Azure DevOpsban a nyilvános projektek írásvédett hozzáférést biztosítanak a nem hitelesített felhasználók számára, míg a privát projektekhez hozzáférést és hitelesítést kell biztosítani a felhasználóknak a szolgáltatások eléréséhez.
Jelenleg nem szükséges ezen beállítások egyikét sem módosítani a modul céljaira. Személyes projektjei esetében azonban meg kell határoznia, hogy milyen láthatóságot és hozzáférést kíván biztosítani másoknak. Ha például a projekt nyílt forráskód, dönthet úgy, hogy a GitHub-adattárat és az Azure DevOps-projektet is nyilvánossá teszi. Ha a projekt védett, általában a GitHub-adattárat és az Azure DevOps-projektet is magánjellegűvé tenné.
Később a következő erőforrásokat hasznosnak találhatja annak meghatározásához, hogy melyik lehetőség a legjobb a projekt számára:
- Magán- és nyilvános projektek használata
- Rövid útmutató: Privát projekt nyilvánossá tétele
- Az adattár láthatóságának beállítása
A munkaelem áthelyezése Doing (Folyamatban) állapotba
Ebben a lépésben saját magának rendel hozzá egy munkaelemet az Azure Boardsban, és áthelyezi a Feladat állapotba. Valós helyzetekben Ön és csapata az egyes futamok vagy munka iterációk elején hozna létre munkaelemeket.
A munkaelemek hozzárendelése egy ellenőrzőlistát biztosít, amelyből dolgozhat, és más csapattagok számára is átláthatóvá teszi az előrehaladást és a hátralévő munkát. Emellett segít kikényszeríteni a folyamatban lévő munka (WIP) korlátait, hogy a csapat egyszerre ne vállaljon túl sok munkát.
Navigáljon az Azure DevOps tábláihoz , majd válassza a Táblák lehetőséget a menüből.
Rendelje hozzá saját magához a Kubernetes-munkaelemekkel vezényelt webhely többtárolós verziójának létrehozását a kártya alján található lefelé mutató nyíl kiválasztásával.
Húzza a munkaelemet a Teendő oszlopból a Feladat oszlopba. A modul befejezése után áthelyezi a feladatot a Kész oszlopba.
Az Azure Kubernetes Service-környezet létrehozása
Ebben a lépésben hozza létre a szükséges Azure Kubernetes Service-erőforrásokat a webhely új tárolóverziójának üzembe helyezéséhez.
Az előző modulban egy kiadási folyamat létrehozása az Azure Pipelines használatával, az Azure Portal használatával hozta létre az Azure-erőforrásokat. Bár a portál hasznos az Azure képességeinek megismeréséhez és az alapvető feladatok elvégzéséhez, az olyan összetevők létrehozása, mint az Azure Kubernetes Service, időigényes folyamat lehet.
Ebben a modulban az Azure CLI használatával hozza létre az alkalmazás Azure Kubernetes Service-ben való üzembe helyezéséhez és futtatásához szükséges erőforrásokat. Az Azure CLI egy terminálról vagy a Visual Studio Code-on keresztül érhető el. Ebben a modulban azonban az Azure CLI-t az Azure Cloud Shellből érheti el. A Cloud Shell a felhőben üzemeltetett böngészőalapú rendszerhéj-felület, amely előre konfigurálva van az Azure CLI-vel az Azure-előfizetéshez való használatra.
Fontos
A modul gyakorlatainak elvégzéséhez saját Azure-előfizetésre van szüksége.
A Cloud Shell indítása
Válassza a Cloud Shell lehetőséget a menüből, majd válassza ki a Bash-felületet , amikor a rendszer kéri.
Feljegyzés
A Cloud Shellhez egy Azure Storage-erőforrás szükséges a Cloud Shellben létrehozott fájlok megőrzéséhez. A Cloud Shell első megnyitásakor a rendszer kérni fogja, hogy hozzon létre egy erőforráscsoportot, tárfiókot és Azure Files-megosztást. Ezt a beállítást a rendszer automatikusan használja az összes jövőbeli Cloud Shell-munkamenethez.
Azure-régió kiválasztása
A régió egy vagy több, földrajzi területen található Azure-adatközpontra utal. Ilyen területek például az USA keleti régiója, az USA nyugati régiója és Észak-Európa. Minden Azure-erőforrás, beleértve az App Service-példányt is, egy régióhoz van társítva.
A parancsok végrehajtásának leegyszerűsítéséhez először állítsunk be egy alapértelmezett régiót. Az alapértelmezett régió beállítása után a következő parancsok alapértelmezés szerint ezt a régiót használják, hacsak nem ad meg explicit módon egy másik régiót.
A Cloud Shellben futtassa a következő parancsot az Azure-előfizetésben elérhető régiók listázásához:
az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output table
Válasszon ki egy régiót a kimenet Név oszlopából, amely földrajzilag közel van Önhöz. Választhatja például az eastasia vagy a westus2 lehetőséget.
Futtassa az alábbi parancsot az alapértelmezett régió beállításához. Cserélje le a RÉGIÓt a korábban kiválasztott régió nevére.
az configure --defaults location=<REGION>
Ez a példa alapértelmezett régióként van beállítva
westus2
.az configure --defaults location=westus2
Bash-változók létrehozása
A Bash-változók használatával a beállítási folyamat kényelmesebb és kevésbé hibalehetőséget biztosít. Ez a megközelítés segít elkerülni a véletlen elírásokat, ha a megosztott szöveges sztringeket változóként definiálja, amelyek a szkriptben használhatók.
A Cloud Shellből hozzon létre egy véletlenszerű számot, hogy leegyszerűsítse bizonyos szolgáltatások globálisan egyedi nevének létrehozását a következő lépésben.
resourceSuffix=$RANDOM
Globálisan egyedi neveket hozhat létre az Azure Container Registry és az Azure Kubernetes Service-példány számára. Vegye figyelembe, hogy ezek a parancsok dupla idézőjeleket használnak, amelyek arra utasítják a Basht, hogy interpolálja a változókat a beágyazott szintaxis használatával.
registryName="tailspinspacegame${resourceSuffix}" aksName="tailspinspacegame-${resourceSuffix}"
Hozzon létre egy másik Bash-változót az erőforráscsoport nevének tárolásához.
rgName='tailspin-space-game-rg'
Keresse meg a legújabb AKS-verziót.
az aks get-versions
Jegyezze fel a legújabb verziót.
Azure-erőforrások létrehozása
Feljegyzés
Ebben az oktatóanyagban az alapértelmezett hálózati beállításokat a rendszer tanulási célokra használja. Ezek a beállítások lehetővé teszik a webhely internetről való elérését. A gyakorlatban azonban úgy is dönthet, hogy olyan Azure-beli virtuális hálózatot konfigurál, amely a webhelyet olyan hálózatba helyezi, amely nem internet-elérhető, és csak Ön és csapata számára érhető el. Később újrakonfigurálhatja a hálózatot, hogy elérhetővé tegye a webhelyet a felhasználók számára.
Futtassa a következő parancsot egy korábban definiált nevű erőforráscsoport létrehozásához:
az group create --name $rgName
Futtassa a
az acr create
parancsot egy Korábban definiált névvel rendelkező Azure Container Registry létrehozásához:az acr create \ --name $registryName \ --resource-group $rgName \ --sku Standard
Futtassa a
az aks create
parancsot egy AKS-példány létrehozásához a korábban definiált névvel. Cserélje le<latest-AKS-version>
a korábban feljegyzett verzióra.az aks create \ --name $aksName \ --resource-group $rgName \ --enable-addons monitoring \ --kubernetes-version <latest-AKS-version> \ --generate-ssh-keys
Feljegyzés
Az AKS üzembe helyezésének befejezése 10–15 percet vehet igénybe.
Hozzon létre egy változót az AKS-példányhoz konfigurált szolgáltatásnév azonosítójának tárolásához:
clientId=$(az aks show \ --resource-group $rgName \ --name $aksName \ --query "identityProfile.kubeletidentity.clientId" \ --output tsv)
Hozzon létre egy változót az Azure Container Registry azonosítójának tárolásához:
acrId=$(az acr show \ --name $registryName \ --resource-group $rgName \ --query "id" \ --output tsv)
Futtassa a
az acr list
parancsot az Azure Container Registry (ACR) példány bejelentkezési kiszolgálójának URL-címének lekéréséhez:az acr list \ --resource-group $rgName \ --query "[].{loginServer: loginServer}" \ --output table
Jegyezze fel a tárolóregisztrációs adatbázis bejelentkezési kiszolgálóját. A folyamat konfigurálásakor később szüksége lesz ezekre az információkra. Példa:
LoginServer -------------------------------- tailspinspacegame4692.azurecr.io
Futtassa a
az role assignment create
parancsot egy szerepkör-hozzárendelés létrehozásához, amely engedélyezi az AKS-fürt számára az Azure Container Registryhez való csatlakozást:az role assignment create \ --assignee $clientId \ --role AcrPull \ --scope $acrId
Fontos
Ebben a modulban az Azure DevOps-környezet megtisztítása egység alapvető lépéseket tartalmaz a törléshez. Ezeket a lépéseket ajánlott elvégezni, hogy ne fogyjon el az ingyenes buildelési percek száma. Még ha nem is fejezi be ezt a modult, fontos, hogy kövesse a törlési lépéseket.
Változócsoport létrehozása
Ebben a szakaszban egy változót fog hozzáadni a folyamathoz az Azure Container Registry nevének tárolásához. Az Azure Container Registry-példány nevének definiálása változóként a folyamatkonfigurációban ajánlott a kemény kódolással. Így a konfiguráció újrafelhasználhatóbbá válik, és ha a példány neve megváltozik, egyszerűen frissítheti a változót, és anélkül aktiválhatja a folyamatot, hogy módosítania kellene a konfigurációt.
Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.
Válassza a Folyamatok lehetőséget, majd a bal oldali navigációs panelen válassza a Tár lehetőséget.
Válassza a Változócsoportok lehetőséget, majd válassza a + Változó csoport lehetőséget egy új változócsoport hozzáadásához.
A Tulajdonságok szakaszban adja meg a változócsoport nevének Kiadását.
A Változók szakaszban válassza a Hozzáadás lehetőséget.
Írja be a Beállításjegyzéknevet a változó nevéhez, az értékhez pedig adja meg az Azure Container Registry bejelentkezési kiszolgálóját, például tailspinspacegame4692.azurecr.io.
A lap tetején válassza a Mentés lehetőséget a folyamatváltozó mentéséhez. Ez egy példa arra, hogyan nézhet ki a változócsoport
Szolgáltatáskapcsolatok létrehozása
A következő lépés olyan szolgáltatáskapcsolatok létrehozása, amelyek lehetővé teszik az Azure Pipelines számára az Azure Container Registry és az Azure Kubernetes Service-példányok elérését. A szolgáltatáskapcsolatok létrehozásával az Azure Pipelines leküldheti a tárolókat, és utasíthatja az AKS-fürtöt, hogy kérje le őket az üzembe helyezett szolgáltatás frissítéséhez.
Fontos
Győződjön meg arról, hogy ugyanazzal a Microsoft-fiókkal jelentkezett be az Azure Portalra és az Azure DevOpsba.
Docker Registry-szolgáltatáskapcsolat létrehozása
Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.
Válassza a Projektbeállítások lehetőséget a lap alsó sarkában.
Válassza ki a Szolgáltatáskapcsolatok lehetőséget a Folyamatok szakaszban.
Válassza az Új szolgáltatáskapcsolat, majd a Docker Registry, majd a Tovább gombot.
A lap tetején válassza az Azure Container Registryt, majd a hitelesítés típusához válassza a Szolgáltatásnév lehetőséget.
Minden beállításhoz adja meg a következő értékeket:
Beállítás Érték Előfizetés Az Azure-előfizetése Azure Container Registry Válassza ki a korábban létrehozottat Szolgáltatáskapcsolat neve Tárolóregisztrációs adatbázis Csatlakozás ion Győződjön meg arról, hogy az összes folyamat hozzáférési engedélyének megadása jelölőnégyzet be van jelölve.
Ha végzett, válassza a Mentés lehetőséget.
ARM-szolgáltatáskapcsolat létrehozása
Most létre fog hozni egy Azure Resource Manager-szolgáltatáskapcsolatot az AKS-fürttel való hitelesítéshez. A Kubernetes helyett ARM-szolgáltatáskapcsolatot használunk, mert a hosszú élettartamú jogkivonatok alapértelmezés szerint nem jönnek létre a Kubernetes 1.24 óta. További részletekért tekintse meg ezt a DevOps-blogbejegyzést: Szolgáltatás Csatlakozás ion-útmutató Kubernetes-feladatokat használó AKS-ügyfeleknek.
Válassza az Új szolgáltatáskapcsolat lehetőséget, válassza az Azure Resource Managert, majd a Tovább lehetőséget.
Válassza a Szolgáltatásnév (automatikus) lehetőséget, majd a Tovább gombot.
Válassza az Előfizetés lehetőséget a hatókörszinthez.
Minden beállításhoz adja meg a következő értékeket.
Beállítás Érték Előfizetés Az Azure-előfizetése Erőforráscsoport Válassza ki a korábban létrehozottat Szolgáltatáskapcsolat neve Kubernetes-fürt Csatlakozás ion Győződjön meg arról, hogy az összes folyamat hozzáférési engedélyének megadása jelölőnégyzet be van jelölve.
Ha végzett, válassza a Mentés lehetőséget.
Folyamatkörnyezet létrehozása
Válassza a Folyamatok, majd a Környezetek lehetőséget.
Új környezet létrehozásához válassza a Környezet létrehozása lehetőséget.
A Név mezőbe írja be a Dev nevet.
Válassza a Nincs lehetőséget az Erőforrás szakaszban, majd válassza a Létrehozás lehetőséget a folyamatkörnyezet létrehozásához.
A Kubernetes üzembehelyezési jegyzékének frissítése
Ebben a szakaszban frissítenie kell a Kubernetes-jegyzék deployment.yml , hogy a korábban létrehozott tárolóregisztrációs adatbázisra mutasson.
Lépjen a GitHub-fiókjához, és válassza ki a modulhoz elágaztatott adattárat: mslearn-tailspin-spacegame-web-kubernetes.
Nyissa meg a jegyzékfájlt/deployment.yml fájlt szerkesztési módban.
Módosítsa a tárolólemezkép-hivatkozásokat az ACR bejelentkezési kiszolgáló használatára. Az alábbi jegyzék tailspinspacegame2439.azurecr.io használ példaként.
apiVersion : apps/v1 kind: Deployment metadata: name: web spec: replicas: 1 selector: matchLabels: app: web template: metadata: labels: app: web spec: containers: - name: web image: tailspinspacegame4692.azurecr.io/web ports: - containerPort: 80 apiVersion : apps/v1 kind: Deployment metadata: name: leaderboard spec: replicas: 1 selector: matchLabels: app: leaderboard template: metadata: labels: app: leaderboard spec: containers: - name: leaderboard image: tailspinspacegame4692.azurecr.io/leaderboard ports: - containerPort: 80
Véglegesítse az ág módosításait
main
.