Kurz: nasazení skupiny s více kontejnery pomocí šablony Správce prostředků
Azure Container Instances podporuje nasazení více kontejnerů do jednoho hostitele pomocí skupiny kontejnerů. Skupina kontejnerů je užitečná při sestavování postranního vozíku aplikace pro protokolování, monitorování nebo jakoukoli jinou konfiguraci, kde služba potřebuje druhý připojený proces.
V tomto kurzu budete postupovat podle kroků pro spuštění jednoduché konfigurace na dvou kontejnerech, a to nasazením šablony Azure Resource Manager pomocí Azure CLI. Získáte informace o těchto tématech:
- Konfigurace více kontejnerových šablon skupiny
- Nasazení skupiny kontejnerů
- Zobrazit protokoly kontejnerů
Šablonu Správce prostředků lze snadno přizpůsobit pro scénáře, pokud potřebujete nasadit další prostředky služby Azure (například sdílenou složku Azure Files nebo virtuální síť) se skupinou kontejnerů.
Poznámka
Skupiny více kontejnerů jsou aktuálně omezené na kontejnery Linux.
Pokud ještě nemáte předplatné Azure,vytvořte si bezplatný účet před tím, než začnete.
Požadavky
V nástroji použijte prostředí Bash Azure Cloud Shell.
Pokud tomu dáváte přednost, můžete nainstalovat Azure CLI a spouštět referenční příkazy CLI.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení jsou popsané v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Konfigurace šablony
Začněte tím, že zkopírujete následující JSON do nového souboru s názvem azuredeploy.json . V Azure Cloud Shell můžete pomocí Visual Studio Code vytvořit soubor v pracovním adresáři:
code azuredeploy.json
Tato šablona Správce prostředků definuje skupinu kontejnerů se dvěma kontejnery, veřejnou IP adresou a dvěma vystavenými porty. První kontejner ve skupině spouští internetovou webovou aplikaci. Druhý kontejner, postranní vozík, provede požadavek HTTP hlavní webové aplikaci prostřednictvím místní sítě skupiny.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"containerGroupName": {
"type": "string",
"defaultValue": "myContainerGroup",
"metadata": {
"description": "Container Group name."
}
}
},
"variables": {
"container1name": "aci-tutorial-app",
"container1image": "mcr.microsoft.com/azuredocs/aci-helloworld:latest",
"container2name": "aci-tutorial-sidecar",
"container2image": "mcr.microsoft.com/azuredocs/aci-tutorial-sidecar"
},
"resources": [
{
"name": "[parameters('containerGroupName')]",
"type": "Microsoft.ContainerInstance/containerGroups",
"apiVersion": "2019-12-01",
"location": "[resourceGroup().location]",
"properties": {
"containers": [
{
"name": "[variables('container1name')]",
"properties": {
"image": "[variables('container1image')]",
"resources": {
"requests": {
"cpu": 1,
"memoryInGb": 1.5
}
},
"ports": [
{
"port": 80
},
{
"port": 8080
}
]
}
},
{
"name": "[variables('container2name')]",
"properties": {
"image": "[variables('container2image')]",
"resources": {
"requests": {
"cpu": 1,
"memoryInGb": 1.5
}
}
}
}
],
"osType": "Linux",
"ipAddress": {
"type": "Public",
"ports": [
{
"protocol": "tcp",
"port": 80
},
{
"protocol": "tcp",
"port": 8080
}
]
}
}
}
],
"outputs": {
"containerIPv4Address": {
"type": "string",
"value": "[reference(resourceId('Microsoft.ContainerInstance/containerGroups/', parameters('containerGroupName'))).ipAddress.ip]"
}
}
}
K použití privátního registru imagí kontejneru přidejte objekt do dokumentu JSON s následujícím formátem. Ukázkovou implementaci této konfigurace najdete v referenční dokumentaci k ACI správce prostředků Template .
"imageRegistryCredentials": [
{
"server": "[parameters('imageRegistryLoginServer')]",
"username": "[parameters('imageRegistryUsername')]",
"password": "[parameters('imageRegistryPassword')]"
}
]
Nasazení šablony
Vytvořte skupinu prostředků pomocí příkazu az group create.
az group create --name myResourceGroup --location eastus
Nasaďte šablonu pomocí příkazu AZ Deployment Group Create .
az deployment group create --resource-group myResourceGroup --template-file azuredeploy.json
Během několika sekund by se měla zobrazit první odezva z Azure.
Zobrazit stav nasazení
Chcete-li zobrazit stav nasazení, použijte následující příkaz AZ Container show :
az container show --resource-group myResourceGroup --name myContainerGroup --output table
Pokud chcete zobrazit spuštěnou aplikaci, přejděte v prohlížeči na jeho IP adresu. Například IP adresa je 52.168.26.124 v tomto příkladu výstupu:
Name ResourceGroup Status Image IP:ports Network CPU/Memory OsType Location
---------------- --------------- -------- -------------------------------------------------------------------------------------------------- -------------------- --------- --------------- -------- ----------
myContainerGroup danlep0318r Running mcr.microsoft.com/azuredocs/aci-tutorial-sidecar,mcr.microsoft.com/azuredocs/aci-helloworld:latest 20.42.26.114:80,8080 Public 1.0 core/1.5 gb Linux eastus
Zobrazení protokolů kontejneru
Zobrazte výstup protokolu kontejneru pomocí příkazu AZ Container logs . --container-nameArgument určuje kontejner, ze kterého mají být vyžádané protokoly. V tomto příkladu aci-tutorial-app je určen kontejner.
az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-app
Výstup:
listening on port 80
::1 - - [02/Jul/2020:23:17:48 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
::1 - - [02/Jul/2020:23:17:51 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
::1 - - [02/Jul/2020:23:17:54 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
Chcete-li zobrazit protokoly pro kontejner vozíku, spusťte podobný příkaz určující aci-tutorial-sidecar kontejner.
az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-sidecar
Výstup:
Every 3s: curl -I http://localhost 2020-07-02 20:36:41
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 1663 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
HTTP/1.1 200 OK
X-Powered-By: Express
Accept-Ranges: bytes
Cache-Control: public, max-age=0
Last-Modified: Wed, 29 Nov 2017 06:40:40 GMT
ETag: W/"67f-16006818640"
Content-Type: text/html; charset=UTF-8
Content-Length: 1663
Date: Thu, 02 Jul 2020 20:36:41 GMT
Connection: keep-alive
Jak vidíte, postranní vozík pravidelně vytváří požadavek HTTP do hlavní webové aplikace prostřednictvím místní sítě skupiny, aby bylo zajištěno, že je spuštěný. Tento příklad postranního vozíku se dá rozšířit tak, aby aktivoval výstrahu, pokud obdržel jiný kód odpovědi HTTP než 200 OK .
Další kroky
V tomto kurzu jste použili šablonu Azure Resource Manager k nasazení skupiny více kontejnerů v Azure Container Instances. Naučili jste se:
- Konfigurace více kontejnerových šablon skupiny
- Nasazení skupiny kontejnerů
- Zobrazit protokoly kontejnerů
Další ukázky šablon najdete v tématu šablony Azure Resource Manager pro Azure Container Instances.
Skupinu s více kontejnery můžete zadat také pomocí souboru YAML. Vzhledem k výstižnější povaze formátu YAML je nasazení se souborem YAML vhodné, pokud vaše nasazení zahrnuje jenom instance kontejnerů.
