Kurz: Nasazení skupiny s více kontejnery pomocí šablony Resource Manageru
Azure Container Instances podporuje nasazení více kontejnerů do jednoho hostitele pomocí skupiny kontejnerů. Skupina kontejnerů je užitečná při vytváření sajdkáře aplikace pro protokolování, monitorování nebo jakoukoli jinou konfiguraci, kde služba potřebuje druhý připojený proces.
V tomto kurzu použijete kroky ke spuštění konfigurace dvou kontejnerů sidecar nasazením šablony Azure Resource Manageru pomocí Azure CLI. Získáte informace pro:
- Konfigurace šablony skupiny s více kontejnery
- Nasazení skupiny kontejnerů
- Zobrazení protokolů kontejnerů
Šablonu Resource Manageru je možné snadno přizpůsobit pro scénáře, kdy potřebujete nasadit více prostředků služeb Azure (například sdílenou složku Azure nebo virtuální síť) se skupinou kontejnerů.
Poznámka:
Skupiny s více kontejnery jsou aktuálně omezené na kontejnery Linuxu.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
Požadavky
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
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í najdete 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 zkopírováním následujícího kódu JSON do nového souboru s názvem azuredeploy.json
. V Azure Cloud Shellu můžete pomocí editoru Visual Studio Code vytvořit soubor v pracovním adresáři:
code azuredeploy.json
Tato šablona Resource Manageru 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, sajdkár, vytvoří požadavek HTTP na hlavní webovou 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]"
}
}
}
Pokud chcete použít registr imagí privátního kontejneru, přidejte objekt do dokumentu JSON s následujícím formátem. Příklad implementace této konfigurace najdete v referenční dokumentaci k šabloně ACI Resource Manageru.
"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.
Zobrazení stavu nasazení
Pokud chcete 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 její 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
Pomocí příkazu az container logs zobrazte výstup protokolu kontejneru. Argument --container-name
určuje kontejner, ze kterého se mají protokoly vyžádat. 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"
Pokud chcete zobrazit protokoly kontejneru sajdkáře, 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, sajdkár pravidelně provádí požadavek HTTP na hlavní webovou aplikaci prostřednictvím místní sítě skupiny, aby se zajistilo, že běží. Tento příklad sajdkáře lze 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 Manageru k nasazení skupiny s více kontejnery ve službě Azure Container Instances. Naučili jste se:
- Konfigurace šablony skupiny s více kontejnery
- Nasazení skupiny kontejnerů
- Zobrazení protokolů kontejnerů
Další ukázky šablon najdete v šablonách Azure Resource Manageru pro službu Azure Container Instances.
Pomocí souboru YAML můžete také zadat skupinu s více kontejnery. Vzhledem k stručnější povaze formátu YAML je nasazení se souborem YAML dobrou volbou, pokud vaše nasazení zahrnuje pouze instance kontejneru.