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 sidovagn för program för loggning, övervakning eller någon annan konfiguration där en tjänst behöver en andra bifogad process.
I den här självstudien följer du stegen för att köra en dubbelcontainerkonfiguration med sidovagn genom att distribuera en YAML-fil med hjälp av Azure CLI. En YAML-fil ger ett kortfattat format för att ange instansinställningarna. Du lär dig att:
- Konfigurera en YAML-fil
- Distribuera containergruppen
- Visa loggarna för containrarna
Kommentar
Grupper med flera containrar är för närvarande begränsade till Linux-containrar.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
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. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. 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 en internetuppkopplad webbapp. 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 du till imageRegistryCredentials
egenskapen i containergruppen med värden som ä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 distributionens tillstånd använder du följande kommando az container show :
az container show --resource-group myResourceGroup --name myContainerGroup --output table
Om du vill visa det program som körs navigerar du till dess IP-adress i webbläsaren. IP-adressen finns 52.168.26.124
till exempel i det här exemplets utdata:
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 loggarna ska hämtas från. I det här exemplet anges containern aci-tutorial-app
.
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 containern aci-tutorial-sidecar
.
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 sidovagnsexemplet kan expanderas för att utlösa en avisering om den har tagit emot 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 en Resource Manager-mall. En Resource Manager-mall kan enkelt anpassas för scenarier när du behöver distribuera fler Azure-tjänstresurser med containergruppen.