Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Service não disponível para todas as VM's.

Eu dei docker@vm1:~$ docker service create -p 8080:3000 aluracursos/barbearia e ele convergiu normalmente. Entretanto, quando eu tento acessar o IP com a porta, apenas a VM-3 consegue estabelecer conexão e não o resto das VM's.

Dei docker service ps no ID do service instânciado e deu:

docker service ps vyr
ID                  NAME                IMAGE                          NODE
  DESIRED STATE       CURRENT STATE            ERROR               PORT
S
vws7ljf03wu9        great_saha.1        aluracursos/barbearia:latest   vm1
           Running             Running 29 minutes ago

Dei o docker node inspect vm1 (depois vm2 e vm3) para pegar o IP:

VM-1
"Status": {
     "State": "ready",
     "Addr": "192.168.99.101"
 },
 "ManagerStatus": {
     "Leader": true,
     "Reachability": "reachable",
     "Addr": "192.168.99.101:2377"
 }

VM-2
 "Status": {
     "State": "down",
     "Message": "heartbeat failure for node in \"unknown\" state",
     "Addr": "192.168.99.102"

VM-3
 "Status": {
     "State": "down",
     "Message": "heartbeat failure for node in \"unknown\" state",
     "Addr": "192.168.99.103"

Se eu tentar acessar o Alura Barbearia pelo IP da VM1 ou da VM2 não funciona, apenas funciona o IP do VM-3

192.168.99.103:8080 - funciona. (VM-3) e diz que o state está "down"

192.168.99.102:8080 - não funciona (VM-2)

192.168.99.101:8080 - não funciona (VM-1)

O que pode ser? Aproposito, estou rodando o DOCKER TOOLBOX (WINDOWS 7)

Não era para qualquer IP (de qualquer VM que seja) funcionar ?

3 respostas

Oi Victor, bom dia, tudo bem?

Presumo que seu cluster não esteja saudável. Recomendo excluir e criar um novo para que o state esteja ready para todos. Além disso, o Docker Toolbox é uma ferramenta defasada para utilização do Docker. Possivelmente está enfrentando alguns problemas por estar utilizando ela.

Como posso re-criar o cluster? eu ainda não saquei muito bem o que seria.

solução!

Para recriar o cluster basta executar o comando docker swarm leave --force em todos os nós, criar o cluster com o comando docker swarm init ... e adicionar os workers com o comando docker swarm join ... .

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software