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é pipeline 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
Spusťte šablonu, která nastaví vaši organizaci Azure DevOps.
Důležitý
Azure DevOps Demo Generator se už nepodporuje, ale můžete ho použít k vytváření ukázkových prostředí. V současné době není k dispozici žádná náhrada a její funkce nebo dostupnost se můžou po cestě změnit.
Získejte a spusťte projekt ADOGenerator v sadě Visual Studio nebo integrovaném vývojovém prostředí podle vašeho výběru.
Po zobrazení výzvy k zadání čísla šablon ze seznamu šablon zadejte 40 pro automatizaci nasazení s více kontejnery do azure Kubernetes Services pomocí Azure Pipelines a stiskněte Enter.
Zvolte metodu ověřování. Můžete nastavit a použít token PAT (Personal Access Token) nebo použít přihlášení zařízení.
Poznámka
Pokud nastavíte PAT, nezapomeňte autorizovat potřebné obory. V tomto modulu můžete použít úplný přístup, ale v reálné situaci byste měli zajistit, abyste udělili pouze nezbytné obory.
Zadejte název vaší organizace Azure DevOps a stiskněte Enter.
Pokud se zobrazí výzva, zadejte azure DevOps PAT a stiskněte Enter.
Zadejte název projektu, například Space Game – web – Kubernetes, a stiskněte Enter.
Po vytvoření projektu přejděte do vaší organizace Azure DevOps v prohlížeči (na adrese
https://dev.azure.com/<your-organization-name>/) a vyberte projekt.
Rozvětvování úložiště
Pokud jste tak ještě neučinili, vytvořte kopii úložiště mslearn-tailspin-spacegame-web-kubernetes.
Na GitHubu přejděte do úložiště mslearn-tailspin-spacegame-web-kubernetes .
V pravém horním rohu obrazovky vyberte Fork .
Jako vlastníka zvolte svůj účet GitHub a pak vyberte Vytvořit fork.
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 vyčerpání volných 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í neověřeným uživatelům přístup pouze pro čtení, zatímco soukromé projekty vyžadují, aby uživatelé měli udělený přístup a byli ověřeni pro 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ů
- Změna viditelnosti projektu na veřejné nebo soukromé
- Nastavení viditelnosti úložiště
Přesuňte pracovní položku do fáze "Rozpracováno"
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 do sloupce Hotovo na konci tohoto modulu poté, co jej dokončíte.
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 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.
Spuštění Cloud Shellu
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 tableVe 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í
westus2jako výchozí oblast.az configure --defaults location=westus2
Vytvoření proměnných v Bashi
Použití proměnných Bash může usnadnit proces instalace a učinit jej méně náchylným 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=$RANDOMVytvoř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é dají Bash pokyn k interpolaci proměnných pomocí inline 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-versionsPoznamenejte si nejnovější verzi.
Vytvoření prostředků 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 $rgNameSpuštěním příkazu
az acr createvytvořte službu Azure Container Registry s názvem, který jste definovali dříve:az acr create \ --name $registryName \ --resource-group $rgName \ --sku StandardSpuštěním příkazu
az aks createvytvoř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-keysPoznámka
Dokončení nasazení AKS může trvat 10 až 15 minut.
Vytvořte proměnnou pro uložení ID služebního principálu konfigurovaného pro AKS instance.
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 příkazu
az acr listnač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 tableNezapomeň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.ioSpuštěním příkazu
az role assignment createvytvoř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 vyčerpání volných minut pro 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 potrubí proměnnou pro uložení názvu vašeho Azure Container Registry. Doporučuje se definovat název instance služby Azure Container Registry jako proměnnou v konfiguraci pipeline spíše než jej pevně kódovat. 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 Pipelines a pak v levém navigačním podokně zvolte 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.
Jako název proměnné zadejte Název registru 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řte 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 spojení služeb může Azure Pipelines odesílat kontejnery a instruovat cluster AKS, aby je načítal pro aktualizaci nasazené služby.
Důležitý
Ujistěte se, že jste přihlášení k webu Azure Portal a Azure DevOps pomocí stejného účtu Microsoft.
Vytvořte 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 vyberte Service connections.
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 Služba Principal.
Pro každé nastavení zadejte následující hodnoty:
Nastavení Hodnota Předplatné Vaše předplatné Azure Registr kontejnerů Azure Vyberte ten, který jste vytvořili dříve. Název připojení služby Připojení ke službě Container Registry Ujistěte se, že je zaškrtnuté políčko Udělit přístup všem kanálům .
Až budete hotovi, vyberte 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. Používáme připojení služby ARM místo Kubernetes, protože dlouhodobé tokeny již ve výchozím nastavení nejsou vytvářeny počínaje verzí Kubernetes 1.24. Další podrobnosti najdete v tomto blogovém příspěvku DevOps: Doprovodné materiály k připojení služeb 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 Service Principal (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í ke clusteru Kubernetes Ujistěte se, že je zaškrtnuté políčko Udělit přístup všem kanálům .
Až budete hotovi, vyberte Uložit .
Vytvoření prostředí pipeline
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 poté vyberte Vytvořit a vytvořte si prostředí plnicího potrubí.
Aktualizace manifestu nasazení Kubernetes
V této části aktualizujete manifest Kubernetes deployment.yml tak, aby odkazoval 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á tailspinspacegame2439.azurecr.io jako příklad.
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: 80Potvrďte změny ve větvi
main.