Spolehlivost ve službě Azure Container Instances
Tento článek popisuje podporu spolehlivosti ve službě Azure Container Instances (ACI) a popisuje odolnost uvnitř oblastí s zónami dostupnosti a informacemi o zotavení po havárii. Podrobnější přehled spolehlivosti v Azure najdete v tématu Spolehlivost Azure.
Podpora zón dostupnosti
Zóny dostupnosti jsou fyzicky oddělené skupiny datacenter v rámci každé oblasti Azure. Když jedna zóna selže, můžou služby převzít služby při selhání jedné ze zbývajících zón.
Další informace o zónách dostupnosti v Azure najdete v tématu Co jsou zóny dostupnosti?.
Služba Azure Container Instances podporuje nasazení zónových skupin kontejnerů, což znamená, že je instance připnutá ke konkrétní zóně dostupnosti s vlastním výběrem. Zóna dostupnosti se zadává na úrovni skupiny kontejnerů. Kontejnery ve skupině kontejnerů nemohou mít jedinečné zóny dostupnosti. Pokud chcete změnit zónu dostupnosti skupiny kontejnerů, musíte odstranit skupinu kontejnerů a vytvořit další skupinu kontejnerů s novou zónou dostupnosti.
Požadavky
- Nasazení zónových skupin kontejnerů se podporují ve většině oblastí, kde je ACI k dispozici pro skupiny kontejnerů s Linuxem a Windows Serverem 2019. Podrobnosti najdete v tématu Oblasti a dostupnost prostředků.
- Pokud používáte Azure CLI, ujistěte se, že je nainstalovaná verze
2.30.0
nebo novější. - Pokud používáte PowerShell, ujistěte se, že je nainstalovaná verze
2.1.1-preview
nebo novější. - Pokud používáte sadu Java SDK, ujistěte se, že je nainstalovaná verze
2.9.0
nebo novější. - Podpora zón dostupnosti je dostupná jenom ve verzi
09-01-2021
rozhraní API ACI nebo novější.
Důležité
Skupiny kontejnerů s prostředky GPU v tuto chvíli nepodporují zóny dostupnosti.
Opětovné nasazení a migrace zóny dostupnosti
Pokud chcete změnit zónu dostupnosti skupiny kontejnerů, musíte odstranit skupinu kontejnerů a vytvořit další skupinu kontejnerů s novou zónou dostupnosti.
Vytvoření prostředku s povolenou zónou dostupnosti
Pokud chcete vytvořit prostředek instance kontejneru s povolenou zónou dostupnosti, budete muset nasadit skupinu kontejnerů pomocí šablony Azure Resource Manageru (ARM).
Poznámka:
Příklady v tomto článku jsou formátovány pro prostředí Bash. Pokud dáváte přednost jinému prostředí, upravte znaky pokračování řádku odpovídajícím způsobem.
Nasazení kontejneru pomocí ARM:
Zkopírujte následující JSON do nového souboru s názvem
azuredeploy.json
. Tato ukázková šablona nasadí skupinu kontejnerů s jedním kontejnerem do zóny dostupnosti 1 v oblasti USA – východ.{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "metadata": { "_generator": { "name": "bicep", "version": "0.4.1.14562", "templateHash": "12367894147709986470" } }, "parameters": { "name": { "type": "string", "defaultValue": "acilinuxpublicipcontainergroup", "metadata": { "description": "Name for the container group" } }, "image": { "type": "string", "defaultValue": "mcr.microsoft.com/azuredocs/aci-helloworld", "metadata": { "description": "Container image to deploy. Should be of the form repoName/imagename:tag for images stored in public Docker Hub, or a fully qualified URI for other registries. Images from private registries require additional registry credentials." } }, "port": { "type": "int", "defaultValue": 80, "metadata": { "description": "Port to open on the container and the public IP address." } }, "cpuCores": { "type": "int", "defaultValue": 1, "metadata": { "description": "The number of CPU cores to allocate to the container." } }, "memoryInGb": { "type": "int", "defaultValue": 2, "metadata": { "description": "The amount of memory to allocate to the container in gigabytes." } }, "restartPolicy": { "type": "string", "defaultValue": "Always", "allowedValues": [ "Always", "Never", "OnFailure" ], "metadata": { "description": "The behavior of Azure runtime if container has stopped." } }, "location": { "type": "string", "defaultValue": "eastus", "metadata": { "description": "Location for all resources." } } }, "functions": [], "resources": [ { "type": "Microsoft.ContainerInstance/containerGroups", "apiVersion": "2021-09-01", "zones": [ "1" ], "name": "[parameters('name')]", "location": "[parameters('location')]", "properties": { "containers": [ { "name": "[parameters('name')]", "properties": { "image": "[parameters('image')]", "ports": [ { "port": "[parameters('port')]", "protocol": "TCP" } ], "resources": { "requests": { "cpu": "[parameters('cpuCores')]", "memoryInGB": "[parameters('memoryInGb')]" } } } } ], "osType": "Linux", "restartPolicy": "[parameters('restartPolicy')]", "ipAddress": { "type": "Public", "ports": [ { "port": "[parameters('port')]", "protocol": "TCP" } ] } } } ], "outputs": { "containerIPv4Address": { "type": "string", "value": "[reference(resourceId('Microsoft.ContainerInstance/containerGroups', parameters('name'))).ipAddress.ip]" } } }
Pomocí příkazu az group create vytvořte skupinu prostředků:
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
Pokud chcete ověřit, že se skupina kontejnerů úspěšně nasadila do zóny dostupnosti, zobrazte podrobnosti skupiny kontejnerů pomocí příkazu az container show :
az container show --name acilinuxpublicipcontainergroup --resource-group myResourceGroup
Podpora zónových převzetí služeb při selhání
Skupina kontejnerů instancí kontejnerů je přiřazená k jedné zóně dostupnosti. V důsledku toho nebude mít tato skupina instancí kontejnerů vliv na výpadek, ke kterému dojde v jakékoli jiné zóně dostupnosti stejné oblasti.
Pokud ale dojde k výpadku v zóně dostupnosti skupiny kontejnerů, můžete očekávat výpadky pro všechny instance kontejneru v rámci této skupiny.
Pokud se chcete vyhnout výpadkům instance kontejneru, doporučujeme v dané oblasti vytvořit minimálně dvě skupiny kontejnerů ve dvou různých zónách dostupnosti. Tím zajistíte, že jsou vaše prostředky instance kontejneru spuštěné, kdykoli dojde k výpadku jakékoli jedné zóny v dané oblasti.
Zotavení po havárii
Pokud dojde k výpadku celé oblasti Nebo datacentra Azure, je potřeba, aby váš kritický kód pokračoval ve zpracování v jiné oblasti. Služba Azure Container Instances nasazená se zónovou konfigurací běží v konkrétní zóně v konkrétní oblasti. Není k dispozici žádná integrovaná redundance. Abyste se vyhnuli ztrátě spuštění během výpadků v celé oblasti, můžete instance kontejneru redundantně nasadit v jiných oblastech.