Zelfstudie: Een groep met meerdere containers implementeren met behulp van een YAML-bestand

Azure Container Instances ondersteunt de implementatie van meerdere containers op één host met behulp van een containergroep. Een containergroep is handig bij het bouwen van een toepassings sidecar voor logboekregistratie, bewaking of een andere configuratie waarbij een service een tweede gekoppeld proces nodig heeft.

In deze zelfstudie volgt u de stappen voor het uitvoeren van een eenvoudige sidecarconfiguratie met twee containers door een YAML-bestand te implementeren met behulp van de Azure CLI. Een YAML-bestand biedt een beknopte indeling voor het opgeven van de exemplaarinstellingen. U leert het volgende:

  • Een YAML-bestand configureren
  • De containergroep implementeren
  • De logboeken van de containers weergeven

Notitie

Groepen met meerdere containers zijn momenteel beperkt tot Linux-containers.

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

Vereisten

Een YAML-bestand configureren

Als u een groep met meerdere containers wilt implementeren met de opdracht az container create in de Azure CLI, moet u de configuratie van de containergroep opgeven in een YAML-bestand. Geef vervolgens het YAML-bestand als parameter door aan de opdracht.

Kopieer eerst de volgende YAML naar een nieuw bestand met de naam deploy-aci.yaml. In Azure Cloud Shell kunt u Visual Studio Code gebruiken om het bestand in uw werkmap te maken:

code deploy-aci.yaml

Dit YAML-bestand definieert een containergroep met de naam 'myContainerGroup' met twee containers, een openbaar IP-adres en twee weergegeven poorten. De containers worden geïmplementeerd vanuit openbare Microsoft-installatiekopieën. De eerste container in de groep voert een internetgerichte webtoepassing uit. De tweede container, de sidecar, doet periodiek HTTP-aanvragen naar de webtoepassing die in de eerste container wordt uitgevoerd via het lokale netwerk van de containergroep.

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

Als u een privécontainerinstallatiekopieënregister wilt gebruiken, voegt u de imageRegistryCredentials eigenschap toe aan de containergroep, met waarden die zijn gewijzigd voor uw omgeving:

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

De containergroep implementeren

Maak een resourcegroep met de opdracht az group create :

az group create --name myResourceGroup --location eastus

Implementeer de containergroep met de opdracht az container create , waarbij het YAML-bestand als argument wordt doorgegeven:

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

U ontvangt binnen enkele seconden een eerste reactie van Azure.

Implementatiestatus weergeven

Gebruik de volgende opdracht az container show om de status van de implementatie weer te geven:

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

Als u de actieve toepassing wilt weergeven, gaat u naar het IP-adres in uw browser. Het IP-adres bevindt 52.168.26.124 zich bijvoorbeeld in deze voorbeelduitvoer:

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

Containerlogboeken ophalen

Bekijk de logboekuitvoer van een container met behulp van de opdracht az container logs . Met --container-name het argument wordt de container opgegeven waaruit logboeken moeten worden opgehaald. In dit voorbeeld wordt de aci-tutorial-app container opgegeven.

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

Uitvoer:

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"

Als u de logboeken voor de sidecar-container wilt zien, voert u een vergelijkbare opdracht uit die de aci-tutorial-sidecar container opgeeft.

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

Uitvoer:

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

Zoals u kunt zien, doet de sidecar periodiek een HTTP-aanvraag naar de hoofdwebtoepassing via het lokale netwerk van de groep om ervoor te zorgen dat deze wordt uitgevoerd. Dit sidecar-voorbeeld kan worden uitgebreid om een waarschuwing te activeren als deze een andere HTTP-antwoordcode heeft ontvangen dan 200 OK.

Volgende stappen

In deze zelfstudie hebt u een YAML-bestand gebruikt om een groep met meerdere containers te implementeren in Azure Container Instances. U hebt geleerd hoe u:

  • Een YAML-bestand configureren voor een groep met meerdere containers
  • De containergroep implementeren
  • De logboeken van de containers weergeven

U kunt ook een groep met meerdere containers opgeven met behulp van een Resource Manager-sjabloon. Een Resource Manager-sjabloon kan gemakkelijk worden aangepast voor scenario's wanneer u extra Azure-serviceresources met de containergroep moet implementeren.