No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

脷ltima oportunidad para asegurar tu aprendizaje por 1 a帽o a precio especial

Antes: $249

Currency
$189/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscr铆bete

Termina en:

0D
8H
53M
56S
Curso de Swarm

Curso de Swarm

Guido Vilari帽o

Guido Vilari帽o

Reverse proxy: muchas aplicaciones, un s贸lo dominio

20/24
Recursos

Reverse proxy es una t茅cnica, es un servicio que est谩 escuchando y que toma una decisi贸n con la petici贸n que esta entrando y hace un proxy hacia uno de los servicios que tiene que atender esa petici贸n.

Existe una herramienta llamada traefik, el cual es un intermediario entre las peticiones que vienen del internet a nuestra infraestructura.

Aportes 19

Preguntas 6

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Me funciono en mi entrono de pruebas

docker network create --driver overlay proxy-net
docker service create --name proxy --constraint=node.role==manager -p 80:80 -p 9090:8080 --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock --network proxy-net traefik:1.7 --docker --docker.swarmmode --docker.domain=dbz.com --docker.watch --api
docker service create  --name app1 --network proxy-net --label traefik.port=3000 baezdavidsan/swarm-hostname
curl -H "Host: app1.dbz.com" http://localhost
docker service create  --name app2 --network proxy-net --label traefik.port=3000 baezdavidsan/swarm-hostname
curl -H "Host: app2.dbz.com" http://localhost
docker service update --image baezdavidsan/networking app2
curl -H "Host: app1.dbz.com" http://localhost
curl -H "Host: app2.dbz.com" http://localhost
http://192.168.5.152:9090/dashboard/

Que tal, tuve un peque帽o problema. Cuando intente correr el comando, se quedan como en un ciclo, entonces cancele y revise los logs con

docker service logs proxy 

Y me mandaba este mensaje.

2019/10/21 00:26:42 command traefik error: failed to decode configuration from flags: field not found, node: docker

Y para arreglarlo, solo tuve que definir la versi贸n de traefik y cambiar esta parte

  --docker.swarmMode

Por

--docker.swarmmode

El comando final quedo as铆:

docker service create --name proxy --constraint=node.role==manager -p 80:80 -p 9090:8080 --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock --network proxy-net traefik:1.5 --docker --docker.swarmmode --docker.domain=domain.ca --docker.watch --api

docker service create --name proxy --constraint=node.role==manager -p 80:80 -p 9090:8080 --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock --network proxy-net traefik --docker --docker.swarmMode --docker.domain=domain.loc --docker.watch --api

Les dejo el comando largo para crear el servicio de Traefik. En 2021 sigue sin funcionar si no le pones un tag a la imagen de traefik, le puse la version 1.7 y me funcion贸 sin problema.

docker service create --name proxy --constraint=node.role==manager -p 80:80 -p 9090:8080 --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock --network proxy-net traefik:1.7 --docker --docker.swarmmode --docker.domain=dbz.com --docker.watch --api

Lo que hace Traefik es que va a detectar que servicios hay en el swarm y los va a incorporar a su lista de reverse proxy en fucni贸n de algunas etiquetas que pondremos en los servicios, para que eso pase, Traefik va a tener que escuhar los eventos del Swarm, y para que Traefik pueda escuchar los eventos del Swarm va a tener que tener accesso al sokcet del Docker Deamon del Manager, por lo que debe correr en un nodo Manager.

Excelente !!
Grande Docker Swarm

docker service create --name proxy --constraint=node.role==manager -p 80:80 -p 9090:8080 \ --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock --network proxy-net \ --label "traefik.http.routers.proxy.rule=Host \ (\guido.com`\ )" traefik
鈥損roviders.docker --providers.docker.watch --providers.docker.swarmMode=true --api.insecure=true`

Me ha salido un error al ejecutar el comando para crear el servicio proxy

docker service create --name proxy --constraint=node.role==manager -p 80:80 -p 9090:8080 --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock --network proxy-net traefik --docker --docker.swarmMode --docker.domain=domain.loc --docker.watch --api
verify: Detected task failure 

Como aparte les comparto lo que dice la documentacion acerca del riesgo de acceder a socket a traves del mismo sistema como lo hacemos en la clase. En la documentacion nos comparte algunas soluciones a este riesgo de seguridad. <https://doc.traefik.io/traefik/providers/docker/#docker-api-access>

un genio Guido, millones de gracias.

Crack!

Sale un error si colocal la imagen sin un tag . Al parecer la 煤ltima versi贸n no funciona. Traten con la version 1.7
鈥 --network proxy-net traefik:1.7 --docker --docker.swarmMode --docker.domain=g u i do .com --docker.watch --api

Porque no me funciona el traefik cuando al servicio le agrego la etiqueta port

sudo docker service create --name app2 --network proxy-net --label traefik.port=3000 -p 3000:3000 gvilarino/swarm-hostname

Alguien me puede decir como hago para poder conectar mi servicio al traefik y a su vez conectarme por la ip al puerto 3000

Esto se puede probar de manera local , estoy con windows ?

docker service create --name proxy --constraint=node.role==manager -p 81:80 -p 9091:8080 --net
work proxy-net traefik --docker --docker.swarmMode --docker.domain=maccevedor.com --docker.watch --api
n5n9nhgigf8ybc9zeujkea4oo
overall progress: 0 out of 1 tasks
1/1: starting
verify: Detected task failure
Operation continuing in background.
Use docker service ps to check progress.

Si quiero usar mis certificados SSL/TLS adquiridos en aws o cualquier otro proveedor con treafik, se puede y de que manera ?, hasta al momento se que funciona muy facil con letsencrypt pero en he podido encontrar algo donde explique dicha configuracion con mis certificado.

It returns

verify: Detected task failure

Podr铆a usar traefik con muchos nombres de dominio?

Si quisiera crear un servicio que corra en el domain.com y no en sub.domain.com como seria.

Creaci贸n del servicio de Traefik funcional:

docker service create --name proxy --constraint=node.role==manager -p 80:80 -p 9090:8080 --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock --network proxy-net traefik:1.7 --docker --docker.swarmMode --docker.domain=guido.com --docker.watch --api