Implementación de grupos de contenedores
El recurso de nivel superior de Azure Container Instances es el grupo de contenedores. Un grupo de contenedores es una colección de contenedores que se programan en la misma máquina host. Los contenedores comparten un ciclo de vida, recursos, red local y volúmenes de almacenamiento.
Cosas que debe saber sobre los grupos de contenedores
Veamos algunos detalles sobre los grupos de contenedores para Azure Container Instances.
Un grupo de contenedores es similar a un pod en Kubernetes. Normalmente, un pod se asigna 1:1 con un contenedor, pero un pod puede contener varios contenedores. Los contenedores de un pod multicontenedor pueden compartir recursos relacionados.
Azure Container Instances asigna recursos a un grupo multicontenedor agregando las solicitudes de recursos de todos los contenedores del grupo. Los recursos pueden incluir elementos como CPU, memoria y GPU.
Imagine un grupo de contenedores que tiene dos contenedores que requieren recursos de CPU. Cada contenedor solicita una CPU. Azure Container Instances asigna dos CPU para el grupo de contenedores.
Hay dos maneras habituales de implementar un grupo multicontenedor: con plantillas de Azure Resource Manager (ARM) y con archivos YAML.
Plantilla de ARM. Se recomienda usar una plantilla de ARM para implementar otros recursos de servicios de Azure cuando se implementan instancias de contenedor, como un recurso compartido de archivos de Azure Files.
Archivo YAML. Dada la naturaleza concisa del formato YAML, se recomienda usar un archivo YAML cuando la implementación incluya únicamente instancias de contenedor.
Los grupos de contenedores pueden compartir una dirección IP externa, uno o varios puertos de esa dirección IP y una etiqueta DNS con un FQDN.
Acceso de cliente externo. Debe exponer el puerto en la dirección IP y desde el contenedor para permitir que clientes externos lleguen a un contenedor del grupo.
Asignación de puertos. No se admite la asignación de puertos, porque los contenedores de un grupo comparten un espacio de nombres de puerto.
Grupos eliminados. Cuando se elimina un grupo de contenedores, se liberan su dirección IP y su FQDN.
Ejemplo de configuración
Vea el siguiente ejemplo de un grupo multicontenedor con dos contenedores.
El grupo multicontenedor tiene las siguientes características y configuración:
- El grupo de contenedores está programado en una sola máquina host y tiene asignada una etiqueta de nombre DNS.
- El grupo de contenedores expone una única dirección IP pública con un puerto expuesto.
- Un contenedor del grupo escucha en el puerto 80. El otro contenedor escucha en el puerto 1433.
- El grupo incluye dos recursos compartidos de archivos de Azure Files como montajes de volumen. Cada contenedor del grupo monta uno de los recursos compartidos de archivos localmente.
Aspectos que deben tenerse en cuenta cuando se usan grupos de contenedores
Los grupos multicontenedor son útiles cuando se quiere dividir una sola tarea funcional en varias imágenes de contenedor. Los distintos equipos pueden entregar las imágenes y las imágenes pueden tener requisitos de recursos independientes.
Tenga en cuenta los siguientes escenarios para trabajar con grupos multicontenedor. Piense en qué opciones pueden sustentar sus aplicaciones internas para el comerciante minorista en línea.
Considere las actualizaciones de las aplicaciones web. Admita actualizaciones de las aplicaciones web implementando un grupo multicontenedor. Un contenedor del grupo sirve la aplicación web y otro contenedor extrae el contenido más reciente del control de código fuente.
Considere la recopilación de datos de registros. Use un grupo multicontenedor para capturar datos de registros y métricas sobre la aplicación. El contenedor de la aplicación genera registros y métricas. Un contenedor de registro recopila los datos de salida y escribe los datos en el almacenamiento a largo plazo.
Considere la supervisión de las aplicaciones. Habilite la supervisión de su aplicación con un grupo multicontenedor. Un contenedor de supervisión realiza periódicamente una solicitud al contenedor de la aplicación para asegurarse de que la aplicación se ejecuta y responde correctamente. El contenedor de supervisión genera una alerta si identifica posibles problemas con la aplicación.
Considere la funcionalidad de front-end y back-end. Cree un grupo multicontenedor para albergar el contenedor de front-end y el de back-end. El contenedor de front-end puede servir una aplicación web. El contenedor de back-end puede ejecutar un servicio para recuperar datos.