Created
May 12, 2019 14:46
-
-
Save GabrielMMelo/11475f08910a371ff3f997b92c7d3908 to your computer and use it in GitHub Desktop.
A simple docker powered container management with load balancing with docker swarm and services
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Garanta que possua 3 máquinas acessíveis remotamente e que possuam docker instalado | |
@ 1# máquina | |
# inicializar o cluster (swarm), criar um manager e gerar token para worker | |
docker swarm init --advertise-addr <ADDRESS> | |
@ 2# e 3# máquina | |
# incluir um worker | |
docker swarm join --token <TOKEN> <ADDRESS>:<PORT> | |
@ (opcional) 1# máquina | |
# criar token para um manager (redundância) | |
docker swarm join-token manager | |
@ (opcional) 2# ou 3# máquina | |
# incluir um manager | |
docker swarm join --token <TOKEN_MANAGER> <ADDRESS>:<PORT> | |
@ 1# máquina | |
# inspecionar os nós do cluster | |
docker node inspect <NOME_NODE> | |
@ 1# máquina | |
# promover um worker para manager | |
docker node promote <NOME_NODE> | |
@ 1# máquina | |
# criar um service em dois nodes | |
docker service create --name valida-cpf-service --replicas 2 -p 8080:8080 gabrielmmelo/valida-cpf | |
@ 1# máquina | |
# visualizar em qual node cada container está rodando | |
docker service ps valida-cpf-service | |
@ 1# máquina | |
# rodar requisições de teste | |
# repita esse comando para ver o load balancing nativo do docker funcionando e retornando um ip diferente de cada | |
# última requisição (o algoritmo utilizado é um round-robin também) | |
curl <IP_#1_MAQUINA>:8080 | |
# escalar a replicação para mais um node | |
docker service scale valida-cpf-service=3 | |
@ 1# máquina | |
# visualizar em qual node cada container está rodando, note que são 3 nodes rodando agora | |
docker service ps valida-cpf-service | |
@ 1# máquina | |
# rodar, novamente, requisições de teste | |
curl <IP_#1_MAQUINA>:8080 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment