No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Swarm

Curso de Swarm

Guido Vilariño

Guido Vilariño

Networking y service discovery

18/24
Recursos
vamos a ver como es el networking al momento de trabajar con swarm, vamos a poder inspeccionar que tenemos en la red. Todo esto, utilizando el repositorio que encuentras en los enlaces del curso

Aportes 15

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

En caso de una base de datos productiva en donde debería estar y como se haría la conexión, todas las instancias conectadas a la misma base de datos?

Con la última versión de mongo ya no corre, porque el driver que esta en el proyecto de networking no es compatible con la ultima versión de mongo.

Al crear el servicio db usen mongo:4.0.1 para usar el mismo del profesor

La red overlay crea una red distribuida entre múltiples Docker daemon hosts. Esta red se ubica en la parte superior(overlay) de las redes de un host , permitiendo que los contenedores se conecten a ese host(incluyendo containers con servicios swarm). Docker maneja transparentemente el ruteo de cada paquete hacia y desde el correcto Docker daemon host y el correcto contenedor de destino.

Las redes en docker son muy potentes y simplifican trabajo.

docker network 
docker network create --driver overlay app-net
docker network inspect app-net
docker build -t baezdavidsan/networking .
docker login
docker push baezdavidsan/networking
docker service create -d --name db --network app-net mongo
docker service ps db
docker service create --name app --network app-net -p 3000:3000 baezdavidsan/networking
docker service ps app
docker service update --env-add MONGO_URL=mongodb://db/test app
docker ps
docker exec -it 0491a70c18cf bash
mongo
use test
db.pings.find()
docker network inspect app-net

vamos a ver como es el networking al momento de trabajar con swarm, vamos a poder inspeccionar que tenemos en la red. Todo esto, utilizando el repositorio que encuentras en los enlaces del curso. https://docs.docker.com/network/overlay/

– Nos situamos en manager1 y creamos una nueva red

docker service rm app
docker network ls
docker network create --driver overlay app-net

– Vamos a usar los archivos de swarm/networking en nuestro local.

cd swarm/networking
docker build -t borisvargas/swarm-networking .
docker push borisvargas/swarm-networking

– Nos situamos en manager. Creamos el servicio de mongo

docker service create -d --name db --network app-net mongo
docker service ps db

– Creamos el servicio de app

docker service create -d --name app --network app-net -p 3000:3000 borisvargas/swarm-networking
docker service ps app
docker service update --env-add MONGO_URL=mongodb://db/test app
docker exec -it <ID_CONTAINER_DB> bash
# mongo
> use test
> db.pings.find()
> db.pings.find()

– Esta es la manera como se comunican en un entorno de swarm

docker network inspect app-net

Genial curso, tengo una pregunta en caso de una base de datos productiva, tienes algún recurso, ejemplo o documentación para ver como conectaría la base de datos al cluster de docker swarm?

Se que depende del tipo de la base de datos pero entiendo que para poner comunicar un servicio con otro se debe tener un network overlay en el cluster… en caso de que la base de datos no corra dentro del cluster como se conectaría?

Podría ser muy bueno un ejemplo para base de datos productivas. Con un ejemplo con el plugin Rexray.

J O Y A

Crear una red

docker network create --driver overlay app-net

Cabe aclarar que lo del minuto 9:10 no es propio de Swarm o de la red overlay. Cualquier otro tipo de driver de red como bridge tiene la capacidad de «traducir» el nombre del servicio como un hostname, y se usa mucho también en Compose.

Solo por si alguien quiere resolver la duda y esta montando su base de datos en una LAN y swarm para ver si se pueden ver. Recuerden que deben permitir las conexiones externas de a la base de datos. Por ejemplo para postgresql dejo este articulo https://bigbinary.com/blog/configure-postgresql-to-allow-remote-connection

jajja, hombre creo que desde el principio se debe advertir del consumo de memoria por docker, jaja, me tiré todo el sistema operativo!

Ese ultimo ping no respondio… no quedo bueno eso