Tutorial: Bereitstellen einer Gruppe mit mehreren Containern mithilfe einer YAML-DateiTutorial: Deploy a multi-container group using a YAML file

Azure Container Instances unterstützt die Bereitstellung von mehreren Containern auf einem einzelnen Host mit einer Containergruppe.Azure Container Instances supports the deployment of multiple containers onto a single host using a container group. Containergruppen sind nützlich, wenn eine Sidecaranwendung für die Protokollierung, die Überwachung oder eine andere Konfiguration, bei der ein Dienst einen zweiten angefügten Prozess benötigt, erstellt wird.A container group is useful when building an application sidecar for logging, monitoring, or any other configuration where a service needs a second attached process.

In diesem Tutorial befolgen Sie Schritte zum Ausführen einer einfachen Sidecarkonfiguration mit zwei Containern durch Bereitstellung einer YAML-Datei mithilfe der Azure-Befehlszeilenschnittstelle.In this tutorial, you follow steps to run a simple two-container sidecar configuration by deploying a YAML file using the Azure CLI. Eine YAML-Datei bietet ein übersichtliches Format zur Angabe der Instanzeinstellungen.A YAML file provides a concise format for specifying the instance settings. Folgendes wird vermittelt:You learn how to:

  • Konfigurieren einer YAML-DateiConfigure a YAML file
  • Bereitstellen der ContainergruppeDeploy the container group
  • Anzeigen der Protokolle der ContainerView the logs of the containers

Hinweis

Gruppen mit mehreren Containern sind aktuell auf Linux-Container beschränkt.Multi-container groups are currently restricted to Linux containers.

Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

VoraussetzungenPrerequisites

  • Verwenden Sie Azure Cloud Shell unter Nutzung der Bash-Umgebung.Use Azure Cloud Shell using the bash environment.

    Start einbettenEmbed launch

  • Wenn Sie möchten, können Sie auch die Azure CLI installieren, um CLI-Verweisbefehle auszuführen.If you prefer, install the Azure CLI to run CLI reference commands.

    • Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an.If you're using a local install, sign in with Azure CLI by using the az login command. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen.To finish the authentication process, follow the steps displayed in your terminal. Weitere Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.See Sign in with Azure CLI for additional sign-in options.
    • Installieren Sie die Azure CLI-Erweiterungen bei der ersten Verwendung, wenn Sie dazu aufgefordert werden.When you're prompted, install Azure CLI extensions on first use. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.For more information about extensions, see Use extensions with Azure CLI.
    • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln.Run az version to find the version and dependent libraries that are installed. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.To upgrade to the latest version, run az upgrade.

Konfigurieren einer YAML-DateiConfigure a YAML file

Um eine Gruppe mit mehreren Containern mit dem Befehl az container create in der Azure-Befehlszeilenschnittstelle bereitzustellen, müssen Sie die Containergruppenkonfiguration in einer YAML-Datei angeben.To deploy a multi-container group with the az container create command in the Azure CLI, you must specify the container group configuration in a YAML file. Übergeben Sie die YAML-Datei dann als Parameter an den Befehl.Then pass the YAML file as a parameter to the command.

Starten Sie, indem Sie den folgenden YAML-Inhalt in eine neue Datei mit dem Namen deploy-aci.yaml kopieren.Start by copying the following YAML into a new file named deploy-aci.yaml. In Azure Cloud Shell können Sie die Datei mit Visual Studio Code in Ihrem Arbeitsverzeichnis erstellen:In Azure Cloud Shell, you can use Visual Studio Code to create the file in your working directory:

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.This YAML file defines a container group named "myContainerGroup" with two containers, a public IP address, and two exposed ports. Die Container werden aus öffentlichen Microsoft-Images bereitgestellt.The containers are deployed from public Microsoft images. Der erste Container in der Gruppe führt eine Webanwendung mit Internetverbindung aus.The first container in the group runs an internet-facing web application. Vom zweiten Container, dem Sidecar, erfolgen in regelmäßigen Abständen HTTP-Anforderungen an die Webanwendung, die im ersten Container über das lokale Netzwerk der Containergruppe ausgeführt wird.The second container, the sidecar, periodically makes HTTP requests to the web application running in the first container via the container group's local network.

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 eine private Containerimageregistrierung zu verwenden, fügen Sie die imageRegistryCredentials-Eigenschaft mit für Ihre Umgebung entsprechend geänderten Werten in der Containergruppe hinzu:To use a private container image registry, add the imageRegistryCredentials property to the container group, with values modified for your environment:

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

