7.1 Estudando a rede overlay
Rede overlay
— é uma rede distribuída do Docker que permite que containers rodando em diferentes hosts interajam entre si. Ela é frequentemente usada no contexto de orquestração de containers, como Docker Swarm ou Kubernetes, para garantir a comunicação entre containers que rodam em diferentes nós. Nesta aula, vamos aprender como criar e usar uma rede overlay
, além de exemplos de sua aplicação.
A rede overlay
cria uma rede virtual distribuída sobre redes existentes, unindo vários hosts em um único espaço de rede. Isso permite que os containers interajam como se estivessem em uma mesma rede local, independente da localização física dos hosts.
Vantagens de usar a rede overlay
:
- Comunicação entre containers em diferentes hosts: proporciona interação de rede entre containers rodando em diferentes nós.
- Isolamento: permite criar espaços de rede isolados para diferentes aplicações.
- Escalabilidade: suporta a adição e remoção dinâmica de nós sem interrupções no funcionamento.
7.2 Criando uma rede overlay
Pra criar uma rede overlay
, primeiro você precisa inicializar um cluster Docker Swarm
. Isso vai criar um nó de gerenciamento (manager) e permitir a criação de redes distribuídas.
Passo 1: Inicialização do Docker Swarm
Rode o comando no host que será o gerenciador do cluster. Esse comando inicializa o cluster Swarm
e exibe um comando pra adicionar outros nós ao cluster.
docker swarm init
Passo 2: Adicionar nós de trabalho ao cluster
Nos outros hosts, execute o comando exibido pelo docker swarm init
pra adicionar eles ao cluster. Exemplo de comando:
docker swarm join --token <SWARM_TOKEN> <MANAGER_IP>:2377
Passo 3: Criar a rede overlay
Depois de inicializar o cluster, crie uma rede overlay
com o comando:
docker network create -d overlay my_overlay_network
Passo 4: Verificar a rede
Pra verificar se a rede foi criada com sucesso, rode o comando docker network ls
, que vai exibir uma lista de todas as redes, incluindo a nova rede overlay
:
docker network ls
Exemplo de saída:
NETWORK ID NAME DRIVER SCOPE
a1b2c3d4e5 my_overlay_network overlay swarm
Agora a rede my_overlay_network
tá pronta pra ser usada em aplicações distribuídas.
7.3 Usando a rede overlay
Agora que a rede foi criada, você pode rodar containers e serviços conectados a essa rede.
Exemplo de uso da rede overlay
para serviços
No Docker Swarm
, dá pra usar serviços pra gerenciar containers. Vamos criar alguns serviços que serão conectados à rede overlay
.
Passo 1: Criar um serviço de servidor web
docker service create --name webserver --network my_overlay_network -p 8080:80 nginx
Esse comando cria o serviço webserver
, conectado à rede my_overlay_network
. O servidor web estará disponível no endereço http://localhost:8080.
Passo 2: Criar um serviço de banco de dados
docker service create --name database --network my_overlay_network -e POSTGRES_PASSWORD=mysecretpassword postgres
Aqui estamos criando o serviço database
, conectado à mesma rede, configurando a variável de ambiente POSTGRES_PASSWORD
.
Passo 3: Verificar a conexão entre os serviços
Inicie um container temporário pra testar a conexão entre os serviços:
docker run -it --network my_overlay_network busybox
Dentro do container, use os comandos ping
pra testar a conexão com o servidor web e o banco de dados:
ping webserver
ping database
Se tudo estiver configurado certinho, o ping vai mostrar uma conexão bem-sucedida, confirmando que os containers conseguem se comunicar pelos nomes dos hosts.
Passo 4: Ver o status dos serviços
Use o comando docker service ls
pra verificar o status dos serviços criados:
docker service ls
O resultado esperado vai mostrar informações dos serviços em execução, o status deles e a quantidade de réplicas.
Nota: A rede overlay
permite que containers em hosts diferentes troquem dados se estiverem conectados ao mesmo cluster Swarm
.
7.4 Exemplos de uso da rede overlay
no Docker Compose
O Docker Compose
simplifica o gerenciamento de aplicativos multi-containers e redes. Você pode definir uma rede overlay e usá-la para comunicação entre containers no arquivo docker-compose.yml
.
Exemplo de arquivo docker-compose.yml
:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8080:80"
networks:
- my_overlay_network
db:
image: postgres:latest
environment:
POSTGRES_PASSWORD: mysecretpassword
networks:
- my_overlay_network
networks:
my_overlay_network:
driver: overlay
attachable: true
Executando o Docker Compose
:
docker stack deploy -c docker-compose.yml mystack
Este comando irá fazer o deploy do stack usando o arquivo docker-compose.yml
e criar os serviços conectados à rede my_overlay_network
.
Dicas práticas:
- Monitoramento de rede: Use ferramentas de monitoramento do Docker Swarm, como Docker Dashboard ou Prometheus, para acompanhar o estado da rede e a interação entre containers.
- Gerenciamento de escalabilidade: A rede Overlay suporta a adição e remoção dinâmica de nós. Garanta a configuração correta dos recursos de rede para escalar os aplicativos.
- Backup de configurações: Salve regularmente as configurações de rede e stacks para recuperação rápida em caso de falha.
GO TO FULL VERSION