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
:
- Comunicazione tra container su host diversi: fornisce interazione di rete tra container avviati su nodi diversi.
- Isolamento: permette di creare spazi di rete isolati per diverse applicazioni.
- 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.
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:
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:
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
:
docker network ls
Esempio di output:
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
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
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:
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:
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:
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
:
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
:
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:
- 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.
- 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.
- Backup delle configurazioni: Salva regolarmente le configurazioni delle reti e degli stack per un rapido ripristino in caso di guasti.
GO TO FULL VERSION