Compartir a través de


Azure Container Instances y orquestadores de contenedores

Los contenedores, debido a su tamaño pequeño y a la orientación de aplicaciones, se adaptan perfectamente a entornos de entrega ágil y arquitecturas basadas en microservicios. La tarea de automatizar y administrar una gran cantidad de contenedores y cómo interactúan se conoce como orquestación. Entre los orquestadores de contenedores más populares se encuentran Kubernetes, DC/OS y Docker Swarm.

Azure Container Instances proporciona algunas de las funcionalidades básicas de programación de plataformas de orquestación. Y aunque no cubre los servicios de mayor valor que proporcionan esas plataformas, Azure Container Instances puede ser complementario para ellos. En este artículo se describe el ámbito de los aspectos que controla Azure Container Instances y cómo los orquestadores de contenedores completos pueden interactuar con él.

Orquestación tradicional

La definición estándar de orquestación incluye las tareas siguientes:

  • Programación: en una solicitud de recurso e imagen de contenedor, busque una máquina adecuada en la cual ejecutar el contenedor.
  • Afinidad/antiafinidad: especifique que un conjunto de contenedores se deben ejecutar de manera cercana entre sí (para mejorar el rendimiento) o con la distancia suficiente como para mejorar la disponibilidad.
  • Seguimiento del estado: inspeccione los contenedores por si existen errores y vuelva a programarlos.
  • Conmutación por error: realice un seguimiento de qué se ejecuta en cada máquina y vuelva a programar los contenedores desde máquinas con error a nodos en estado correcto.
  • Escalado: agregue o quite instancias de contenedores para coincidir con la demanda, ya sea manual o automáticamente.
  • Redes: proporcione una red superpuesta para coordinar los contenedores a fin de que se comuniquen entre varios equipos host.
  • Detección de servicios: permita que los contenedores se localicen entre sí de manera automática incluso cuando se mueven entre equipos host y cambian las direcciones IP.
  • Actualizaciones de aplicaciones coordinadas: administre las actualizaciones de contenedores para evitar el tiempo de inactividad de las aplicaciones y permitir la reversión si algo sale mal.

Orquestación con Azure Container Instances: un enfoque por niveles

Azure Container Instances permite un enfoque por niveles a la orquestación, lo que proporciona todas las funcionalidades de programación y administración que se requieren para ejecutar un solo contenedor mientras se permite que las plataformas de orquestadores administren tareas de varios contenedores sobre él.

Dado que Azure administra la infraestructura subyacente para las instancias de contenedor, una plataforma de orquestador no necesita preocuparse por encontrar una máquina host adecuada en la que ejecutar un único contenedor. La elasticidad de la nube garantiza que siempre haya uno disponible. En lugar de eso, el orquestador se puede centrar en las tareas que simplifican la implementación de arquitecturas con varios contenedores, incluidas actualizaciones coordinadas y escalado.

Escenarios

Aunque la integración del orquestador con Azure Container Instances sigue siendo naciente, se prevé que surgen algunos entornos diferentes:

Orquestación exclusiva de Container Instances

Dado que se inician rápidamente y se facturan por segundo, un entorno basado exclusivamente en Azure Container Instances ofrece la forma más rápida de comenzar usar y trabajar con cargas de trabajo muy variables.

Combinación de Container Instances y contenedores en Virtual Machines

En el caso de cargas de trabajo estables y de ejecución prolongada, orquestar contenedores en un clúster de máquinas virtuales dedicadas habitualmente es más barato que ejecutar los mismos contenedores con Azure Container Instances. Sin embargo, Container Instances ofrece una solución excelente para expandir y contraer rápidamente la capacidad total para enfrentar las subidas inesperadas o breves en el uso.

En lugar de escalar horizontalmente el número de máquinas virtuales del clúster, luego implementar más contenedores en esas máquinas, el orquestador puede programar los contenedores adicionales en Azure Container Instances y eliminarlos cuando ya no sean necesarios.

Implementación de ejemplo: nodos virtuales en Azure Container Instances

Para escalar rápidamente las cargas de trabajo de aplicación en un clúster de Azure Kubernetes Service, puede usar nodos virtuales creados de manera dinámica en Azure Container Instances. Los nodos virtuales se registran como nodos que tienen capacidad ilimitada con el plano de control del clúster de AKS. Al implementar pods en un nodo virtual en el clúster de AKS, se ejecutan como grupos de contenedores en ACI.

Actualmente, estos nodos virtuales admiten instancias de contenedor de Linux. Consulte Nodos virtuales en Azure Container Instances para más información.

Pasos siguientes

Use la guía de inicio rápido para crear el primer contenedor con Azure Container Instances.