Bereitstellen der ContainergruppeDeploy the container group

Erstellen Sie mit dem Befehl az group create eine Ressourcengruppe:Create a resource group with the az group create command:

az group create --name myResourceGroup --location eastus

Stellen Sie die Containergruppe mit dem Befehl az container create bereit, und übergeben Sie dabei die YAML-Datei als Argument:Deploy the container group with the az container create command, passing the YAML file as an argument:

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

Innerhalb weniger Sekunden sollten Sie eine erste Antwort von Azure erhalten.Within a few seconds, you should receive an initial response from Azure.

Zusammenfassung der Bereitstellungen anzeigenView deployment state

Um den Bereitstellungsstatus anzuzeigen, verwenden Sie den folgenden Befehl az container show:To view the state of the deployment, use the following az container show command:

az container show --resource-group myResourceGroup --name myContainerGroup --output table

Wenn Sie die laufende Anwendung anzeigen möchten, navigieren Sie zu ihrer IP-Adresse in Ihrem Browser.If you'd like to view the running application, navigate to its IP address in your browser. In dieser Beispielausgabe lautet die IP 52.168.26.124:For example, the IP is 52.168.26.124 in this example output:

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

Containerprotokolle anzeigenView container logs

Zeigen Sie die Protokollausgabe eines Containers mithilfe des Befehls az container logs an.View the log output of a container using the az container logs command. Das --container-name-Argument gibt den Container an, aus dem Protokolle erhalten werden können.The --container-name argument specifies the container from which to pull logs. In diesem Beispiel wird der Container aci-tutorial-app angegeben.In this example, the aci-tutorial-app container is specified.

az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-app

Ausgabe:Output:

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"

Führen Sie einen ähnlichen Befehl aus, in dem Sie den Container aci-tutorial-sidecar angeben, um die Protokolle für den Sidecarcontainer anzuzeigen.To see the logs for the sidecar container, run a similar command specifying the aci-tutorial-sidecar container.

az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-sidecar

Ausgabe:Output:

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 können, erfolgt vom Sidecar in regelmäßigen Abständen eine HTTP-Anforderung an die Hauptwebanwendung über das lokale Netzwerk der Gruppe, um sicherzustellen, dass er ausgeführt wird.As you can see, the sidecar is periodically making an HTTP request to the main web application via the group's local network to ensure that it is running. Dieses Sidecarbeispiel kann erweitert werden, um eine Warnung auszulösen, wenn ein anderer HTTP-Antwortcode als 200 OK empfangen wird.This sidecar example could be expanded to trigger an alert if it received an HTTP response code other than 200 OK.

Nächste SchritteNext steps

In diesem Tutorial haben Sie eine Gruppe mit mehreren Containern mit einer YAML-Datei in Azure Container Instances bereitgestellt.In this tutorial, you used a YAML file to deploy a multi-container group in Azure Container Instances. Sie haben Folgendes gelernt:You learned how to:

  • Konfigurieren einer YAML-Datei für eine Gruppe mit mehreren ContainernConfigure a YAML file for a multi-container group
  • Bereitstellen der ContainergruppeDeploy the container group
  • Anzeigen der Protokolle der ContainerView the logs of the containers

Sie können eine Gruppe mit mehreren Containern auch mithilfe einer Resource Manager-Vorlage angeben.You can also specify a multi-container group using a Resource Manager template. Eine Resource Manager-Vorlage kann für Szenarien angepasst werden, in denen Sie mit der Containergruppe zusätzliche Azure-Dienstressourcen bereitstellen möchten.A Resource Manager template can be readily adapted for scenarios when you need to deploy additional Azure service resources with the container group.