Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Služby Azure DevOps
Azure Pipelines můžete použít k automatickému nasazení do služby Azure Kubernetes Service (AKS). Azure Pipelines umožňuje sestavovat, testovat a nasazovat s využitím kontinuální integrace (CI) a průběžného doručování (CD) pomocí Azure DevOps.
V tomto článku se dozvíte, jak vytvořit kanál, který průběžně sestavuje a nasazuje vaši aplikaci. Při každé změně kódu v úložišti, které obsahuje soubor Dockerfile, se image nasdílí do služby Azure Container Registry a manifesty se pak nasadí do clusteru AKS.
Prerequisites
- Účet Azure s aktivním předplatným. Vytvořte si bezplatný účet.
- Připojení služby Azure Resource Manager. Vytvořte připojení služby Azure Resource Manager.
- Účet GitHubu. Pokud ho ještě nemáte, vytvořte si bezplatný účet GitHubu .
Získání kódu
Vytvořte fork následujícího úložiště obsahující ukázkovou aplikaci a soubor Dockerfile:
https://github.com/MicrosoftDocs/pipelines-javascript-docker
Vytvoření prostředků Azure
Přihlaste se k webu Azure Portal a pak vyberte tlačítko Cloud Shell v pravém horním rohu. K vytvoření clusteru AKS použijte Azure CLI nebo PowerShell.
Vytvoření registru kontejneru
# Create a resource group
az group create --name myapp-rg --location eastus
# Create a container registry
az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
# Create a Kubernetes cluster
az aks create \
--resource-group myapp-rg \
--name myapp \
--node-count 1 \
--enable-addons monitoring \
--generate-ssh-keys
Přihlášení ke službě Azure Pipelines
Přihlaste se ke službě Azure Pipelines. Po přihlášení přejde váš prohlížeč na https://dev.azure.com/my-organization-name řídicí panel Azure DevOps a zobrazí ho.
Ve vybrané organizaci vytvořte projekt. Pokud ve vaší organizaci nemáte žádné projekty, zobrazí se obrazovka Vytvořit projekt, který vám umožní začít . V opačném případě vyberte tlačítko Vytvořit projekt v pravém horním rohu řídicího panelu.
Vytvoř potrubí
Připojení a výběr úložiště
Přihlaste se ke své organizaci Azure DevOps a přejděte do svého projektu.
Přejděte na Kanály a pak vyberte Nový kanál.
Kroky průvodce proveďte tak, že nejprve vyberete GitHub jako umístění zdrojového kódu.
Můžete být přesměrováni na GitHub kvůli přihlášení. Pokud ano, zadejte svoje přihlašovací údaje GitHubu.
Až se zobrazí seznam úložišť, vyberte úložiště.
K instalaci aplikace Azure Pipelines můžete být přesměrováni na GitHub. Pokud ano, vyberte Schválit a nainstalovat.
Vyberte Nasadit do služby Azure Kubernetes Service.
Pokud se zobrazí výzva, vyberte předplatné, ve kterém jste vytvořili registr a cluster.
Vyberte
myappcluster.Jako prostor názvů vyberte Existující a pak vyberte výchozí.
Vyberte název registru kontejneru.
Název image můžete nechat nastavený na výchozí.
Nastavte port služby na 8080.
Nastavte zaškrtávací políčko Povolit kontrolní aplikaci pro žádosti o přijetí změn pro konfiguraci související s kontrolní aplikací, která bude zahrnuta do kanálu YAML automaticky vygenerovaného v následných krocích.
Vyberte Ověřit a nakonfigurovat.
Jakmile Azure Pipelines vytvoří váš kanál, proces bude:
Vytvořte připojení ke službě registrování Dockeru, které vaší pipeline umožní nahrání obrazů do vašeho registru kontejnerů.
Vytvořte prostředí a prostředek Kubernetes v rámci prostředí. V případě clusteru s podporou RBAC vytvořený prostředek Kubernetes implicitně vytvoří objekty ServiceAccount a RoleBinding v clusteru, aby vytvořený serviceAccount nemohl provádět operace mimo zvolený obor názvů.
Vygenerujte soubor azure-pipelines.yml , který definuje váš kanál.
Generování souborů manifestu Kubernetes Tyto soubory jsou generovány hydratací deployment.yml a service.yml šablon na základě vámi provedených výběrů. Až budete připraveni, vyberte Uložit a spustit.
Vyberte Uložit a spusťte.
Zprávu Potvrzení můžete změnit na něco jako přidat kanál do našeho úložiště. Až budete připraveni, vyberte Uložit a spustit pro uložení nového potrubí do úložiště a pak spusťte první běh vašeho nového potrubí!
Podívejte se na nasazení aplikace
Při spuštění kanálu sledujte, jak vaše fáze sestavení a pak fáze nasazení přecházejí z modré (spuštěné) na zelenou (dokončenou). Můžete vybrat fáze a úlohy a sledovat pipeline v akci.
Note
Pokud používáte agenta hostovaného Microsoftem, musíte do brány firewall přidat rozsah IP adres agenta hostovaného Microsoftem. Získejte týdenní seznam rozsahů IP adres z týdenního souboru JSON, který se publikuje každou středu. Nové rozsahy IP adres začnou platit následující pondělí. Další informace najdete v tématu Agenti hostovaní Microsoftem. Pokud chcete zjistit rozsahy IP adres vyžadované pro vaši organizaci Azure DevOps, zjistěte, jak identifikovat možné rozsahy IP adres pro agenty hostované Microsoftem.
Po dokončení spuštění kanálu prozkoumejte, co se událo, a pak se podívejte na vaši aplikaci, jak je nasazená. Ze souhrnu kanálu:
Vyberte kartu Prostředí.
Vyberte Zobrazit prostředí.
Vyberte instanci aplikace pro obor názvů, do kterého jste nasadili. Pokud jste použili výchozí hodnoty, pak se jedná o aplikaci myapp ve výchozím oboru názvů.
Vyberte kartu Služby .
Vyberte a zkopírujte externí IP adresu do schránky.
Otevřete novou kartu nebo okno prohlížeče a zadejte <IP adresu>:8080.
Pokud vytváříte naši ukázkovou aplikaci, zobrazí se v prohlížeči Hello World .
Jak se sestavuje pipeline
Po dokončení výběru možností a následném postupu k ověřování a konfiguraci, Azure Pipelines pro vás vytvořil kanál pomocí šablony Nasazení do služby Azure Kubernetes Service.
Fáze sestavení používá úlohu Dockeru k sestavení a nasdílení image do služby Azure Container Registry.
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build job
pool:
vmImage: $(vmImageName)
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
- task: PublishPipelineArtifact@1
inputs:
artifactName: 'manifests'
path: 'manifests'
Úloha nasazení používá úlohu manifestu Kubernetes k vytvoření imagePullSecret potřebných prostředků pro uzly clusteru Kubernetes, aby mohly stahovat z prostředku Azure Container Registry. Soubory manifestu jsou poté používány úlohou zpracování manifestů Kubernetes k nasazení do clusteru Kubernetes. Soubory manifestu service.yml a deployment.ymlpři použití šablony Deploy to Azure Kubernetes Service se vygenerovaly.
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
jobs:
- deployment: Deploy
displayName: Deploy job
pool:
vmImage: $(vmImageName)
environment: 'myenv.aksnamespace' #customize with your environment
strategy:
runOnce:
deploy:
steps:
- task: DownloadPipelineArtifact@2
inputs:
artifactName: 'manifests'
downloadPath: '$(System.ArtifactsDirectory)/manifests'
- task: KubernetesManifest@1
displayName: Create imagePullSecret
inputs:
action: 'createSecret'
connectionType: 'kubernetesServiceConnection'
kubernetesServiceConnection: 'myapp-default' #customize for your Kubernetes service connection
secretType: 'dockerRegistry'
secretName: '$(imagePullSecret)'
dockerRegistryEndpoint: '$(dockerRegistryServiceConnection)'
- task: KubernetesManifest@1
displayName: Deploy to Kubernetes cluster
inputs:
action: 'deploy'
connectionType: 'kubernetesServiceConnection'
kubernetesServiceConnection: 'myapp-default' #customize for your Kubernetes service connection
manifests: |
$(Pipeline.Workspace)/manifests/deployment.yml
$(Pipeline.Workspace)/manifests/service.yml
containers: '$(containerRegistry)/$(imageRepository):$(tag)'
imagePullSecrets: '$(imagePullSecret)'
Vyčistěte zdroje
Kdykoli budete hotovi s prostředky, které jste vytvořili, můžete je odstranit pomocí následujícího příkazu:
az group delete --name myapp-rg
Po zobrazení výzvy zadejte y .