Docker Swarm vs Kubernetes

Per aggiungere altri nodi al cluster si utilizza il comando docker swarm join, specificando il token e l’indirizzo del manager.

Un esempio:

bash
docker swarm join \
  --token SWMTKN-1-example \
  192.168.1.10:2377

Il token effettivo viene generato dal cluster e deve essere recuperato attraverso gli appositi comandi Docker.

Per visualizzare i nodi del cluster:

bash
docker node ls

A questo punto è possibile distribuire un servizio con:

bash
docker service create \
  --name web-app \
  --replicas 3 \
  -p 8080:80 \
  nginx

Docker Swarm distribuirà tre repliche del servizio sui nodi disponibili, secondo le regole di scheduling.

I principali vantaggi di Docker Swarm

1. Semplicità di configurazione

L’inizializzazione di un cluster richiede pochi comandi e non necessita di un’architettura particolarmente complessa.

2. Integrazione con Docker Engine

Swarm è già integrato nell’ambiente Docker, rendendo più semplice il passaggio dalla gestione dei singoli container all’orchestrazione distribuita.

3. Utilizzo della Docker CLI

La gestione avviene attraverso gli stessi strumenti utilizzati per amministrare Docker.

4. Bilanciamento del carico integrato

Docker Swarm mette a disposizione un routing mesh che permette di distribuire le richieste tra le repliche dei servizi.

5. Alta disponibilità

La presenza di più manager consente di mantenere il controllo del cluster anche in caso di guasto di un nodo manager, purché rimanga disponibile la maggioranza richiesta dal consenso Raft.