(EN DESUSO) Introducción a las soluciones de hospedaje de contenedores de Docker mediante Azure Container Service

Advertencia

Azure Container Service (ACS) está en desuso. No hay características o funcionalidades nuevas para agregar a ACS. Todas las API, la experiencia del portal, los comandos de la CLI y la documentación se marcan como en desuso.

Para más información, consulte el anuncio de desuso de Azure Container Service en Azure.com.

Se recomienda implementar una de las siguientes soluciones de Azure Marketplace:

Si desea usar Kubernetes, consulte Azure Kubernetes Service.

El servicio Contenedor de Azure simplifica la creación, configuración y administración de un clúster de máquinas virtuales preconfiguradas para ejecutar aplicaciones en contenedor. Usa una configuración optimizada de herramientas de programación y orquestación de código abierto conocidas. Esto le permite usar sus conocimientos o recurrir a un importante y creciente grupo de expertos comunitarios para implementar y administrar aplicaciones basadas en contenedores en Microsoft Azure.

El servicio Contenedor de Azure proporciona un medio para administrar aplicaciones en contenedor en varios hosts de Azure.

El servicio Contenedor de Azure usa el formato de contenedor Docker para garantizar que los contenedores de su aplicación sean completamente portátiles. También es compatible con su elección de Marathon y DC/OS, Docker Swarm o Kubernetes para que pueda escalar estas aplicaciones a miles e incluso a decenas de miles de contenedores.

Con el servicio Contenedor de Azure puede aprovechar las características empresariales de Azure sin dejar de mantener la portabilidad de aplicaciones, incluida la portabilidad en las capas de orquestación.

Uso del servicio Contenedor de Azure

Nuestro objetivo con Azure Container Service es proporcionar un entorno de hospedaje de contenedores mediante el uso de tecnologías y herramientas de código abierto, conocidas por los usuarios. Con este fin, se exponen los puntos de conexión de API estándar del orquestador que haya elegido (DC/OS, Docker Swarm o Kubernetes). Al usar estos puntos de conexión, puede aprovechar cualquier software que se comunique con estos. Por ejemplo, en el caso del punto de conexión de Docker Swarm, puede usar la interfaz de la línea de comandos (CLI) de Docker. Para DC/OS, puede usar la CLI de DCOS. Para Kubernetes, puede elegir kubectl.

Creación de un clúster de Docker con el servicio Contenedor de Azure

Para comenzar a usar Azure Container Service, implementará un clúster de Azure Container Service mediante el portal (busque Azure Container Service en Marketplace), mediante una plantilla de Azure Resource Manager (Docker Swarm, DC/OS o Kubernetes), o con la CLI de Azure. Las plantillas de inicio rápido que se proporcionan se pueden modificar para que incluyan una configuración de Azure adicional o avanzada. Para más información, consulte Implementación de un clúster de Azure Container Service.

Implementación de una aplicación

Azure Container Service permite elegir los orquestadores Docker Swarm, DC/OS o Kubernetes. El procedimiento para implementar la aplicación dependerá del orquestador que elija.

Uso de DC/OS

DC/OS es un sistema operativo distribuido basado en el kernel de sistemas distribuidos Apache Mesos. Apache Mesos se hospeda en Apache Software Foundation e incluye algunos de los principales nombres de TI como usuarios y colaboradores.

Azure Container Service configurado para DC/OS que muestra agentes y maestros.

DC/OS y Apache Mesos presentan una impresionante serie de características:

  • Escalabilidad demostrada
  • Elementos primarios y secundarios replicados tolerantes a errores que usan Apache ZooKeeper
  • Compatibilidad con los contenedores en formato Docker
  • Aislamiento nativo entre las tareas con contenedores de Linux
  • Programación de varios recursos (memoria, CPU, disco y puertos)
  • API de Java, Python y C++ para desarrollar nuevas aplicaciones paralelas
  • Una IU web para ver el estado del clúster

De forma predeterminada, la instancia de DC/OS que se ejecuta en el servicio de contenedor de Azure incluye la plataforma de orquestación Marathon para cargas de trabajo de programación. Sin embargo, con la implementación de DC/OS de ACS, se incluye el universo de servicios de Mesosphere que se puede agregar a su servicio. Los servicios del universo incluyen Spark, Hadoop, Cassandra, y muchos más.

Universo de DC/OS en el servicio de contenedor de Azure

Uso de Marathon

Marathon es un sistema de inicialización y control de todo el clúster para servicios en cgroups o, en el caso del servicio Contenedor de Azure, contenedores en formato Docker. Marathon proporciona una IU web desde la que puede implementar aplicaciones. Puede tener acceso a esta desde una dirección URL que se parece a http://DNS_PREFIX.REGION.cloudapp.azure.com donde DNS_PREFIX y REGION se definen en el momento de la implementación. También puede proporcionar su propio nombre DNS. Para más información sobre cómo ejecutar un contenedor mediante la interfaz de usuario web de Marathon, consulte Administración de contenedores de DC/OS a través de la interfaz de usuario web de Marathon.

Lista de aplicaciones de Marathon

Además, puede usar las API de REST para comunicarse con Marathon. Existen varias bibliotecas de cliente que están disponibles para cada herramienta. Abarcan una variedad de lenguajes y puede usar el protocolo HTTP en cualquier lenguaje. Muchas herramientas de DevOps conocidas también proporcionan compatibilidad con Marathon. Esto proporciona la máxima flexibilidad a su equipo de operaciones cuando trabaja con un clúster del servicio Contenedor de Azure. Para más información sobre cómo ejecutar un contenedor mediante la API de REST de Marathon, consulte Administración de contenedores de DC/OS mediante la API de REST de Marathon.

Uso de Docker Swarm

Docker Swarm proporciona agrupación en clústeres nativa para Docker. Como Docker Swarm proporciona servicio a la API de Docker estándar, cualquier herramienta que ya se comunique con Docker daemon podrá usar Swarm para escalar de forma transparente a varios hosts en el servicio Contenedor de Azure.

Azure Container Service configurado para usar Swarm.

Nota

El orquestador de Docker Swarm de Azure Container Service utiliza Swarm, que es independiente y heredado. Actualmente, el modo Swarm integrado (en Docker 1.12 y versiones posteriores) no es un orquestador admitido en Azure Container Service. Si desea implementar un clúster en modo Swarm en Azure, use el proyecto de código abierto ACS Engine, una plantilla de inicio rápido contribuida por la comunidad, o una solución de Docker de Azure Marketplace.

Entre las herramientas compatibles para administrar contenedores en un clúster Swarm se incluyen las siguientes:

  • Dokku
  • CLI de Docker y Docker Compose
  • Krane
  • Jenkins

Uso de Kubernetes

Kubernetes es una conocida herramienta de orquestación de código abierto para su uso en producción. Kubernetes automatiza la implementación, el escalado y la administración de aplicaciones en contenedor. Dado que es una solución de código abierto y está controlada por la comunidad de código abierto, se ejecuta sin problemas en Azure Container Service y puede usarse para implementar contenedores a escala en Azure Container Service.

Azure Container Service configurado para usar Kubernetes.

Tiene un amplio conjunto de características que incluyen:

  • Escalado horizontal
  • Detección de servicio y equilibrio de carga
  • Secretos y administración de configuración
  • Lanzamientos y reversiones automatizados basados en API
  • Recuperación automática

Vídeos

Introducción a Azure Container Service:

Building Applications Using the Azure Container Service (Creación de aplicaciones mediante Azure Container Service) (Build 2016)

Pasos siguientes

Implementar un clúster del servicio de contenedores mediante el portal o la CLI de Azure.