Como crear un cluster de contenedores con Azure Container Services

Azure Container Service (ACS) ofrece un rápido deployment de tecnologías de contenedores como Docker y orquestadores como Docker Swarm y DC/OS. Mediante el uso de ACS podemos implementar clusters de DC/OS y Docker Swarm usando Azure Resource Manager (ARM) templates o en el portal de AzureLa manera de implementar estas soluciones es conAzure Virtual Machine Scale Sets, de esta manera nuestros cluster aprovecha la infraestructura que Azure nos ofrece.

Pre-requisitos
  • Tener una suscripción de Azure
Nota: no existe opción gratuita para este servicio, por lo cual tendrás que pagar por el servicio

En este post veremos como crear un cluster con Azure Container Service desde el portal de Azure.

Crear un servicio usando portal de Azure

Primero debemos de hacer signup en el portal de Azure , luego damos clic en "New" y  buscan en Marketplace: "Azure Container Service". Deberías de ver lo siguiente:


Selecciona Azure Container Service y luego clic en "Crear", deberías de ver un nuevo "blade" como la siguiente imagen


Una vez que diste crear, Azure va a pedir la siguiente información para crear el recurso

  • User name:  Este es el usuario que será usado de cuenta en cada una de las "Virtual Machines" (VMs) y "Virtual Machine Scale Sets" en el Azure Container Service cluster.
  • Subscription: Selecciona una suscripción de Azure.
  • Resource group: Selecciona o crea un nuevo "Resource group".
  • Location: Selecciona una región de Azure donde se hará el deployment de Azure Container Service.
  • SSH public key: Agrega una llave publica que va ser usada para autenticación contra las maquinas virtuales de Azure Container Service. Es muy importante que la llave publica no contenga saltos de línea, y debe de incluir el prefijo "ssh-rsa" y el sufijo "username@domain". Deberia de verse de la siguiente manera: ssh-rsa AAAAB3Nz...<...>...UcyupgH azureuser@linuxvm. Para crear una llave SSH los siguientes arituclos Linux y Windows (personalmente yo usé PuTTYgen, es muy fácil de usar)

A continuación vamos a elegir un tipo de orquestador para nuestros contenedores:
Por el momento, Azure solo soporta:
  • DC/OS: Deploys a DC/OS cluster
  • Swarm: Deploys a Docker Swarm cluster
Presiona "OK" cuando elijas un orquestador. Si necesitas conocer las diferencia entre los dos, ve las siguientes páginas: Docker Swarm, DC/OS:


Una vez seleccionado el orquestador, deberás de ingresar la siguiente información:
  • Master count: El número de nodos "master" en el cluster.
  • Agent count: Para Docker Swarm, esto va a ser el número inicial de agentes en el "agent scale set". Para DC/OS, esto va a ser el número inicial de agentes en una "private scale set". adicialmente, un "public scale set" es creado, la cual contiene un número predeterminado de agentes. El número de agentes en este "public scale set" es determinado por la cantidad de nodos "Master" que han sido creados en el cluster; un public agent por un master, y dos public agents por tres o cinco masters.
  • Agent virtual machine size: El tamaño de el agent virtual machines.
  • DNS prefix: Un nombre único global que se usa como prefijo para las piezas clave de los nombres de dominio para el servicio.

En el siguiente paso, Azure validará la información proporcionada. Una vez que finalice, damos clic en "OK"


Nota: Podemos descargar nuestro template generado por Azure, es una de las ventajas de utilizar ARM. El template contiene toda la información de nuestro ACS y puede ser desplegada a Azure en cualquier momento.

Y ahora, la hora de la verdad, damos clic en "Purchase" para que Azure realicé los cargos y creé el servicio.


Una vez que Azure finalice la creación del servicio, nuestro cluster esta listo para usarse.

Para una mejor compresión de la arquitectura de Azure Container Service, puedes revisar el siguiente documentación disponible en GitHub: Azure Container Service

Conclusión
Azure nos proporciona una manera sencilla de crear de manera robusta un cluster usando ARM para el despliegue de nuestros contenedores, facilitando la orquestación de contenedores sin preocuparnos por la configuración servidores, nodos master, agentes, discoverys, etc.
El equipo de Azure siempre recomienda usar siempre ARM a no ser que la opción que deses utilizar no este disponible por el momento.

Comments

Popular posts from this blog

Configurar y desplegar una Web API en Azure App Service Environment

Patrones de diseño para aplicaciones de alta disponibilidad en Azure - Resilient Applications (Parte I: Retry Policy)

Integrar Web API de .NET en proyecto de Xamarin.Forms utilizando Visual Studio y Azure API App

Publicar resultados de una consulta de Azure SQL Database a Azure Service Bus con Logic App

Conectar .NET Web API con Azure API Management