sql >> Base de Datos >  >> RDS >> Database

Creación de un clúster Docker Swarm en Azure Container Service

Servicio de contenedor de Azure (ACS) es una solución de hospedaje de contenedores optimizada para las herramientas orquestadoras de contenedores de código abierto más utilizadas. Las herramientas de orquestación de contenedores admitidas son DC/OS basado en Mesos, Kubernetes y Docker Swarm. O bien, se puede utilizar el motor Docker independiente. Azure Container Service expone los extremos de la API para un motor de orquestación seleccionado, de modo que las herramientas de código abierto para varios casos de uso, incluidas la supervisión, la integración continua y las herramientas de línea de comandos, puedan acceder al servicio de contenedor.

¿Qué es un Docker Swarm de ACS?

Un Enjambre Docker es una colección/clúster de máquinas virtuales (VM) que ejecutan Docker Engine e incluye otros recursos, como Load Balancers, VM Scale Sets o Availability Sets, Storage y Network. Un Docker Swarm en Azure Container Service consta de nodos Swarm Master y Swarm Agent (VM). Un Swarm Master puede conectarse directamente usando una clave SSH RSA. Un Swarm Agent no se puede conectar directamente mediante una clave SSH RSA.

Azure Container Service Docker Swarm Cluster no es un clúster de modo Docker Swarm. El modo Docker Swarm debe inicializarse en un maestro ACS Swarm. Cuando se crea un Docker Swarm Cluster en Azure Portal, todos los recursos necesarios (VM, Scale Sets, Load balancers) se crean automáticamente.

Este artículo tiene las siguientes secciones:

  • Configuración del entorno
  • Inicio de Azure Cloud Shell
  • Creación de un par de claves SSH RSA
  • Creación de un Docker Swarm de Azure Container Service
  • Exploración de los recursos del clúster Docker Swarm
  • Conectarse a un Swarm Master
  • Conclusión

Configuración del entorno

Una cuenta de Azure es el único requisito previo. Se puede crear una cuenta de Azure en https://azure.microsoft.com/.

Inicio de Azure Cloud Shell

Azure proporciona una interfaz de cliente para conectarse con la herramienta de Azure llamada Cloud Shell. Cloud Shell es un shell de administración basado en navegador para conectarse a Azure. Cloud Shell admite herramientas de cliente para seleccionar, incluidos módulos de PowerShell, herramientas de Azure, herramientas de contenedor, herramientas de base de datos, intérpretes de shell de Linux, control de código fuente y herramientas de compilación. Cloud Shell también es compatible con varios lenguajes de programación para elegir, incluidos .NET y Node.js. Para iniciar Cloud Shell, haga clic en >_ icono, como se muestra en la Figura 1.


Figura 1: Iniciando Cloud Shell

Creación de un par de claves SSH RSA

Para crear una solución hospedada basada en Azure Container Service, se requiere una clave SSH RSA. Cree una clave SSH RSA desde Cloud Shell con el siguiente comando:

ssh-keygen -t rsa -b 2048

Se muestra un símbolo del sistema para especificar el archivo en el que guardar la clave, como se muestra en la Figura 2. Haga clic en Intro para seleccionar el archivo predeterminado.


Figura 2: Generación de una clave SSH RSA

Se muestra otro símbolo del sistema para especificar la frase de contraseña. Haga clic en Entrar para no usar una frase de contraseña. Independientemente de si se selecciona o no una frase de contraseña, se muestra un símbolo del sistema de confirmación para especificar la frase de contraseña nuevamente. Haga clic en Entrar de nuevo si no se utiliza ninguna frase de contraseña. Se genera y guarda un par de claves pública/privada. El resultado completo del comando ssh-keygen se muestra a continuación:

