CodeGym /Corsi /Docker SELF /Studio della rete overlay

Studio della rete overlay

Docker SELF
Livello 18 , Lezione 1
Disponibile

7.1 Studio della rete overlay

La rete overlay è una rete distribuita Docker, che permette ai container che funzionano su host diversi di interagire tra loro. È spesso utilizzata nel contesto dell'orchestrazione dei container, come Docker Swarm o Kubernetes, per fornire comunicazione tra i container che lavorano su nodi diversi. In questa lezione vedremo come creare e utilizzare una rete overlay, oltre a esempi del suo utilizzo.

La rete overlay crea una rete distribuita virtuale sopra le reti esistenti, unendo diversi host in uno spazio di rete unico. Questo permette ai container di interagire come se fossero nella stessa rete locale, indipendentemente dalla posizione fisica degli host.

Vantaggi dell'utilizzo della rete overlay:

  1. Comunicazione tra container su host diversi: fornisce interazione di rete tra container avviati su nodi diversi.
  2. Isolamento: permette di creare spazi di rete isolati per diverse applicazioni.
  3. Scalabilità: supporta l'aggiunta e la rimozione dinamica di nodi senza interruzioni nel funzionamento.

7.2 Creazione della rete overlay

Per creare una rete overlay devi inizializzare prima un cluster Docker Swarm. Questo creerà un nodo manager e permetterà di creare reti distribuite.

Passo 1: Inizializzare Docker Swarm

Esegui il comando sull'host che diventerà il manager del cluster. Questo comando inizializzerà il cluster Swarm e ti fornirà un comando per aggiungere altri nodi al cluster.

Terminale

docker swarm init

Passo 2: Aggiungere nodi worker al cluster

Sui tuoi altri host, esegui il comando fornito da docker swarm init, per connetterli al cluster. Ecco un esempio:

Terminale

docker swarm join --token <SWARM_TOKEN> <MANAGER_IP>:2377

Passo 3: Creare una rete overlay

Dopo aver inizializzato il cluster, crea una rete overlay utilizzando il comando:

Terminale

docker network create -d overlay my_overlay_network

Passo 4: Verifica della rete

Per verificare che la rete sia stata creata correttamente, esegui il comando docker network ls, che mostrerà l'elenco di tutte le reti, inclusa la nuova rete overlay:

Terminale

docker network ls

Esempio di output:

Terminale

NETWORK ID     NAME                DRIVER    SCOPE
a1b2c3d4e5     my_overlay_network overlay  swarm

Ora la rete my_overlay_network è pronta per essere utilizzata per applicazioni distribuite.

7.3 Utilizzo della rete overlay

Ora che la rete è stata creata, puoi avviare container e servizi collegati a questa rete.

Esempio di utilizzo della rete overlay per i servizi

In Docker Swarm puoi usare i servizi per gestire i container. Creeremo alcuni servizi che saranno collegati alla rete overlay.

Passo 1: Creazione del servizio web-server

Terminale

docker service create --name webserver --network my_overlay_network -p 8080:80 nginx

Questo comando crea un servizio webserver, collegato alla rete my_overlay_network. Il web-server sarà accessibile all'indirizzo http://localhost:8080.

Passo 2: Creazione del servizio di database

Terminale

docker service create --name database --network my_overlay_network -e POSTGRES_PASSWORD=mysecretpassword postgres

Qui viene creato un servizio database, collegato alla stessa rete, con l'impostazione della variabile di ambiente POSTGRES_PASSWORD.

Passo 3: Verifica della connessione tra i servizi

Avvia un container temporaneo per verificare la connessione tra i servizi:

Terminale

docker run -it --network my_overlay_network busybox

All'interno del container usa i comandi ping per verificare la connessione con il web-server e il database:

Terminale

ping webserver
ping database

Se la configurazione è corretta, il ping mostrerà una connessione riuscita, confermando che i container possono interagire tramite i nomi degli host.

Passo 4: Visualizzazione dello stato dei servizi

Usa il comando docker service ls per controllare lo stato dei servizi creati:

Terminale

docker service ls

L'output previsto mostrerà informazioni sui servizi in esecuzione, il loro stato e il numero di replica.

Nota: La rete overlay permette ai container su diversi host di scambiarsi dati, se sono connessi allo stesso cluster Swarm.

7.4 Esempi di utilizzo delle reti overlay in Docker Compose

Docker Compose semplifica la gestione delle applicazioni multi-container e delle reti. Puoi definire una rete overlay e usarla per la comunicazione tra i container nel file docker-compose.yml.

Esempio di file 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

Avvio di Docker Compose:

Terminal

docker stack deploy -c docker-compose.yml mystack

Questo comando distribuisce uno stack utilizzando il file docker-compose.yml e crea servizi collegati alla rete my_overlay_network.

Consigli pratici:

  1. Monitoraggio della rete: Utilizza strumenti di monitoraggio Docker Swarm come Docker Dashboard o Prometheus per osservare lo stato della rete e l'interazione tra i container.
  2. Gestione della scalabilità: La rete overlay supporta l'aggiunta e la rimozione dinamica di nodi. Assicurati di configurare correttamente le risorse di rete per la scalabilità delle applicazioni.
  3. Backup delle configurazioni: Salva regolarmente le configurazioni delle reti e degli stack per un rapido ripristino in caso di guasti.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION