Introduzione all'architettura Docker Swarm
Docker Swarm è uno strumento di clustering e orchestrazione per container integrato in Docker Engine per il sistema distribuito che coinvolge centinaia di container. Le attività Docker Node, Docker Services e Docker sono componenti chiave dell'architettura dello sciame Docker.
- Nodo Docker: è l'istanza Docker Engine inclusa nello sciame Docker, ha due tipi:
- Nodo gestore: responsabile di tutte le attività di orchestrazione e gestione dei contenitori necessarie per mantenere il sistema nello stato desiderato, ad esempio la gestione dello stato del cluster, la pianificazione dei servizi e la manutenzione degli endpoint HTTP in modalità sciame.
- Servizio Docker: è la definizione dell'attività che deve essere eseguita.
Architettura tipica di Docker Swarm
Di seguito sono riportati i punti per l'architettura tipica dello sciame di docker:
- Il nodo è il membro chiave dell'architettura dello sciame docker, un'architettura dello sciame può avere più di un nodo gestore guidato da un singolo nodo gestore eletto utilizzando l'algoritmo Raft, un nodo gestore può anche funzionare come nodo lavoratore ma può essere configurato per funzionare come gestore anche il nodo.
- I nodi Manager utilizzano l'algoritmo di consenso Raft per gestire internamente lo stato del cluster. Questo per garantire che tutti i nodi manager che stanno pianificando e controllando le attività nel cluster mantengano / archivino uno stato coerente.
- Uno sciame è un cluster di motori Docker o nodi, in cui distribuiamo i nostri servizi. Nella fase iniziale, Docker ha ideato un sistema di gestione dei cluster con un protocollo di comunicazione noto come Beam. Successivamente, hanno aggiunto più API e lo hanno rinominato in sciame. Lo sciame di prima generazione si chiama 'sciame v1'.
Flusso di lavoro di Docker Swarm
Il flusso di lavoro di Docker Swarm consiste nel comprendere come funzionano nodi e servizi in un'architettura di Docker Swarm:
Passaggio 1: Il primo passaggio consiste nel creare un set di docker-machine che fungerà da nodi nello sciame di docker , uno tra questi nodi sarà il gestore, i nodi rimanenti fungeranno da nodi di lavoro. Per creare una macchina docker utilizzare il comando su Windows, avviare il terminale docker.
docker-machine create –driver hyperv manager1
- Dove "manager1" è il nome della finestra mobile-macchina, per elencare le macchine e viene eseguito rispettivamente.
docker-machine ls
docker-machine ip manager1
Passaggio 2: Il secondo passaggio è creare macchine di lavoro, utilizzare il comando seguente per creare tutte le macchine di lavoro desiderate, qui creiamo 3 lavoratori.
docker-machine create –driver hyperv worker1
docker-machine create –driver hyperv worker2
docker-machine create –driver hyperv worker3
- Possiamo collegarci al manager o al lavoratore usando il comando seguente, che ti porterà all'interno della macchina.
docker-machine ssh manager1/worker1
Passaggio 3: Il passaggio tre consiste nell'inizializzare lo sciame di docker, dobbiamo eseguire questo comando sulla macchina che vogliamo lavorare come gestore, in questo modo creiamo il gestore dei nodi, possiamo aggiungere anche più gestori.
docker-machine ssh manager1
docker swarm init –advertise-and Manager1 IP
Passaggio 4: Il passaggio quattro consiste nell'unire i nodi di lavoro allo sciame, ottenere il comando per unire il nodo come lavoratore usando il comando seguente sulla macchina del gestore ed eseguire il comando che hai sulla macchina del lavoratore che vuoi fare un lavoratore.
Docker swarm join-token worker1
- Per verificare se il lavoratore è unito allo sciame o meno, andare alla macchina del gestore ed eseguire il comando, elencherà la macchina del lavoratore aggiunta con i dettagli del gestore.
docker-machine ls
Passaggio 5: il passaggio cinque consiste nell'eseguire i comandi standard della finestra mobile sul gestore.
docker info (fetches details about docker swarm)
docker swarm (commands that can run on docker swarm such as join, leave, update, init and unlock etc)
Passaggio 6: Il passaggio sei consiste nell'eseguire i contenitori della finestra mobile sullo sciame della finestra mobile, possiamo creare qualsiasi servizio e le sue repliche. Vai su ub.docker.com, accedi e vai a esplorare i depositari, possiamo vedere diverse immagini che sono motori, ad esempio nginx (funziona su webserver) crea un servizio e la sua replica è usando il comando sotto sul gestore.
docker service create –replicas 3 -p 80:80 –name sample nginx
- Dove 'campione' è il nome del servizio e 80 è la porta che viene esposta per verificare lo stato del servizio eseguito sotto il comando sul nodo gestore.
docker service ls
docker service ps sample
Controlla il servizio in esecuzione su tutti i nodi e controlla anche sul browser fornendo l'IP per tutti i nodi.
Passaggio 7: passaggio 7, ora possiamo vedere l'uso effettivo dello sciame docker in cui il servizio viene scalato su e giù. Per ridimensionare un servizio, eseguire il comando seguente sul computer manager
docker service scale sample=4
- Il comando sopra farà eseguire il servizio di esempio su 4 nodi, anche se tutti i nodi sono occupati creerà un altro servizio su manager o lavoratore. In modo simile possiamo ridurre il servizio.
docker service scale sample=2
- Possiamo anche ispezionare il nodo per ottenere dettagli come quanti e quali servizi sono in esecuzione su un nodo eseguendo i comandi seguenti sul nodo gestore
docker node inspect worker1/manager1
docker node inspect self
Passaggio 8: il passaggio 8 consiste nell'aggiornamento del servizio quando il servizio è in esecuzione su più macchine e se vogliamo aggiornare il servizio è molto semplice e, ad esempio, se vogliamo aggiornare la versione del servizio nginx.
docker service update –image nginx:1.14.0 sample
Passaggio 9: spegnimento / arresto / rimozione.
- Per chiudere un determinato nodo, utilizzare il comando seguente, che modifica lo stato del nodo in "drain".
docker node update –availability drain worker1
- Per rimuovere il servizio da tutte le macchine.
docker service rm sample
- Per lasciare lo sciame, che cambia lo stato di "giù".
docker swarm leave
- Per arrestare una macchina (Esegui dal terminale mobile, non nella macchina manager o lavoratore).
docker-machine stop worker1
docker-machine rm worker1
Vantaggi dell'architettura Docker Swarm
Di seguito sono riportati i punti che mostrano i vantaggi di Docker Swarm Architecture:
- Design decentralizzato: siamo in grado di gestire i cluster di sciami tramite il comando di sciame, fornisce un singolo p (unguento di accesso per costruire l'intero sciame.
- È molto semplice rispetto a Kubernetes.
- Alta disponibilità: tra i nodi disponibili in sciame se il master fallisce verrà caricato un altro nodo di lavoro.
- Riconciliazione stato desiderato: il gestore dello sciame tiene traccia dello stato del cluster in modo che lo stato desiderato ed effettivo sia sempre lo stesso.
- Quando specifichiamo una rete in eccesso per connetterci ai vostri servizi, il gestore dello sciame assegna gli indirizzi al contenitore sulla rete di sovrapposizione una volta creati / aggiornati i contenitori
- Aggiornamenti continui: gli aggiornamenti del servizio possono essere eseguiti in modo incrementale con il gestore dello sciame che consente di specificare il ritardo tra ogni aggiornamento senza tempi di inattività.
Conclusione
Docker Swarm è un semplice strumento al posto di grandi strumenti che compiono il compito, Docker con sciame fornisce l'orchestrazione di cui abbiamo bisogno, è facile da installare e spedisce il nativo con motore docker che installeremo e utilizzeremo comunque.
Articoli consigliati
Questa è una guida per Docker Swarm Architecture. Qui discutiamo di come i nodi e i servizi funzionano in un'architettura di sciame docker con i loro vantaggi. Puoi anche consultare i nostri altri articoli correlati per saperne di più -
- Architettura Docker
- Che cos'è Docker Swarm?
- Swarm Intelligence Applications
- La tecnologia Swarming aiuta le squadre agili a crescere?