[email protected]:~$ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/home/deepak/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/deepak/.ssh/id_rsa.
Your public key has been saved in /home/deepak/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:+YArpP5Eri/JENp0b3CKVbOz3qFPveivTHr1vyaHv/o
   [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|      o          |
|     . o         |
|. . + +. .       |
|.+ +o=.oS        |
|o o=. +..+.      |
| o..+o.oooo. .   |
| .+o .o=o. .+ o  |
|  o+o .+*oo .OEo |
+----[SHA256]-----+

Los permisos predeterminados establecidos en la clave SSH RSA son demasiado abiertos y no se pueden usar con ACS. Modifique los permisos a 400 (solo lectura por propietario):

[email protected]:~$ chmod 400 /home/deepak/.ssh/id_rsa

Usaremos la clave SSH RSA cuando creemos un Docker Swarm. Abra el archivo de clave pública en un editor vi:

[email protected]:~$ vi /home/deepak/.ssh/id_rsa.pub

Y, seleccione todo y copie el contenido de id_rsa.pub y guárdelo en un archivo de texto para usarlo más tarde.

Creación de un Docker Swarm de Azure Container Service

Para crear un Docker Swarm basado en Azure Container Service, haga clic en Nuevo en Azure Portal, como se muestra en la Figura 3.


Figura 3: Azure portal>Nuevo

En el Nuevo asistente, se muestran varias aplicaciones de Azure Marketplace para elegir, como se muestra en la Figura 4.


Figura 4: Asistente nuevo

Seleccione Azure Container Service, como se muestra en la Figura 5.


Figura 5: Selección del servicio de contenedor de Azure

El asistente Create Azure Container Service se inicia, como se muestra en la Figura 6, con los Conceptos básicos Se muestra el cuadro de diálogo para configurar los ajustes básicos.


Figura 6: Crear Azure Container Service>Conceptos básicos

Especifique un servicio de contenedor Nombre (hello-world-docker) y seleccione una Suscripción . Para Grupo de recursos, seleccione Usar existente y seleccione un grupo de recursos, como se muestra en la Figura 7. Alternativamente, seleccione Crear nuevo opción.


Figura 7: Crear Azure Container Service>Conceptos básicos

Seleccione una Ubicación y haga clic en Aceptar, como se muestra en la Figura 8.


Figura 8: Configuración de los ajustes básicos para un servicio de contenedor de Azure

En Configuración maestra, proporcione la información maestra, como se muestra en la Figura 9.


Figura 9: Configuración maestra

Selecciona Orquestador como Enjambre , como se muestra en la Figura 10.


Figura 10: Selección de orquestador como Docker Swarm

Especifique un prefijo de nombre DNS ("docker":un nombre arbitrario) y especifique un Nombre de usuario , que también es un nombre arbitrario. En el campo de clave pública SSH, coloque la clave pública SSH RSA que se almacenó anteriormente en un archivo de texto, como se explica en la sección Creación de un par de claves SSH RSA . Seleccione Recuento maestro (1, 3 o 5), como se muestra en la Figura 11. Se aprovisiona un número impar de nodos maestros para requisitos de alta disponibilidad.


Figura 11: Proporcionar información maestra

Haga clic en Aceptar (consulte la Figura 12).


Figura 12: Completando la configuración maestra

En Configuración del agente , especifique el recuento de agentes , seleccione el Tamaño de la máquina virtual del agente y haga clic en Aceptar, como se muestra en la Figura 13.


Figura 13: Configuración del agente

En Resumen , la configuración de Swarm se valida y se debe mostrar un mensaje de "Validación superada", como se muestra en la Figura 14. Haga clic en Aceptar.


Figura 14: Resumen del enjambre

Se inicia el despliegue del Swarm, como se muestra en la Figura 15.


Figura 15: Implementación del servicio de contenedor de Azure

Cuando se completa la implementación, se muestra el mensaje "Implementación exitosa" (consulte la Figura 16).


Figura 16: Implementación exitosa

Exploración de los recursos del clúster Docker Swarm

Se muestran los recursos para Swarm, como se muestra en la Figura 17. Haga clic en Ver más para mostrar la lista completa de recursos generados.


Figura 17: Recursos

Se muestran todos los recursos de Swarm, como se muestra en la Figura 18. El tipo de recurso de Swarm se indica en TYPE e incluye máquinas virtuales, conjuntos de escalado de máquinas virtuales, direcciones IP públicas, conjuntos de disponibilidad, balanceadores de carga e interfaces de red.


Figura 18: Recursos del enjambre

Conexión a un Swarm Master

Para conectarse a un maestro Swarm, haga clic en una máquina virtual maestra Swarm, como se muestra en la Figura 18. Copie la dirección IP pública de la página de detalles del maestro Swarm (consulte la Figura 19).


Figura 19: Dirección IP pública del Swarm Master

Haga clic para copiar la dirección IP pública maestra de Swarm, como se muestra en la Figura 20.


Figura 20: Copia de la dirección IP pública de Swarm Master

Con la clave privada SSH, el puerto SSH (2200), el nombre de usuario y la dirección IP pública, conéctese a la VM maestra de Swarm:

[email protected]:~$ ssh -i /home/deepak/.ssh/id_rsa -p 2200
   [email protected]

En el símbolo del sistema "¿Está seguro de que desea continuar conectándose (sí/no)?", Especifique "sí" y se establecerá una conexión con el maestro Swarm, como se muestra en la Figura 21. Se indica que el maestro Swarm está ejecutando Ubuntu SO.


Figura 21: Conectando a Swarm Master

Una máquina virtual maestra de Swarm ejecuta el motor Docker de forma predeterminada.

Conclusión

En este artículo, creamos un clúster de Docker Swarm en Azure Container Service (ACS). Un ACS Docker Swarm no es un clúster en modo Docker Swarm, que debe inicializarse como en cualquier host Docker que ejecute la versión 1.12 o posterior. Las otras opciones (aparte de Docker Swarm) son crear un DC/OS basado en Mesos o un clúster de Kubernetes. Un ACS Docker Swarm es un clúster de máquinas virtuales que ejecutan Docker. Azure Container Service aprovisiona todos los recursos, incluidas las máquinas virtuales, las direcciones IP públicas, los conjuntos de escalado de máquinas virtuales, los equilibradores de carga y las interfaces de red. Nos conectamos a un Swarm master utilizando una clave privada SSH RSA, un nombre de usuario y una dirección IP pública del Swarm master.