CodeGym /Cursos /Docker SELF /Estudo da rede overlay

Estudo da rede overlay

Docker SELF
Nível 18 , Lição 1
Disponível

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:

  1. Comunicação entre containers em diferentes hosts: proporciona interação de rede entre containers rodando em diferentes nós.
  2. Isolamento: permite criar espaços de rede isolados para diferentes aplicações.
  3. 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.

Terminal

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:

Terminal

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:

Terminal

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:

Terminal

docker network ls

Exemplo de saída:

Terminal

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

Terminal

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

Terminal

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:

Terminal

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:

Terminal

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:

Terminal

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:

Yaml

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:

Terminal

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:

  1. 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.
  2. 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.
  3. Backup de configurações: Salve regularmente as configurações de rede e stacks para recuperação rápida em caso de falha.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION