‫Antes de expandir nuestros servicios para comenzar a funcionar en un grupo de nodos y todos los servicios que se comunican
‫entre sí, repasemos un par de nuevos conceptos que Swarm trae a la mesa.
‫El primero es un nuevo controlador de red llamado Overlay, y realmente solo crea una red como la
‫que está acostumbrada
‫a crear, la red de Docker crea y coloca una superposición de controlador.
‫Lo que eso significa básicamente es crear una red de puente de enjambre en la que los contenedores de los hosts
‫en la misma red virtual puedan acceder unos a otros como si estuvieran en una VLAN.
‫Esto es solo para comunicación dentro de enjambre.
‫El controlador de superposición no juega una gran cantidad en el tráfico que entra, ya que está tratando de
‫tener una visión global de la red para que no esté constantemente jugando con la configuración de red
‫en los nodos individuales.
‫También puede habilitar el cifrado de red completo utilizando IPiece SEC, donde realmente configurará túneles IPSec
‫entre todos los nodos de su enjambre.
‫Pero está desactivado por defecto solo por cuestiones de rendimiento.
‫Cuando crea sus servicios, puede agregarlos a ninguna red Overlay, o una o más redes Overlay.
‫Realmente depende del diseño de tu aplicación.
‫Ya sabes, muchos diseños tradicionales tendrían las bases de datos en una red backend y
‫los servidores web en una red frontend. Entonces tal vez tendrías una API entre los dos que estaría en
‫ambas redes, o algo así.
‫Y puedes hacer eso totalmente en Swarm.
‫Veamos esto en acción. Lo que quiero hacer es mostrarles cómo sería
‫si desplegáramos el ejemplo de Drupal de una tarea anterior con la base de datos de Postgres, como servicios, y luego creáramos una red
‫de superposición para que pudieran hablar entre ellos.
‫Create, y esto no ha cambiado para Swarm, aparte del hecho de que vamos a usar un nuevo controlador.
‫Primero tenemos que crear una red, por lo que Docker Network
‫Voy a llamarlo mydrupal.
‫DE ACUERDO.
‫Entonces, voy a hacer una ls de red Docker, y verán que tengo una nueva superposición. El ingreso uno está allí por defecto. Vamos a conectarlo a la red mydrupal.
‫También verá una nueva porque es un enjambre, que en realidad es una red saliente con la que no servicio de docker vamos a llamarlo red psql. En realidad, hay compleción de pestañas en los nombres de red.
‫necesitaremos meternos. Entonces recuerda que necesito agregar esa variable de entorno para la contraseña de Postgres.
‫Entonces, creemos nuestro servicio Postgres. crear nombre. Entonces podemos conectarnos más tarde.
‫Entonces vamos a usar la imagen de Postgres. Se ve bien.
‫Notarás aquí que no obtenemos la descarga completa de la imagen y todo eso,
‫porque los servicios no se pueden ejecutar en primer plano, porque tienen que pasar por el orquestador y el programador. Entonces, podemos hacer un servicio lócker, y podemos ver que
‫uno de ellos se está ejecutando.
‫Si hacemos un servicio de acoplador ps psql, podemos ver que esto se está ejecutando realmente en el nodo 1.
‫Así que puedo hacer un contenedor Docker registra psql, y luego puedo ver los registros de eso.
‫Sí. Parece que se está ejecutando.
‫Todo bien.
‫seguiré adelante y simplemente lo llamaré drupal.
‫Vamos a crear nuestro otro servicio, así que
‫También tenemos que adjuntarnos a esa misma red. Entonces queremos publicar el puerto 80:80 como lo hicimos con un
‫comando de ejecución del acoplador. Y usaremos la imagen de Drupal.
‫DE ACUERDO.
‫Podemos ver que está comenzando allí. lo que hace es volver Está instalado
‫Hay un truco. En realidad, puedes usar el comando watch en Linux para mirar. Básicamente. por defecto en Ubuntu. ah, ¿ves?
‫a ejecutar un comando una y otra vez. Si solo pone el reloj delante del servicio lócker, lo seguirá ejecutando cada dos segundos de forma predeterminada hasta Ahora tenemos uno por uno.
‫que lo haga. Está bien, y luego controlaré a C de eso. en el Nodo 2.
‫Podemos hacer un servicio Docker ps drupal y ver que drupal se está ejecutando
‫Tenemos la base de datos ejecutándose en el Nodo 1.
‫Tenemos el sitio web de Drupal ejecutándose en el Nodo 2.
‫Entonces, ¿cómo saben cómo hablar el uno con el otro?
‫Bueno, usando los nombres de los servicios.
‫Si pego en una de las direcciones IP, debería aparecer en la instalación de Drupal. Y si le digo
‫la base de datos aquí, el nombre de
‫la base de datos, vamos a hacer el postgres nuevamente, postgres, mi contraseña.
‫Para el host, al igual que cuando estábamos con Compose, creamos los nombres de los servicios en el archivo Compose, aquí, vamos a usar el nombre del
‫servicio que creamos para el servidor de la base de datos. Entonces, eso
‫fue psql.
‫Esta pantalla básicamente nos dice que puede hablar con la
‫base de datos a través de los nodos y configurar el sistema.
‫Eso es lo mejor de Overlay es que realmente actúa como si todo estuviera en la misma subred.
‫Todo bien.
‫Entonces ya no necesitamos esto.
‫Voy a terminar este ejemplo muy rápido solo para mostrarte la próxima novedad sobre Swarm. DE ACUERDO.
‫Ahora, este sitio se está ejecutando. Pero tengo tres nodos, entonces ¿cómo sé en qué nodo va a estar y a qué puerto debo asegurarme de que apunta mi DNS cuando creo Me
‫el nombre de este sitio web? Entonces, si
‫En mi caso, tengo tres direcciones IP y puedo equivoqué allí. lo ve, parece que el sitio web se está ejecutando en los tres nodos porque estoy mirando las tres direcciones IP.
‫copiar las Pero si voy aquí y hago este servicio ps drupal, sé que solo está ejecutando el nodo 2. aquí.
‫tres y poner las tres direcciones IP en y. Uy. Incluso puedo inspeccionar un servicio de Docker y ver que, de hecho, solo tiene una dirección IP en esa red de Entonces, ¿por qué está respondiendo en los tres hosts?
‫superposición. Eso nos lleva a nuestra próxima característica nueva.
‫