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ň přístupu Basic.
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 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ěr této možnosti je nutný, aby se šablona mohla připojit k vašemu ú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.
Vyberte Přejděte na projekt pro 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 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í privátních a veřejných projektů
- Rychlý start : Nastavení privátního projektu jako veřejného
- Nastavení viditelnosti úložiště
Přesuňte pracovní položku do fáze "Rozpracováno"
V tomto kroku sobě přiřadíte pracovní položku na 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.
V Azure DevOps přejděte na Boards a pak v nabídce vyberte Boards.
Přiřaďte si pracovní položku Vytvořit vícekontenerovou verzi webu orchestrovanou pomocí Kubernetes vybráním šipky dolů umístěné v dolní části karty.
Přetáhněte pracovní položku ze sloupce K vyřízení do sloupce Probíhá. Úkol přesunete do sloupce Hotovo na konci tohoto modulu po jeho dokončení.
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ření kanálu verze pomocí služby Azure Pipelines, 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.
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 když se objeví výzva, 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. Nahraďte OBLAST 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 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=$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é 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-versions
Poznamenejte 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 $rgName
Spuštěním příkazu
az acr create
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 příkazu
az aks create
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 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 list
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 příkazu
az role assignment create
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 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 Pipelinea pak v levém navigačním podokně vyberte Knihovna.
Vyberte skupiny proměnnýcha pak vyberte + Skupina proměnných a přidejte novou skupinu proměnných.
V části Vlastnosti zadejte verze pro název skupiny proměnných.
V části Proměnné vyberte Přidat.
Jako název proměnné zadejte RegistryName 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 potrubí. 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.
Vyberte Připojení služby v části Potrubí.
Vyberte Nové připojení ke službě, pak vyberte Registr Dockeru, a pak vyberte Další.
V horní části stránky vyberte Azure Container Registrya pak jako typ ověřování vyberte Hlavní služba.
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 Container Registry Ujistěte se, že je zaškrtnuté políčko pro Udělit oprávnění k přístupu všem potrubí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: pokyny k připojení ke službě zákazníkům AKS, kteří používají úlohy Kubernetes.
Vyberte Nové připojení služby, vyberte Azure Resource Managera pak vyberte Další.
Vyberte Service Principal (automatický)a vyberte Další.
Vyberte předplatné úrovně 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 pro Udělit oprávnění k přístupu ke všem potrubím.
Jakmile dokončíte, vyberte Uložit.
Vytvoření prostředí pipeline
Vyberte Pipelinesa poté vyberte Prostředí.
Vyberte Vytvořit prostředí a vytvořte nové prostředí.
Do pole Název zadejte Dev.
V části Resource vyberte None a poté vyberte Create pro vytvoření prostředí pro váš pipeline.
Aktualizace manifestu nasazení Kubernetes
V této části aktualizujete manifest Kubernetes deployment.yml tak, aby odkazoval na kontejnerový registr, který jste vytvořili dříve.
Přejděte ke svému účtu GitHub a vyberte úložiště, které jste pro tento modul forkovali: 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: 80
Potvrďte změny ve větvi
main
.