Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Swarm

Curso de Swarm

Guido Vilariño

Guido Vilariño

Docker Swarm multinodo

11/24
Recursos

Aportes 14

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Para copiar y pegar en play with docker pueden utilizar

control + insert //Copiar
shift  + insert //Pegar

– Creamos el nodo manager

docker swarm init --advertise-addr <MANAGER-IP>
docker swarm init --advertise-addr 192.168.0.18

– Creamos una nueva instancia en play-with-docker (+ ADD NEW INSTANCE)

docker swarm join --token <TOKEN> <MANAGER-IP>:<PORT>
docker swarm join --token SWMTKN-1-32cege8duoof9cr405bi1fsmcga831l6fcecmznp5cxcfdc3vg-ci6f98tjfy9fzhr2swmmo3ter 192.168.0.18:2377

– Creamos otra nueva instancia en play-with-docker (+ ADD NEW INSTANCE)

docker swarm join --token <TOKEN> <MANAGER-IP>:<PORT>
docker swarm join --token SWMTKN-1-32cege8duoof9cr405bi1fsmcga831l6fcecmznp5cxcfdc3vg-ci6f98tjfy9fzhr2swmmo3ter 192.168.0.18:2377

– Nos dirigimos a la terminal del nodo MANAGER, observamos los 3 nodos

docker node ls

– Crear un servicio en este caso multinodo

docker service create --name pinger alpine ping www.google.com

– Ver listado de servicios

docker service ls

– Donde estan asignado las tareas de este servicio, nos indica que esta en el nodo 1

docker service ps pinger

– Podemos ver el container

docker ps

Hola! estoy intentado unir una maquina a docker swarm pero me da un error. Con maquinas de DO.

docker swarm join --token SWMTKN-1-2l43xegaq2gchqr2e…. ip:2377
Error response from daemon: Timeout was reached before node joined. The attempt to join the swarm will continue in the background. Use the "docker info" command to see the current swarm status of your node.

He estado mirando y es porque entre maquinas deben tener unos puertos abiertos. https://docs.docker.com/engine/swarm/swarm-tutorial/#open-protocols-and-ports-between-the-hosts
Como puedo habilitar estos puertos?

// iniciar docker swarm
docker swarm init
// iniciar docker swarm en caso de tener mas de una interfaz de red
docker swarm init --advertise-addr [“ip de la interfaz donde va a escuchar peticiones para unirse al swarm”]
// ver nodos del swarm *solo se puede visualizar desde un docker swarm manager
// Todo lo relativo al estado del swarm, a la administracion del swarm y todo lo que tiene que ver con el swarm en si lo van a manejar exclusivamente los managers
docker node ls

Genial, también fue sencillo desde virtualbox…

Las instancias que agregas desde playwithdocker, en un esquema de productividad son maquina físicas?

Play to docker , a jugar para comprender la arquitectura multinodo.

Por defecto las tareas son asignadas a cualquier nodo del swarm, para que no pase esto, hay que especificar en que nodos debe de correr el servicio.

Los nodos manager son los únicos que pueden hacer tareas relacionadas con el estado y la administración de swarm. Ésto por seguridad.

Muy interesante

docker service create --name pinger alpine ping www.google.com
docker service ps pinger

un comando simple y tienes tu servicio corriendo, muy buena herramienta.

Para los que tengan problemas con los comandos de copiar/pegar investige un poco y serian los siguientes:

Copiar: Ctrl + Insert o Ctrl + FN + Insert
Pegar: Ctrl + Shift + v

  • docker swarm init --advertise-addr IP, para iniciar docker swarm con ip en específico
  • docker swarm join --token TOKEN server:puerto, para unir un nodo como worker al server con puerto 2377
  • docker node ls, para ver los nodos swarm de docker.

Que bien el play-with-docker ya yo tenia 4 vm con fedora en VMware para kubernetes local, pero con esto los puedo dejar dormidos, lo siento, no tengo soporte para acentos muy vago para buscarlo en fedora.