Tutorial: Bereitstellen eines Spot-Containers mit Azure Container Instances mithilfe der Azure CLI (Vorschau)
Spot-Container kombinieren die Einfachheit von ACI mit den niedrigen Kosten von Spot-VMs, sodass es für Kunden einfach und erschwinglich ist, containerisierte unterbrechungsfähige Workloads im großen Stil auszuführen. Verwenden Sie Azure Container Instances, um serverlose Spot-Container auszuführen. Stellen Sie eine Anwendung bedarfsgesteuert in einem Spot-Container bereit, wenn Sie unterbrechungsfähige, containerisierte Workloads auf nicht verwendeter Azure-Kapazität zu geringen Kosten ausführen möchten und Sie keine vollständige Containerorchestrierungsplattform wie Azure Kubernetes Service benötigen.
In dieser Schnellstartanleitung stellen Sie mithilfe der Azure-Befehlszeilenschnittstelle einen Helloworld-Container mit Spot-Containern bereit. Einige Sekunden nach dem Ausführen eines einzigen Bereitstellungsbefehls können Sie zu den Containerprotokollen navigieren:
- Für diesen Schnellstart ist mindestens Version 2xxx der Azure CLI erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.
Erstellen einer Ressourcengruppe
Azure Container Instances muss wie alle Azure-Ressourcen in einer Ressourcengruppe bereitgestellt werden. Mit Ressourcengruppen können verwandte Azure-Ressourcen organisiert und verwaltet werden.
Erstellen Sie zunächst mit dem folgenden Befehl az group create eine Ressourcengruppe namens myResourceGroup am Standort westus:
az group create --name myResourceGroup --location westus
Erstellen eines Containers
Sie besitzen eine Ressourcengruppe und können nun einen Spot-Container in Azure ausführen. Geben Sie zum Erstellen einer Spot-Containergruppe mit der Azure-Befehlszeilenschnittstelle einen Ressourcengruppennamen, einen Containerinstanznamen, ein Containerimage und eine neue Priorität namens „priority“ mit dem Wert „Spot“ im Befehl az container create an. In diesem Schnellstart verwenden Sie das öffentliche Image mcr.microsoft.com/azuredocs/aci-helloworld
. Dieses Image verpackt eine kleine in Node.js geschriebene Web-App, die eine statische HTML-Seite bedient.
Sie können Ihre Spot-Container über das Internet verfügbar machen, indem Sie mindestens einen zu öffnenden Port und/oder eine DNS-Namensbezeichnung angeben. In dieser Schnellstartanleitung stellen Sie einen Container mithilfe des Helloworld-Images ohne DNS-Namensbezeichnung bereit. Sie ist nicht öffentlich erreichbar. Sie können die Containerprotokolle abfragen, um zu überprüfen, ob der Container an Standardport 80 lauscht.
Führen Sie einen Befehl wie den folgenden aus, um eine Containerinstanz zu starten.
az container create --resource-group acispotdemo --name acispotclitest --image mcr.microsoft.com/azuredocs/aci-helloworld --priority spot
Sie sollten innerhalb weniger Sekunden eine Antwort von der Azure-Befehlszeilenschnittstelle (Command Line Interface, CLI) mit dem Hinweis erhalten, dass die Bereitstellung abgeschlossen wurde. Überprüfen Sie den Status mit dem Befehl az container show:
az container show --resource-group acispotdemo --name acispotclitest --query "{ProvisioningState:provisioningState}" --out table
Wenn Sie den Befehl ausführen, werden der vollständig qualifizierte Domänenname (Fully Qualified Domain Name, FQDN) des Containers und der Bereitstellungsstatus angezeigt.
ContainerGroupName ProvisioningState
--------------------------------- -------------------
acispotclitest Succeeded
Wenn der ProvisioningState
des Containers erfolgreich ist, herzlichen Glückwunsch! Sie haben eine Anwendung, die in einem Docker-Container ausgeführt wird, erfolgreich in Azure bereitgestellt.
Herunterladen der Containerprotokolle
Wenn Sie ein Problem mit einem Container oder der darin ausgeführten Anwendung beheben (oder nur seine Ausgabe anzeigen) müssen, sehen Sie sich zuerst die Protokolle der Containerinstanz an.
Verwenden Sie den Befehl az container logs, um die Protokolle der Containerinstanz per Pull abzurufen:
az container logs --resource-group acispotdemo --name acispotclitest
In der Ausgabe werden die Protokolle für den Container angezeigt, und die folgende Ausgabe sollte angezeigt werden:
listening on port 80
Anfügen von Ausgabestreams
Zusätzlich zum Anzeigen der Protokolle können Sie Ihre lokalen Standardausgabestreams und Standardfehlerstreams an die Streams des Containers anfügen.
Führen Sie zunächst den Befehl az container attach aus, um Ihre lokale Konsole den Ausgabestreams des Containers anzufügen:
az container attach --resource-group acispotdemo --name acispotclitest
Aktualisieren Sie nach dem Anfügen mehrmals Ihren Browser, um weitere Ausgaben zu generieren. Trennen Sie anschließend Ihre Konsole mit Control+C
. Die Ausgabe sollte etwa folgendem Beispiel entsprechen:
Container 'acispotclitest' is in state 'Running'...
Start streaming logs:
listening on port 80
Bereinigen von Ressourcen
Wenn Sie den Container nicht mehr benötigen, entfernen Sie ihn mithilfe des Befehls az container delete:
az container delete --resource-group acispotdemo --name acispotclitest
Um sicherzustellen, dass der Container gelöscht wurde, führen Sie den Befehl az container list aus:
az container list --resource-group acispotdemo --output table
Der Container acispotclitest sollte nicht in der Ausgabe des Befehls angezeigt werden. Wenn die Ressourcengruppe keine anderen Container enthält, wird keine Ausgabe angezeigt.
Wenn Sie die Ressourcengruppe acispotdemo und alle darin enthaltenen Ressourcen nicht mehr benötigen, löschen Sie sie mit dem Befehl az group delete:
az group delete --name acispotdemo
Nächste Schritte
In diesem Tutorial haben Sie mithilfe der Azure CLI einen Spot-Container auf Azure Container Instances mit einer Standardkontingent- und Entfernungsrichtlinie erstellt.