Sdílet prostřednictvím


Kurz: Nasazení skupiny více kontejnerů pomocí souboru YAML

Azure Container Instances podporuje nasazení více kontejnerů do jednoho hostitele pomocí skupiny kontejnerů. Skupina kontejnerů je užitečná při vytváření sajdkáře aplikace pro protokolování, monitorování nebo jakoukoli jinou konfiguraci, kde služba potřebuje druhý připojený proces.

V tomto kurzu použijete kroky ke spuštění konfigurace sajdkáře se dvěma kontejnery nasazením souboru YAML pomocí Azure CLI. Soubor YAML poskytuje stručný formát pro zadání nastavení instance. Získáte informace pro:

  • Konfigurace souboru YAML
  • Nasazení skupiny kontejnerů
  • Zobrazení protokolů kontejnerů

Poznámka:

Skupiny s více kontejnery jsou aktuálně omezené na kontejnery Linuxu.

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Požadavky

Konfigurace souboru YAML

Pokud chcete nasadit skupinu s více kontejnery pomocí příkazu az container create v Azure CLI, musíte zadat konfiguraci skupiny kontejnerů v souboru YAML. Pak do příkazu předejte soubor YAML jako parametr.

Začněte zkopírováním následujícího YAML do nového souboru s názvem deploy-aci.yaml. V Azure Cloud Shellu můžete pomocí editoru Visual Studio Code vytvořit soubor v pracovním adresáři:

code deploy-aci.yaml

Tento soubor YAML definuje skupinu kontejnerů s názvem myContainerGroup se dvěma kontejnery, veřejnou IP adresou a dvěma vystavenými porty. Kontejnery se nasazují z veřejných imagí Microsoftu. První kontejner ve skupině spouští internetovou webovou aplikaci. Druhý kontejner, sajdkárna, pravidelně provádí požadavky HTTP na webovou aplikaci spuštěnou v prvním kontejneru prostřednictvím místní sítě skupiny kontejnerů.

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

Pokud chcete použít registr imagí privátního kontejneru, přidejte imageRegistryCredentials vlastnost do skupiny kontejnerů s hodnotami upravenými pro vaše prostředí:

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

Nasazení skupiny kontejnerů

Pomocí příkazu az group create vytvořte skupinu prostředků:

az group create --name myResourceGroup --location eastus

Nasaďte skupinu kontejnerů pomocí příkazu az container create a předáte soubor YAML jako argument:

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

Během několika sekund by se měla zobrazit první odezva z Azure.

Zobrazení stavu nasazení

Pokud chcete zobrazit stav nasazení, použijte následující příkaz az container show :

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

Pokud chcete zobrazit spuštěnou aplikaci, přejděte v prohlížeči na její IP adresu. NAPŘÍKLAD IP adresa je 52.168.26.124 v tomto příkladu výstupu:

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

Zobrazení protokolů kontejneru

Pomocí příkazu az container logs zobrazte výstup protokolu kontejneru. Argument --container-name určuje kontejner, ze kterého se mají protokoly vyžádat. V tomto příkladu aci-tutorial-app je určen kontejner.

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

Výstup:

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"

Pokud chcete zobrazit protokoly kontejneru sajdkáře, spusťte podobný příkaz určující aci-tutorial-sidecar kontejner.

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

Výstup:

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

Jak vidíte, sajdkár pravidelně provádí požadavek HTTP na hlavní webovou aplikaci prostřednictvím místní sítě skupiny, aby se zajistilo, že běží. Tento příklad sajdkáře lze rozšířit tak, aby aktivoval výstrahu, pokud obdržel jiný kód odpovědi HTTP než 200 OK.

Další kroky

V tomto kurzu jste použili soubor YAML k nasazení skupiny více kontejnerů ve službě Azure Container Instances. Naučili jste se:

  • Konfigurace souboru YAML pro skupinu s více kontejnery
  • Nasazení skupiny kontejnerů
  • Zobrazení protokolů kontejnerů

Pomocí šablony Resource Manageru můžete také zadat skupinu s více kontejnery. Šablonu Resource Manageru je možné snadno přizpůsobit pro scénáře, kdy potřebujete nasadit více prostředků služby Azure se skupinou kontejnerů.