Tutorial: Implementación de un grupo de varios contenedores con un archivo YAML
Azure Container Instances admite la implementación de varios contenedores en un solo host mediante un grupo de contenedores. Un grupo de contenedores es útil cuando se crea un sidecar de aplicación para el registro, la supervisión o cualquier otra configuración donde un servicio necesite un segundo proceso asociado.
En este tutorial seguirá los pasos para ejecutar una configuración de sidecar de dos contenedores mediante la implementación de un archivo YAML con la CLI de Azure. Un archivo YAML proporciona un formato conciso para especificar la configuración de instancias. Aprenderá a:
- Configurar un archivo YAML
- Implementación del grupo de contenedores
- Ver los registros de los contenedores
Nota
Los grupos de varios contenedores están restringidos actualmente a los contenedores Linux.
Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.
Requisitos previos
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
Configurar un archivo YAML
Para implementar un grupo de varios contenedores con el comando az container create en la CLI de Azure, debe especificar la configuración del grupo de contenedores en un archivo YAML. A continuación, pase el archivo YAML como parámetro al comando.
Para empezar, copie el siguiente archivo YAML en un nuevo archivo denominado deploy-aci.yaml. En Azure Cloud Shell, puede usar Visual Studio Code para crear el archivo en el directorio de trabajo:
code deploy-aci.yaml
En este archivo YAML, se define un grupo de contenedores denominado "myContainerGroup" con dos contenedores, una dirección IP pública y dos puertos expuestos. Los contenedores se implementan desde imágenes públicas de Microsoft. El primer contenedor del grupo ejecuta una aplicación web accesible desde Internet. El segundo contenedor, el sidecar, realiza solicitudes HTTP periódicamente a la aplicación web que se ejecuta en el primer contenedor a través de la red local del grupo de contenedores.
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
Para usar un registro de imágenes de contenedor privado, agregue la propiedad imageRegistryCredentials
al grupo de contenedores, con los valores modificados para su entorno:
imageRegistryCredentials:
- server: imageRegistryLoginServer
username: imageRegistryUsername
password: imageRegistryPassword
Implementación del grupo de contenedores
Cree un grupo de recursos con el comando az group create:
az group create --name myResourceGroup --location eastus
Implemente el grupo de contenedores con el comando az container create y pase el archivo YAML como un argumento:
az container create --resource-group myResourceGroup --file deploy-aci.yaml
Al cabo de unos segundos, debe recibir una respuesta inicial de Azure.
Visualización del estado de la implementación
Para ver el estado de la implementación, use el siguiente comando az container show:
az container show --resource-group myResourceGroup --name myContainerGroup --output table
Si desea ver la aplicación en ejecución, vaya a su dirección IP en el explorador. Por ejemplo, la dirección IP es 52.168.26.124
en esta salida de ejemplo:
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
Visualización de registros de contenedores
Visualice la salida del registro de un contenedor con el comando az container logs. El argumento --container-name
especifica el contenedor del que se van a extraer registros. En este ejemplo, se especifica el contenedor aci-tutorial-app
.
az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-app
Salida:
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"
Para ver los registros para el contenedor sidecar, ejecute un comando similar en el que se especifique el contenedor aci-tutorial-sidecar
.
az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-sidecar
Salida:
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
Como puede ver, el sidecar realiza periódicamente una solicitud HTTP a la aplicación web principal a través de la red local del grupo para asegurarse de que se ejecuta. Este ejemplo de sidecar se podría ampliar para desencadenar una alerta si recibe un código de respuesta HTTP distinto de 200 OK
.
Pasos siguientes
En este tutorial, ha usado un archivo YAML para implementar un grupo de varios contenedores en Azure Container Instances. Ha aprendido a:
- Configurar un archivo YAML para un grupo de varios contenedores
- Implementación del grupo de contenedores
- Ver los registros de los contenedores
También puede especificar un grupo de varios contenedores con una plantilla de Resource Manager. Una plantilla de Resource Manager se puede adaptar fácilmente a escenarios donde necesite implementar más recursos de servicio de Azure con el grupo de contenedores.