Sdílet prostřednictvím


Nasazení kontejnerů v Azure

Tip

Tento obsah je výňatek z eBooku, Architekting Cloud Native .NET Applications for Azure, který je k dispozici na webu Docs pro .NET nebo jako soubor PDF zdarma ke stažení, který si můžete přečíst offline.

Cloud Native .NET apps for Azure eBook cover thumbnail.

V této kapitole a v kapitole 1 jsme probírali kontejnery. Viděli jsme, že kontejnery poskytují mnoho výhod aplikací nativních pro cloud, včetně přenositelnosti. V cloudu Azure můžete nasadit stejné kontejnerizované služby napříč přípravným a produkčním prostředím. Azure nabízí několik možností hostování těchto kontejnerizovaných úloh:

  • Azure Kubernetes Services (AKS)
  • Azure Container Instance (ACI)
  • Azure Web Apps for Containers

Azure Container Registry

Při kontejnerizaci mikroslužby nejprve sestavíte kontejner image. Image je binární reprezentace kódu služby, závislostí a modulu runtime. I když můžete image vytvořit ručně pomocí Docker Build příkazu z rozhraní Api Dockeru, lepším přístupem je ho vytvořit jako součást automatizovaného procesu sestavení.

Po vytvoření se image kontejnerů ukládají v registrech kontejnerů. Umožňují vytvářet, ukládat a spravovat image kontejnerů. K dispozici je mnoho registrů, veřejných i soukromých. Azure Container Registry (ACR) je plně spravovaná služba registru kontejnerů v cloudu Azure. Zachová vaše image v síti Azure a zkracuje dobu jejich nasazení do hostitelů kontejnerů Azure. Můžete je také zabezpečit pomocí stejných postupů zabezpečení a identit, které používáte pro jiné prostředky Azure.

Službu Azure Container Registry vytvoříte pomocí webu Azure Portal, Azure CLI nebo nástrojů PowerShellu. Vytvoření registru v Azure je jednoduché. Vyžaduje předplatné Azure, skupinu prostředků a jedinečný název. Obrázek 3-10 ukazuje základní možnosti pro vytvoření registru, který bude hostovaný na registryname.azurecr.ioadrese .

Create container registry

Obrázek 3–10 Vytvoření registru kontejneru

Po vytvoření registru ho budete muset ověřit, než ho budete moct použít. K registru se obvykle přihlásíte pomocí příkazu Azure CLI:

az acr login --name *registryname*

Po ověření můžete použít příkazy Dockeru k nasdílení imagí kontejneru. Než to ale budete moct udělat, musíte image označit plně kvalifikovaným názvem (URL) přihlašovacího serveru ACR. Bude mít formát název_registru.azurecr.io.

docker tag mycontainer myregistry.azurecr.io/mycontainer:v1

Po označení image použijete docker push příkaz k nasdílení image do instance služby ACR.

docker push myregistry.azurecr.io/mycontainer:v1

Po nasdílení image do registru je vhodné image odebrat z místního prostředí Dockeru pomocí tohoto příkazu:

docker rmi myregistry.azurecr.io/mycontainer:v1

Osvědčeným postupem je, že byste do registru kontejneru neměli ručně odesílat image. Místo toho použijte kanál buildu definovaný v nástroji, jako je GitHub nebo Azure DevOps. Další informace najdete v kapitole DevOps nativní pro cloud.

Úlohy ACR

ACR Tasks je sada funkcí dostupných ve službě Azure Container Registry. Rozšiřuje vývojový cyklus vnitřní smyčky vytvořením a správou imagí kontejnerů v cloudu Azure. Místo vyvolání a docker push místně na vývojovém docker build počítači je automaticky zpracovává služba ACR Tasks v cloudu.

Následující příkaz AZ CLI sestaví image kontejneru a nasdílí ji do ACR:

# create a container registry
az acr create --resource-group myResourceGroup --name myContainerRegistry008 --sku Basic

# build container image in ACR and push it into your container registry
az acr build --image sample/hello-world:v1  --registry myContainerRegistry008 --file Dockerfile .

Jak vidíte z předchozího bloku příkazů, nemusíte na vývojový počítač instalovat Docker Desktop. Kromě toho můžete nakonfigurovat triggery úlohy ACR tak, aby znovu sestavily image kontejnerů na aktualizacích zdrojového kódu i základní image.

Azure Kubernetes Service

V této kapitole jsme probrali službu Azure Kubernetes Service (AKS). Viděli jsme, že se jedná o de facto orchestrátor kontejnerů, který spravuje kontejnerizované aplikace nativní pro cloud.

Jakmile nasadíte image do registru, jako je ACR, můžete AKS nakonfigurovat tak, aby ji automaticky načítá a nasadil. S využitím kanálu CI/CD můžete nakonfigurovat strategii kanárských verzí , která minimalizuje riziko spojené s rychlým nasazováním aktualizací. Nová verze aplikace je původně nakonfigurovaná v produkčním prostředí bez směrování provozu. Systém pak bude směrovat malé procento uživatelů na nově nasazenou verzi. Vzhledem k tomu, že tým získá důvěru v novou verzi, může zavést více instancí a vyřadit starý. AKS tento styl nasazení snadno podporuje.

Stejně jako u většiny prostředků v Azure můžete vytvořit cluster Azure Kubernetes Service pomocí portálu, příkazového řádku nebo nástrojů pro automatizaci, jako je Helm nebo Terraform. Pokud chcete začít s novým clusterem, musíte zadat následující informace:

  • Předplatné Azure
  • Skupina prostředků
  • Název clusteru Kubernetes
  • Oblast
  • Verze Kubernetes
  • Předpona názvu DNS
  • Velikost uzlu
  • Počet uzlů

Tyto informace stačí, abyste mohli začít. V rámci procesu vytváření na webu Azure Portal můžete také nakonfigurovat možnosti pro následující funkce clusteru:

  • Měřítko
  • Ověřování
  • Sítě
  • Sledování
  • Značky

Tento rychlý start vás provede nasazením clusteru AKS pomocí webu Azure Portal.

Azure Bridge to Kubernetes

Aplikace nativní pro cloud můžou růst velké a složité, což vyžaduje, aby běžely významné výpočetní prostředky. V těchto scénářích není možné hostovat celou aplikaci na vývojovém počítači (zejména na přenosném počítači). Azure Bridge to Kubernetes řeší krátkodobé řešení. Umožňuje vývojářům pracovat s místní verzí služby při hostování celé aplikace ve vývojovém clusteru AKS.

Až budou připravení, vývojáři testují své změny místně při spuštění s úplnou aplikací v clusteru AKS – bez replikace závislostí. Pod kapotou most slučuje kód z místního počítače se službami v AKS. Vývojáři můžou rychle iterovat a ladit kód přímo v Kubernetes pomocí sady Visual Studio nebo editoru Visual Studio Code.

Gabe Monroy, bývalý vp of Product Management ve společnosti Microsoft, popisuje dobře:

Představte si, že jste nový zaměstnanec, který se snaží opravit chybu ve složité aplikaci mikroslužeb, která se skládá z desítek komponent, z nichž každá má vlastní konfiguraci a backingové služby. Abyste mohli začít, musíte nakonfigurovat místní vývojové prostředí, aby mohlo napodobovat produkční prostředí, včetně nastavení integrovaného vývojového prostředí, řetězu nástrojů, závislostí kontejnerizovaných služeb, místního prostředí Kubernetes, napodobování služeb zálohování a dalších. S nastavením vývojového prostředí může trvat celou dobu, než se opraví první chyba. Nebo byste mohli použít bridge na Kubernetes a AKS.