Självstudie: Distribuera en grupp med flera containrar med hjälp av en YAML-fil

Azure Container Instances stöder distribution av flera containrar till en enda värd med hjälp av en containergrupp. En containergrupp är användbar när du skapar en programsidavagn för loggning, övervakning eller någon annan konfiguration där en tjänst behöver en andra kopplad process.

I den här självstudien följer du stegen för att köra en enkel sidovagnskonfiguration med två containrar genom att distribuera en YAML-fil med hjälp av Azure CLI. En YAML-fil ger ett koncis format för att ange instansinställningarna. Lär dig att:

  • Konfigurera en YAML-fil
  • Distribuera containergruppen
  • Visa loggarna för containrarna

Anteckning

Grupper med flera containrar är för närvarande begränsade till Linux-containrar.

Om du inte har en Azure-prenumerationkan du skapa ett kostnads fritt konto innan du börjar.

Förutsättningar

  • Använd bash-miljön i Azure Cloud Shell.

    Starta Cloud Shell i ett nytt fönster

  • Om du vill kan du i stället installera Azure CLI för att köra CLI-referenskommandon.

    • Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Fler inloggningsalternativ finns i Logga in med Azure CLI.

    • När du uppmanas till det installerar du Azure CLI-tillägg vid första användning. Mer information om tillägg finns i Använda tillägg med Azure CLI.

    • Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.

Konfigurera en YAML-fil

Om du vill distribuera en grupp med flera containrar med kommandot az container create i Azure CLI måste du ange konfigurationen för containergruppen i en YAML-fil. Skicka sedan YAML-filen som en parameter till kommandot .

Börja med att kopiera följande YAML till en ny fil med namnet deploy-aci.yaml. I Azure Cloud Shell kan du använda Visual Studio Code för att skapa filen i arbetskatalogen:

code deploy-aci.yaml

Den här YAML-filen definierar en containergrupp med namnet "myContainerGroup" med två containrar, en offentlig IP-adress och två exponerade portar. Containrarna distribueras från offentliga Microsoft-avbildningar. Den första containern i gruppen kör ett Internetuppriktad webbprogram. Den andra containern, sidovagnen, gör regelbundet HTTP-begäranden till webbprogrammet som körs i den första containern via containergruppens lokala nätverk.

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

Om du vill använda ett privat containeravbildningsregister lägger imageRegistryCredentials du till egenskapen i containergruppen med värden som har ändrats för din miljö:

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

Distribuera containergruppen

Skapa en resursgrupp med kommandot az group create:

az group create --name myResourceGroup --location eastus

Distribuera containergruppen med kommandot az container create och skicka YAML-filen som ett argument:

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

Inom några sekunder bör du få ett första svar från Azure.

Visa distributionstillstånd

Om du vill visa status för distributionen använder du följande az container show-kommando:

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

Om du vill visa programmet som körs går du till dess IP-adress i webbläsaren. IP-adressen finns till exempel i 52.168.26.124 följande exempelutdata:

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

Visa containerloggar

Visa loggutdata för en container med kommandot az container logs. Argumentet --container-name anger den container som loggar ska hämtas från. I det här exemplet aci-tutorial-app anges containern.

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

Utdata:

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"

Om du vill se loggarna för sidovagnscontainern kör du ett liknande kommando som anger aci-tutorial-sidecar containern.

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

Utdata:

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

Som du ser gör sidovagnen regelbundet en HTTP-begäran till huvudwebbappen via gruppens lokala nätverk för att säkerställa att den körs. Det här sidovagnsexempel kan utökas för att utlösa en avisering om den har fått en annan HTTP-svarskod än 200 OK .

Nästa steg

I den här självstudien använde du en YAML-fil för att distribuera en grupp med flera containrar i Azure Container Instances. Du har lärt dig att:

  • Konfigurera en YAML-fil för en grupp med flera containrar
  • Distribuera containergruppen
  • Visa loggarna för containrarna

Du kan också ange en grupp med flera containrar med hjälp av Resource Manager mall. En Resource Manager mall kan enkelt anpassas för scenarier när du behöver distribuera ytterligare Azure-tjänstresurser med containergruppen.