Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure-Containerinstanzen unterstützen die Bereitstellung mehrerer Container auf einem einzelnen Host mithilfe einer Containergruppe. Eine Containergruppe ist hilfreich beim Erstellen eines Anwendungs-Sidecars zum Protokollieren, Überwachen oder einer anderen Konfiguration, bei der ein Dienst einen zweiten angefügten Prozess benötigt.
In diesem Tutorial folgen Sie den Schritten, um eine Sidecar-Konfiguration mit zwei Containern auszuführen, indem Sie eine Azure Resource Manager-Vorlage mithilfe der Azure CLI deployen. Hier erfahren Sie, wie Sie:
- Konfigurieren einer Gruppenvorlage mit mehreren Containern
- Bereitstellen der Containergruppe
- Protokolle der Container anzeigen
Eine Ressourcen-Manager-Vorlage kann leicht für Szenarien angepasst werden, wenn Sie weitere Azure-Dienstressourcen (z. B. eine Azure Files-Freigabe oder ein virtuelles Netzwerk) mit der Containergruppe bereitstellen müssen.
Hinweis
Multi-Container-Gruppen sind derzeit auf Linux-Container beschränkt.
Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
Voraussetzungen
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter "Erste Schritte mit Azure Cloud Shell".
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen möchten, installieren Sie die Azure CLI. Wenn Sie mit Windows oder macOS arbeiten, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Um den Authentifizierungsprozess abzuschließen, führen Sie die schritte aus, die in Ihrem Terminal angezeigt werden. Weitere Anmeldeoptionen finden Sie unter Authentifizieren bei Azure mithilfe der Azure CLI.
Wenn Sie dazu aufgefordert werden, installieren Sie die Azure CLI-Erweiterung bei der ersten Verwendung. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden und Verwalten von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um auf die neueste Version zu aktualisieren.
Konfigurieren einer Vorlage
Kopieren Sie zunächst den folgenden JSON-Code in eine neue Datei mit dem Namen azuredeploy.json. In Azure Cloud Shell können Sie Visual Studio Code verwenden, um die Datei in Ihrem Arbeitsverzeichnis zu erstellen:
code azuredeploy.json
Diese Ressourcen-Manager-Vorlage definiert eine Containergruppe mit zwei Containern, einer öffentlichen IP-Adresse und zwei verfügbar gemachten Ports. Der erste Container in der Gruppe führt eine internetorientierte Webanwendung aus. Der zweite Container, der Sidecar, sendet eine HTTP-Anforderung an die Hauptwebanwendung über das lokale Netzwerk der Gruppe.
{
"$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]"
}
}
}
Um eine Registrierung für ein privates Containerimage zu verwenden, fügen Sie dem JSON-Dokument ein Objekt mit dem folgenden Format hinzu. Eine Beispielimplementierung dieser Konfiguration finden Sie in der Referenzdokumentation zur Vorlage "ACI Resource Manager ".
"imageRegistryCredentials": [
{
"server": "[parameters('imageRegistryLoginServer')]",
"username": "[parameters('imageRegistryUsername')]",
"password": "[parameters('imageRegistryPassword')]"
}
]
Implementieren der Vorlage
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
Innerhalb weniger Sekunden sollten Sie eine erste Antwort von Azure erhalten.
Bereitstellungsstatus anzeigen
Verwenden Sie den folgenden Befehl " az container show ", um den Status der Bereitstellung anzuzeigen:
az container show --resource-group myResourceGroup --name myContainerGroup --output table
Wenn Sie die ausgeführte Anwendung anzeigen möchten, navigieren Sie zu deren IP-Adresse in Ihrem Browser. Die IP ist beispielsweise 52.168.26.124 in dieser Beispielausgabe:
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
Anzeigen von Containerprotokollen
Zeigen Sie die Protokollausgabe eines Containers mithilfe des Befehls "az container logs " an. Das --container-name Argument gibt den Container an, aus dem Protokolle abgerufen werden sollen. In diesem Beispiel wird der aci-tutorial-app Container angegeben.
az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-app
Ausgabe:
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"
Um die Protokolle für den Sidecar-Container anzuzeigen, führen Sie einen ähnlichen Befehl aus, der den aci-tutorial-sidecar Container angibt.
az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-sidecar
Ausgabe:
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
Wie Sie sehen, sendet das Sidecar regelmäßig eine HTTP-Anfrage an die Hauptwebanwendung über das lokale Netzwerk der Gruppe, um sicherzustellen, dass sie ausgeführt wird. Dieses Sidecarbeispiel kann erweitert werden, um eine Warnung auszulösen, wenn ein anderer HTTP-Antwortcode als 200 OK empfangen wird.
Nächste Schritte
In diesem Lernprogramm haben Sie eine Azure Resource Manager-Vorlage verwendet, um eine Gruppe mit mehreren Containern in Azure-Containerinstanzen bereitzustellen. Sie haben gelernt, wie Sie:
- Konfigurieren einer Gruppenvorlage mit mehreren Containern
- Bereitstellen der Containergruppe
- Protokolle der Container anzeigen
Weitere Vorlagenbeispiele finden Sie unter Azure Resource Manager-Vorlagen für Azure-Containerinstanzen.
Sie können auch eine Multicontainergruppe mithilfe einer YAML-Datei angeben. Aufgrund der präziseren Art des YAML-Formats ist die Bereitstellung mit einer YAML-Datei eine gute Wahl, wenn Ihre Bereitstellung nur Containerinstanzen enthält.