Freigeben über


Lernprogramm: Bereitstellen einer Multicontainergruppe mithilfe einer YAML-Datei

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 führen Sie Schritte zum Ausführen einer einfachen Sidecarkonfiguration mit zwei Containern aus, indem Sie mithilfe der Azure-Befehlszeilenschnittstelle (Command Line Interface, CLI) eine YAML-Datei bereitstellen. Eine YAML-Datei bietet ein präzises Format zum Angeben der Instanzeinstellungen. Hier erfahren Sie, wie Sie:

  • Konfigurieren einer YAML-Datei
  • Bereitstellen der Containergruppe
  • Protokolle der Container anzeigen

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

Konfigurieren einer YAML-Datei

Um eine Multicontainergruppe mit dem Befehl "az container create " in der Azure CLI bereitzustellen, müssen Sie die Containergruppenkonfiguration in einer YAML-Datei angeben. Übergeben Sie dann die YAML-Datei als Parameter an den Befehl.

Kopieren Sie zunächst das folgende YAML in eine neue Datei namens deploy-aci.yaml. In Azure Cloud Shell können Sie Visual Studio Code verwenden, um die Datei in Ihrem Arbeitsverzeichnis zu erstellen:

code deploy-aci.yaml

Diese YAML-Datei definiert eine Containergruppe namens "myContainerGroup" mit zwei Containern, einer öffentlichen IP-Adresse und zwei verfügbar gemachten Ports. Die Container werden aus öffentlichen Microsoft-Images bereitgestellt. Der erste Container in der Gruppe führt eine internetorientierte Webanwendung aus. Der zweite Container, der Sidecar, sendet regelmäßig HTTP-Anforderungen an die Webanwendung, die im ersten Container über das lokale Netzwerk der Containergruppe ausgeführt wird.

apiVersion: 2019-12-01
location: eastus
name: myContainerGroup
properties:
  containers:
  - name: aci-tutorial-app
    properties:
      image: mcr.microsoft.com/azuredocs/aci-helloworld:latest
      resources:
        requests:
          cpu: 1
          memoryInGb: 1.5
      ports:
      - port: 80
      - port: 8080
  - name: aci-tutorial-sidecar
    properties:
      image: mcr.microsoft.com/azuredocs/aci-tutorial-sidecar
      resources:
        requests:
          cpu: 1
          memoryInGb: 1.5
  osType: Linux
  ipAddress:
    type: Public
    ports:
    - protocol: tcp
      port: 80
    - protocol: tcp
      port: 8080
tags: {exampleTag: tutorial}
type: Microsoft.ContainerInstance/containerGroups

Um ein privates Container-Image-Registry zu verwenden, fügen Sie der Containergruppe die imageRegistryCredentials Eigenschaft hinzu, wobei die Werte für Ihre Umgebung angepasst werden:

  imageRegistryCredentials:
  - server: imageRegistryLoginServer
    username: imageRegistryUsername
    password: imageRegistryPassword

Bereitstellen der Containergruppe

Erstellen Sie eine Ressourcengruppe mit dem Befehl "az group create ":

az group create --name myResourceGroup --location eastus

Stellen Sie die Containergruppe mit dem Befehl "az container create " bereit, und übergeben Sie die YAML-Datei als Argument:

az container create --resource-group myResourceGroup --file deploy-aci.yaml

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 YAML-Datei verwendet, um eine Gruppe mit mehreren Containern in Azure-Containerinstanzen bereitzustellen. Sie haben gelernt, wie Sie:

  • Konfigurieren einer YAML-Datei für eine Gruppe mit mehreren Containern
  • Bereitstellen der Containergruppe
  • Protokolle der Container anzeigen

Sie können auch eine Gruppe mit mehreren Containern mithilfe einer Resource Manager-Vorlage angeben. Eine Ressourcen-Manager-Vorlage kann leicht für Szenarien angepasst werden, wenn Sie weitere Azure-Dienstressourcen mit der Containergruppe bereitstellen müssen.