Samouczek: wdrażanie grupy z wieloma kontenerami przy użyciu pliku YAML

Usługa Azure Container Instances obsługuje wdrażanie wielu kontenerów na jednym hoście przy użyciu grupy kontenerów. Grupa kontenerów jest przydatna podczas tworzenia przyczepki aplikacji na potrzeby rejestrowania, monitorowania lub innej konfiguracji, w której usługa wymaga drugiego dołączonego procesu.

W tym samouczku wykonasz kroki, aby uruchomić prostą konfigurację przyczepki dwukontenerowej, wdrażając plik YAML przy użyciu interfejsu wiersza polecenia platformy Azure. Plik YAML zapewnia zwięzły format określania ustawień wystąpienia. Dowiedz się, jak odbywa się:

  • Konfigurowanie pliku YAML
  • Wdrażanie grupy kontenerów
  • Wyświetlanie dzienników kontenerów

Uwaga

Grupy z wieloma kontenerami są obecnie ograniczone do kontenerów systemu Linux.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Wymagania wstępne

Konfigurowanie pliku YAML

Aby wdrożyć grupę z wieloma kontenerami za pomocą polecenia az container create w interfejsie wiersza polecenia platformy Azure, należy określić konfigurację grupy kontenerów w pliku YAML. Następnie przekaż plik YAML jako parametr do polecenia .

Zacznij od skopiowania następującego kodu YAML do nowego pliku o nazwie deploy-aci.yaml. W usłudze Azure Cloud Shell możesz użyć programu Visual Studio Code do utworzenia pliku w katalogu roboczym:

code deploy-aci.yaml

Ten plik YAML definiuje grupę kontenerów o nazwie "myContainerGroup" z dwoma kontenerami, publicznym adresem IP i dwoma uwidoczninymi portami. Kontenery są wdrażane z publicznych obrazów firmy Microsoft. Pierwszy kontener w grupie uruchamia aplikację internetową. Drugi kontener, przyczepka, okresowo wysyła żądania HTTP do aplikacji internetowej działającej w pierwszym kontenerze za pośrednictwem sieci lokalnej grupy kontenerów.

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

Aby użyć prywatnego rejestru obrazów kontenera, dodaj imageRegistryCredentials właściwość do grupy kontenerów z wartościami zmodyfikowanymi dla środowiska:

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

Wdrażanie grupy kontenerów

Utwórz grupę zasobów za pomocą polecenia az group create :

az group create --name myResourceGroup --location eastus

Wdróż grupę kontenerów za pomocą polecenia az container create , przekazując plik YAML jako argument:

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

W ciągu kilku sekund powinna pojawić się początkowa odpowiedź z platformy Azure.

Wyświetlanie stanu wdrożenia

Aby wyświetlić stan wdrożenia, użyj następującego polecenia az container show :

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

Jeśli chcesz wyświetlić uruchomioną aplikację, przejdź do jej adresu IP w przeglądarce. Na przykład adres IP znajduje się 52.168.26.124 w następujących przykładowych danych wyjściowych:

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

Wyświetlanie dzienników kontenerów

Wyświetl dane wyjściowe dziennika kontenera przy użyciu polecenia az container logs . Argument --container-name określa kontener, z którego mają być pobierane dzienniki. W tym przykładzie aci-tutorial-app określono kontener.

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

Dane wyjściowe:

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"

Aby wyświetlić dzienniki kontenera przyczepki, uruchom podobne polecenie określające aci-tutorial-sidecar kontener.

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

Dane wyjściowe:

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 widać, przyczepka okresowo wysyła żądanie HTTP do głównej aplikacji internetowej za pośrednictwem sieci lokalnej grupy, aby upewnić się, że jest uruchomiona. Ten przykład przyczepki można rozszerzyć, aby wyzwolić alert, jeśli otrzyma kod odpowiedzi HTTP inny niż 200 OK.

Następne kroki

W tym samouczku użyto pliku YAML do wdrożenia grupy z wieloma kontenerami w usłudze Azure Container Instances. W tym samouczku omówiono:

  • Konfigurowanie pliku YAML dla grupy z wieloma kontenerami
  • Wdrażanie grupy kontenerów
  • Wyświetlanie dzienników kontenerów

Można również określić grupę z wieloma kontenerami przy użyciu szablonu usługi Resource Manager. Szablon usługi Resource Manager można łatwo dostosować do scenariuszy, gdy trzeba wdrożyć dodatkowe zasoby usługi platformy Azure z grupą kontenerów.