Introduzione a Docker Swarm / Definizione
Uno sciame di docker è uno degli strumenti disponibili all'interno dei container Docker che sono una piattaforma / strumento di orchestrazione di container open source. Viene anche chiamato lo strumento di pianificazione e clustering nativo di Docker. Quando le dimensioni dei container aumentano, diventa molto difficile gestire tutto ciò che ricopre il ruolo di Swarm. Aiuta gli sviluppatori e gli amministratori a gestire e creare un cluster di nodi Docker sotto forma di un singolo virtuale macchina.
I concetti / termini chiave utilizzati per Docker Swarm
- Sciame : uno sciame è composto da molti sistemi / host Docker che funzionano in modalità sciame.
- Swarmkit : uno Swarmkit viene utilizzato per implementare il livello dell'orchestrazione di Docker.
- Attività : un'attività comprende comandi e contenitore che devono essere eseguiti all'interno del contenitore. Le attività sono distribuite dal gestore dello sciame ai nodi.
- Nodi : il nodo può essere definito come un motore Docker singolare e che partecipano allo sciame. Una buona distribuzione di sciami di produzione è quella che ha i nodi docker distribuiti distribuiti su molte macchine.
- Servizio : ogni volta che viene creato un servizio, specifica il contenitore da utilizzare e i comandi da eseguire all'interno del contenitore. Quindi il servizio è un elenco di attività che devono essere eseguite sui nodi worker o manager.
- Nodi di gestione : il compito dei nodi di gestione è di inviare le attività ai nodi di lavoro. I nodi manager sono anche responsabili dell'esecuzione di altre funzioni come la gestione del cluster e l'orchestrazione.
- Nodi di lavoro: il compito del nodo di lavoro è inserire le attività che provengono dal nodo gestore ed eseguirle. Un nodo di lavoro viene installato con agenti che riportano le unità di lavoro assegnate ai nodi del gestore.
- Nodi Leader : serve come leader per eseguire attività relative all'orchestrazione.
Cosa si può fare usando Docker Swarm
Swarm è molto utile per gli amministratori e gli sviluppatori in un ecosistema Docker. Di seguito sono riportati alcuni dei compiti che la finestra mobile può svolgere:
- Può essere utilizzato per ridimensionare il numero di contenitori.
- Per stabilire il coordinamento tra i contenitori.
- Per l'allocazione di attività nel cluster di contenitori.
- Per la gestione del ciclo di vita dei contenitori e anche per l'esecuzione di regolari controlli sanitari.
- Per servire allo scopo di distribuire gli aggiornamenti per il software tra i contenitori.
Comprensione Docker Swarm / Funzionamento
Di seguito è riportato il funzionamento dello sciame delle docker che sono i seguenti:
Funzionamento dei nodi
Come abbiamo visto, esistono due tipi di nodi, ovvero il manager e il lavoratore. Esaminiamo il funzionamento di entrambi.
Le attività gestite dai nodi del gestore sono: Pianificazione dei servizi, manutenzione dello stato del cluster e realizzazione degli endpoint dell'API HTTP. È consigliabile eseguire più nodi di gestione perché ciò consentirà di sfruttare le funzionalità di tolleranza agli errori dello sciame.
I nodi di lavoro eseguono i contenitori e per funzionare sono necessari almeno 1 nodo gestore.
Funzionamento dei servizi
L'unico scopo dei servizi è distribuire un'immagine dell'app nello sciame Docker. Ad esempio, un server DB, un server Web e server HTTP sono esempi di servizi.
Processi e termini in servizio:
- Errore attività : ogni volta che un'attività fallisce all'interno di uno sciame di docker, generalmente non viene riavviata. Quindi il compito dell'orchestrator è rimuovere quell'attività fallita e sostituirla con quella nuova che è in per con lo stato del servizio.
- Opzione di servizio - Ogni volta che viene creato un servizio, possiamo sempre definire una porta su cui può essere utilizzato il servizio (per utenti esterni), è possibile applicare limiti di memoria e CPU, definire criteri di aggiornamento, ecc.
- Servizio in sospeso : un servizio passa in uno stato in sospeso quando non sono attualmente disponibili nodi nello sciame Docker per eseguire l'attività.
Docker Swarm Filters
Lo sciame docker dispone di 5 filtri:
- Affinità : lo scopo del filtro di affinità è garantire che i contenitori siano in esecuzione sullo stesso nodo di rete e definisce anche la sequenza in cui devono essere eseguiti i contenitori.
- Porta : la porta definisce una risorsa dedicata. Quando un contenitore è in esecuzione sulla porta che non è libero, il contenitore si sposterà sugli altri nodi disponibili.
- Vincolo : quando viene creato un nodo, possiamo assegnare coppie chiave-valore con l'aiuto di un filtro di vincolo.
- Dipendenza : ogni volta che esiste una dipendenza tra i contenitori, i filtri di dipendenza pianificano quelli sullo stesso nodo.
- Integrità : se uno dei nodi è inattivo e non funziona, questo filtro non assegnerà alcun contenitore su di esso.
Alcuni comandi Docker Swarm:
Scopo | Comando |
Creazione di uno sciame | Docker swarm init |
Partecipare a uno sciame | docker swarm join \
–Token Token_number \ IP: porta |
Creazione di un servizio e denominazione | servizio docker creare –name Edu |
Rimozione di un servizio | servizio docker rimuovere Edu |
Servizio di aggiornamento | aggiornamento del servizio docker |
Monitoraggio dell'integrità del nodo | nodo docker ls |
Vantaggi e svantaggi
Vediamo ora i vantaggi e gli svantaggi dello sciame di docker
vantaggi:
- La distribuzione è semplice e la modalità sciame è di default fornita con Docker Engine.
- L'installazione è semplice e veloce.
- L'integrazione di sciami può essere facilmente raggiunta con Docker CLI e Docker compose
- Non è richiesta molta esperienza e l'apprendimento è facile.
svantaggi:
- Per ridimensionare i servizi, è necessario un intervento manuale.
- La tolleranza agli errori è limitata.
- Al momento non sono disponibili funzioni più ampie.
- Ha una comunità più piccola rispetto ad altri strumenti di orchestrazione disponibili come Kubernetes.
Conclusione
In questo articolo, abbiamo iniziato con una panoramica e una definizione di base dello sciame Docker e abbiamo anche visto i termini importanti utilizzati nella tecnologia dello sciame che fa parte dell'ecosistema. Quindi abbiamo cercato di capire il funzionamento dietro lo sciame Docker e abbiamo anche appreso un paio di comandi Docker usati in modalità sciame.
Articoli consigliati
Questa è stata una guida a Cos'è Docker Swarm ?. Qui abbiamo discusso il concetto, il comando, i filtri, l'uso e la comprensione di Docker Swarm. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -
- Domande di intervista Docker
- Che cos'è Cassandra?
- Domande di intervista ai microservizi
- Che cos'è Jenkins?