Zuverlässigkeit in Azure Container Instances
In diesem Artikel wird die Zuverlässigkeitsunterstützung in Azure Container Instances (ACI) beschrieben, wobei sowohl intraregionale Resilienz mittels Verfügbarkeitszonen als auch Informationen zur Notfallwiederherstellung behandelt werden. Eine ausführlichere Übersicht über die Zuverlässigkeit in Azure finden Sie unter Azure-Zuverlässigkeit.
Unterstützung für Verfügbarkeitszonen
Verfügbarkeitszonen sind physisch getrennte Gruppen von Rechenzentren innerhalb jeder Azure-Region. Wenn eine Zone ausfällt, erfolgt ein Failover der Dienste zu einer der verbleibenden Zonen.
Weitere Informationen zu Verfügbarkeitszonen in Azure finden Sie unter Was sind Verfügbarkeitszonen?.
Azure Container Instances unterstützt zonale Containergruppenbereitstellungen. Das bedeutet, dass die Instanz an eine bestimmte, selbst ausgewählte Verfügbarkeitszone angeheftet ist. Die Verfügbarkeitszone wird auf Containergruppenebene angegeben. Container innerhalb einer Containergruppe können keine eindeutigen Verfügbarkeitszonen haben. Um die Verfügbarkeitszone Ihrer Containergruppe zu ändern, müssen Sie die Containergruppe löschen und eine weitere Containergruppe mit der neuen Verfügbarkeitszone erstellen.
Voraussetzungen
- Zonale Containergruppenbereitstellungen werden in den meisten Regionen unterstützt, in denen ACI für Linux- und Windows Server 2019-Containergruppen verfügbar ist. Details hierzu finden Sie unter Verfügbarkeit von Regionen und Ressourcen.
- Wenn Sie Azure CLI verwenden, stellen Sie sicher, dass Version
2.30.0
oder höher installiert ist. - Wenn Sie PowerShell verwenden, stellen Sie sicher, dass Version
2.1.1-preview
oder höher installiert ist. - Wenn Sie das Java-SDK verwenden, stellen Sie sicher, dass Version
2.9.0
oder höher installiert ist. - Die Unterstützung von Verfügbarkeitszonen ist nur für die ACI-API-Version
09-01-2021
oder höher verfügbar.
Wichtig
Containergruppen mit GPU-Ressourcen unterstützen derzeit keine Verfügbarkeitszonen.
Erneute Bereitstellung und Migration von Verfügbarkeitszonen
Um die Verfügbarkeitszone Ihrer Containergruppe zu ändern, müssen Sie die Containergruppe löschen und eine weitere Containergruppe mit der neuen Verfügbarkeitszone erstellen.
Erstellen einer Ressource mit aktivierter Verfügbarkeitszone
Um eine Containerinstanzressource mit aktivierter Verfügbarkeitszone zu erstellen, müssen Sie eine Containergruppe mithilfe einer ARM-Vorlage (Azure Resource Manager) bereitstellen.
Hinweis
Beispiele in diesem Artikel sind für die Ausführung in der Bash-Shell formatiert. Wenn Sie eine andere Shell bevorzugen, passen Sie die Zeilenfortsetzungszeichen entsprechend an.
So stellen Sie einen Container mit ARM bereit
Kopieren Sie den folgenden JSON-Code, und fügen Sie ihn in eine neue Datei namens
azuredeploy.json
ein. Diese Beispielvorlage stellt eine Containergruppe mit einem einzelnen Container in der Verfügbarkeitszone 1 in der Region „USA, Osten“ bereit.{ "$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]" } } }
Erstellen Sie mit dem Befehl az group create eine Ressourcengruppe:
az group create --name myResourceGroup --location eastus
Stellen Sie die Vorlage mit dem Befehl az deployment group create bereit:
az deployment group create \ --resource-group myResourceGroup \ --template-file azuredeploy.json
Um zu überprüfen, ob die Containergruppe erfolgreich in einer Verfügbarkeitszone bereitgestellt wurde, zeigen Sie die Details der Containergruppe mit dem Befehl az container show an:
az container show --name acilinuxpublicipcontainergroup --resource-group myResourceGroup
Unterstützung für zonales Failover
Eine Containergruppe von Containerinstanzen wird einer einzelnen Verfügbarkeitszone zugewiesen. Infolgedessen ist diese Gruppe von Containerinstanzen nicht von einem Ausfall betroffen, der in einer anderen Verfügbarkeitszone derselben Region auftritt.
Wenn jedoch in der Verfügbarkeitszone der Containergruppe ein Ausfall auftritt, können Sie mit Ausfallzeiten für alle Containerinstanzen innerhalb dieser Gruppe rechnen.
Um Ausfallzeiten von Containerinstanzen zu vermeiden, empfiehlt es sich, mindestens zwei Containergruppen in zwei verschiedenen Verfügbarkeitszonen in einer bestimmten Region zu erstellen. Dadurch wird sichergestellt, dass Ihre Containerinstanzressourcen immer dann ausgeführt werden, wenn eine einzelne Zone in dieser Region ausfällt.
Notfallwiederherstellung
Wenn ganze Azure-Regionen oder Rechenzentren ausfallen, muss Ihr unternehmenskritischer Code in einer anderen Region weiterverarbeitet werden. Der Azure Container Instances-Dienst, der mit einer zonalen Konfiguration bereitgestellt werden, wird in einer bestimmten Zone innerhalb einer bestimmten Region ausgeführt. Es ist keine integrierte Redundanz verfügbar. Um Ausführungsverluste bei regionsweiten Ausfällen zu vermeiden, können Sie die Containerinstanzen redundant in anderen Regionen bereitstellen.