Cvičení – nastavení prostředí Azure DevOps
V této části nakonfigurujete organizaci Azure DevOps tak, aby pokračovala ve zbývající části tohoto modulu, a vytvoříte prostředí Azure Kubernetes Service (AKS) pro nasazení aplikace.
Abyste dosáhli těchto cílů, budete:
- Přidejte uživatele do vaší organizace Azure DevOps.
- Nastavte projekt Azure DevOps.
- Spravujte pracovní postup pomocí Azure Boards.
- Vytváření prostředků Azure pomocí Azure CLI
- Vytvořte proměnné kanálu v Azure Pipelines.
- Vytvořte připojení ke službě a ověřte se v Azure.
- Aktualizujte manifest nasazení Kubernetes.
Přidání uživatele do organizace
K dokončení tohoto modulu se vyžaduje předplatné Azure. S Azure můžete začít zdarma.
I když není nutné pracovat s Azure DevOps, předplatné Azure je nezbytné k nasazení do prostředků Azure prostřednictvím Azure DevOps. Pokud chcete proces usnadnit, přihlaste se ke svému předplatnému Azure i k organizaci Azure DevOps pomocí stejného účtu Microsoft.
Pokud se přihlásíte k Azure a Azure DevOps pomocí různých účtů Microsoft, můžete pokračovat přidáním uživatele do vaší organizace DevOps pod účtem Microsoft přidruženým k vašemu předplatnému Azure. Další podrobnosti najdete v tématu Přidání uživatelů do organizace nebo projektu . Při přidávání uživatele vyberte úroveň základního přístupu.
Po přidání uživatele s úrovní základního přístupu se odhlaste z Azure DevOps a znovu se přihlaste pomocí účtu Microsoft přidruženého k vašemu předplatnému Azure.
Získání projektu Azure DevOps
V této části spustíte šablonu pro vytvoření projektu v Azure DevOps.
Spustit šablonu
Spuštěním šablony nastavte projekt Azure DevOps pro tento modul:
Na portálu Azure DevOps Demo Generator spusťte šablonu pomocí následujícího postupu:
Vyberte Přihlásit se a odsouhlaste podmínky použití.
Na stránce Vytvořit nový projekt vyberte svoji organizaci Azure DevOps a zadejte název projektu, například Space Game – web – Kubernetes.
Vyberte Ano, chci vytvořit fork tohoto úložiště a pak autorizovat. Pokud se zobrazí okno, udělte oprávnění pro přístup k vašemu účtu GitHub.
Důležité
Výběrem této možnosti je potřeba, aby se šablona připojila k úložišti GitHub. Zvolte ho, i když jste už vytvořili fork úložiště Space Game , protože šablona bude používat váš stávající fork.
Vyberte Vytvořit projekt a počkejte, až se šablona dokončí, což může trvat několik minut.
Výběrem možnosti Přejít k projektu získáte přístup k projektu v Azure DevOps.
Důležité
Lekce Vyčištění prostředí Azure DevOps v tomto modulu zahrnuje zásadní kroky pro vyčištění. Doporučujeme provést tyto kroky, abyste se vyhnuli volnému počtu minut sestavení. I když tento modul nedokončíte, je důležité postupovat podle kroků čištění.
Nastavení viditelnosti projektu
Na začátku je váš fork úložiště Space Game na GitHubu nastavený na veřejný, zatímco projekt vytvořený šablonou Azure DevOps je nastavený na privátní. K veřejnému úložišti na GitHubu může přistupovat kdokoli, zatímco soukromé úložiště je přístupné jenom vám a lidem, se kterými ho chcete sdílet. Podobně veřejné projekty v Azure DevOps poskytují přístup jen pro čtení neověřených uživatelům, zatímco soukromé projekty vyžadují, aby měli uživatelé udělený přístup a ověřili přístup ke službám.
V tuto chvíli není nutné upravovat žádná z těchto nastavení pro účely tohoto modulu. U vašich osobních projektů však musíte určit viditelnost a přístup, který chcete udělit ostatním. Pokud je váš projekt například opensourcový, můžete se rozhodnout, že své úložiště GitHub i projekt Azure DevOps zveřejníte. Pokud je váš projekt proprietární, obvykle byste své úložiště GitHub i projekt Azure DevOps mohli nastavit jako soukromé.
Později můžete najít následující zdroje informací, které vám pomůžou určit, která možnost je pro váš projekt nejvhodnější:
- Použití soukromých a veřejných projektů
- Rychlý start: Nastavení privátního projektu jako veřejného
- Nastavení viditelnosti úložiště
Přesunutí pracovní položky do stavu Doing (Probíhá)
V tomto kroku přiřadíte pracovní položku sami sobě v Azure Boards a přesunete ji do stavu Probíhá . V reálných scénářích byste vy a váš tým vytvořili pracovní položky na začátku každého sprintu nebo iterace práce.
Přiřazení pracovních položek vám poskytne kontrolní seznam, ze kterého můžete pracovat, a ostatním členům týmu poskytne přehled o průběhu a zbývající práci. Pomáhá také vynucovat limity probíhající práce (WIP), aby se týmu zabránilo v tom, aby najednou převzal příliš mnoho práce.
Přejděte na Boards v Azure DevOps a pak v nabídce vyberte Boards .
Přiřaďte sobě pracovní položku Vytvořit vícekontenerovou verzi webu orchestrovanou pomocí pracovní položky Kubernetes tak, že vyberete šipku dolů umístěnou v dolní části karty.
Přetáhněte pracovní položku ze sloupce Úkolů do sloupce Probíhá . Úkol přesunete na konec tohoto modulu na konec tohoto modulu.
Vytvoření prostředí Azure Kubernetes Service
V tomto kroku vytvoříte potřebné prostředky služby Azure Kubernetes Service k nasazení nové verze kontejneru webu.
V předchozím modulu vytvořte kanál verze s Azure Pipelines a pomocí webu Azure Portal jste vytvořili prostředky Azure. I když je portál užitečný pro zkoumání možností Azure a provádění základních úloh, vytváření komponent, jako je Azure Kubernetes Service, může být časově náročný proces.
V tomto modulu pomocí Azure CLI vytvoříte prostředky potřebné k nasazení a spuštění aplikace ve službě Azure Kubernetes Service. Azure CLI je možné získat přístup z terminálu nebo přes Visual Studio Code. V tomto modulu ale přistupujete k Azure CLI z Azure Cloud Shellu. Cloud Shell je prostředí založené na prohlížeči hostované v cloudu, které je předem nakonfigurované pomocí Azure CLI pro použití s vaším předplatným Azure.
Důležité
K dokončení cvičení v tomto modulu potřebujete vlastní předplatné Azure.
Spustit Cloud Shell
Přejděte na Web Azure Portal a přihlaste se.
V nabídce vyberte možnost Cloud Shell a po zobrazení výzvy zvolte prostředí Bash .
Poznámka:
Cloud Shell vyžaduje, aby prostředek úložiště Azure uchovával všechny soubory, které vytvoříte v Cloud Shellu. Při prvním otevření Cloud Shellu se zobrazí výzva k vytvoření skupiny prostředků, účtu úložiště a sdílené složky Azure Files. Toto nastavení se automaticky použije pro všechny budoucí relace Cloud Shellu.
Výběr oblasti Azure
Oblast odkazuje na jedno nebo více datacenter Azure umístěných v geografické oblasti. Příkladem takových oblastí jsou oblasti, jako jsou USA – východ, USA – západ a Severní Evropa. Každý prostředek Azure, včetně instance služby App Service, je přidružený k oblasti.
Pokud chcete zjednodušit provádění příkazů, začněte nastavením výchozí oblasti. Jakmile nastavíte výchozí oblast, následující příkazy tuto oblast ve výchozím nastavení použijí, pokud explicitně nezadáte jinou oblast.
Spuštěním následujícího příkazu v Cloud Shellu zobrazte seznam oblastí dostupných ve vašem předplatném Azure:
az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output table
Ve výstupu, který je geograficky blízko vás, vyberte oblast ze sloupce Název. Můžete například zvolit eastasia nebo westus2.
Spuštěním následujícího příkazu nastavte výchozí oblast. Oblast nahraďte názvem oblasti, kterou jste zvolili dříve.
az configure --defaults location=<REGION>
Tento příklad nastaví
westus2
jako výchozí oblast.az configure --defaults location=westus2
Vytvoření proměnných Bash
Použití proměnných Bash může usnadnit proces instalace a méně náchylný k chybám. Tento přístup pomáhá vyhnout se náhodným překlepům definováním sdílených textových řetězců jako proměnných, které je možné použít ve vašem skriptu.
V Cloud Shellu vygenerujte náhodné číslo, které v dalším kroku zjednodušuje vytváření globálně jedinečných názvů pro určité služby.
resourceSuffix=$RANDOM
Vytvořte globálně jedinečné názvy pro vaši instanci služby Azure Container Registry a Azure Kubernetes Service. Všimněte si, že tyto příkazy používají dvojité uvozovky, které Bash dávají Bash pokyn k interpolaci proměnných pomocí vložené syntaxe.
registryName="tailspinspacegame${resourceSuffix}" aksName="tailspinspacegame-${resourceSuffix}"
Vytvořte další proměnnou Bash pro uložení názvu vaší skupiny prostředků.
rgName='tailspin-space-game-rg'
Vyhledejte nejnovější verzi AKS.
az aks get-versions
Poznamenejte si nejnovější verzi.
Vytvoření zdrojů Azure
Poznámka:
V tomto kurzu se pro účely výuky používají výchozí nastavení sítě. Tato nastavení umožňují přístup k vašemu webu z internetu. V praxi se ale můžete rozhodnout nakonfigurovat virtuální síť Azure, která umístí váš web do sítě, která není směrovatelná internetem a je přístupná jenom vámi a vaším týmem. Později můžete síť překonfigurovat tak, aby byl web dostupný uživatelům.
Spuštěním následujícího příkazu vytvořte skupinu prostředků s názvem, který jste definovali dříve:
az group create --name $rgName
Spuštěním
az acr create
příkazu vytvořte službu Azure Container Registry s názvem, který jste definovali dříve:az acr create \ --name $registryName \ --resource-group $rgName \ --sku Standard
Spuštěním
az aks create
příkazu vytvořte instanci AKS s názvem, který jste definovali dříve. Nahraďte<latest-AKS-version>
verzí, kterou jste si poznamenali dříve.az aks create \ --name $aksName \ --resource-group $rgName \ --enable-addons monitoring \ --kubernetes-version <latest-AKS-version> \ --generate-ssh-keys
Poznámka:
Dokončení nasazení AKS může trvat 10 až 15 minut.
Vytvořte proměnnou pro uložení ID instančního objektu nakonfigurovaného pro instanci AKS:
clientId=$(az aks show \ --resource-group $rgName \ --name $aksName \ --query "identityProfile.kubeletidentity.clientId" \ --output tsv)
Vytvořte proměnnou pro uložení ID služby Azure Container Registry:
acrId=$(az acr show \ --name $registryName \ --resource-group $rgName \ --query "id" \ --output tsv)
Spuštěním
az acr list
příkazu načtěte adresu URL přihlašovacího serveru pro instanci služby Azure Container Registry (ACR):az acr list \ --resource-group $rgName \ --query "[].{loginServer: loginServer}" \ --output table
Nezapomeňte si pro registr kontejneru poznamenat přihlašovací server. Tyto informace budete potřebovat později při konfiguraci kanálu. Tady je příklad:
LoginServer -------------------------------- tailspinspacegame4692.azurecr.io
Spuštěním
az role assignment create
příkazu vytvořte přiřazení role pro autorizaci clusteru AKS pro připojení ke službě Azure Container Registry:az role assignment create \ --assignee $clientId \ --role AcrPull \ --scope $acrId
Důležité
Lekce Vyčištění prostředí Azure DevOps v tomto modulu zahrnuje zásadní kroky pro vyčištění. Doporučujeme provést tyto kroky, abyste se vyhnuli volnému počtu minut sestavení. I když tento modul nedokončíte, je důležité postupovat podle kroků čištění.
Vytvoření skupiny proměnných
V této části přidáte do kanálu proměnnou pro uložení názvu služby Azure Container Registry. Definování názvu instance služby Azure Container Registry jako proměnné v konfiguraci kanálu se doporučuje před pevným kódováním. Díky tomu je konfigurace opakovaně použitelná a v případě změn instance můžete snadno aktualizovat proměnnou a aktivovat kanál, aniž byste museli měnit konfiguraci.
Přihlaste se ke své organizaci Azure DevOps a přejděte k projektu.
Vyberte Kanály a pak v levém navigačním podokně vyberte Knihovna .
Vyberte skupiny proměnných a pak vyberte + Skupina proměnných a přidejte novou skupinu proměnných.
V části Vlastnosti zadejte release pro název skupiny proměnných.
V části Proměnné vyberte Přidat.
Zadejte Název registru pro název proměnné a jako hodnotu zadejte přihlašovací server služby Azure Container Registry, například tailspinspacegame4692.azurecr.io.
V horní části stránky vyberte Uložit a uložte proměnnou kanálu. Toto je příklad toho, jak může vaše skupina proměnných vypadat.
Vytvoření připojení služeb
Dalším krokem je vytvoření připojení služeb, která službě Azure Pipelines umožní přístup k vašim instancím služby Azure Container Registry a Azure Kubernetes Service. Vytvořením těchto připojení služeb může Azure Pipelines odesílat kontejnery a instruovat cluster AKS, aby je načítá, aby aktualizoval nasazenou službu.
Důležité
Ujistěte se, že jste přihlášení k webu Azure Portal a Azure DevOps pomocí stejného účtu Microsoft.
Vytvoření připojení služby Registru Dockeru
Přihlaste se ke své organizaci Azure DevOps a přejděte k projektu.
V dolním rohu stránky vyberte nastavení projektu.
V části Pipelines (Kanály) vyberte připojeníslužby.
Vyberte Nové připojení služby, pak vyberte Registr Dockeru a pak vyberte Další.
V horní části stránky vyberte Azure Container Registry a pak jako typ ověřování vyberte Instanční objekt .
Pro každé nastavení zadejte následující hodnoty:
Nastavení Hodnota Předplatné Vaše předplatné Azure. Azure Container Registry Vyberte ten, který jste vytvořili dříve. Název připojení služby Připojení container Registry Ujistěte se, že je zaškrtnuté políčko Udělit přístup všem kanálům .
Až budete hotovi, zvolte tlačítko Uložit.
Vytvoření připojení služby ARM
Teď vytvoříte připojení služby Azure Resource Manager k ověření pomocí clusteru AKS. Místo Kubernetes používáme připojení služby ARM, protože dlouhodobé tokeny se už od Kubernetes 1.24 nevytvořily ve výchozím nastavení. Další podrobnosti najdete v tomto blogovém příspěvku DevOps: Pokyny pro Připojení služby pro zákazníky AKS, kteří používají úlohy Kubernetes.
Vyberte Nové připojení služby, vyberte Azure Resource Manager a pak vyberte Další.
Vyberte Instanční objekt (automatický) a pak vyberte Další.
Vyberte Předplatné pro úroveň rozsahu.
Pro každé nastavení zadejte následující hodnoty.
Nastavení Hodnota Předplatné Vaše předplatné Azure. Skupina prostředků Vyberte ten, který jste vytvořili dříve. Název připojení služby Připojení clusteru Kubernetes Ujistěte se, že je zaškrtnuté políčko Udělit přístup všem kanálům .
Až budete hotovi, zvolte tlačítko Uložit.
Vytvoření prostředí kanálu
Vyberte Kanály a pak vyberte Prostředí.
Vyberte Vytvořit prostředí a vytvořte nové prostředí.
Do pole Název zadejte Dev.
V části Prostředek vyberte Žádné a pak vyberte Vytvořit a vytvořte prostředí kanálu.
Aktualizace manifestu nasazení Kubernetes
V této části aktualizujete manifest Kubernetes deployment.yml tak, aby odkazovat na registr kontejneru, který jste vytvořili dříve.
Přejděte ke svému účtu GitHub a vyberte úložiště, které jste pro tento modul rozvětvovali: mslearn-tailspin-spacegame-web-kubernetes.
Otevřete soubor manifestů/deployment.yml v režimu úprav.
Změňte odkazy na image kontejneru tak, aby používaly přihlašovací server ACR. Následující manifest používá jako příklad tailspinspacegame2439.azurecr.io .
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
Potvrďte změny ve vaší
main
větvi.