Prima di iniziare
-
Il completamento di questa guida richiederà almeno due Linode situati nello stesso data center. Le istruzioni in questa guida sono state scritte per Ubuntu 16.04, ma è possibile utilizzare altre distribuzioni; i Linode non hanno bisogno di usare la stessa distribuzione.
-
Segui la nostra guida alla configurazione e alla protezione di un'istanza di calcolo per aggiornare il tuo sistema. Potresti anche voler impostare il fuso orario, configurare il tuo nome host, creare un account utente limitato e rafforzare l'accesso SSH.
-
Installa Docker su ogni Linode. Per ulteriori informazioni, consulta la nostra guida all'installazione di Docker e alla distribuzione di uno stack LAMP o i documenti di installazione di Docker.
Nota I passaggi in questa guida richiedono i privilegi di root. Assicurati di eseguire i passaggi seguenti comeroot
o con ilsudo
prefisso. Per ulteriori informazioni sui privilegi, consulta la nostra guida Utenti e gruppi.
Aumenta la potenza di Docker creando un cluster di host Docker, chiamato Docker Swarm. Hai bisogno di un Linode per fungere da Docker Swarm Manager e alcuni host Docker per unirsi allo Swarm come nodi.
In questa guida, configurerai un Docker Swarm Manager e collegherai i nodi per una distribuzione di container scalabile. Ciò richiede più Linode con Docker installato e in esecuzione nello stesso data center. Non è necessario che eseguano la stessa distribuzione.
Crea il Docker Swarm Manager
Lo scopo di Docker Swarm Manager è ricevere comandi per conto del cluster e assegnare contenitori ai nodi. Lo Swarm Manager usa l'algoritmo Raft Consensus per gestire gli stati dello sciame. L'algoritmo Raft Consensus garantisce che tutti i nodi manager responsabili della gestione e della pianificazione delle attività in un cluster memorizzino lo stesso stato coerente. In caso di errore, un singolo nodo assume le attività e ripristina lo stato stabile.
In questa guida creiamo un unico Swarm Manager. Se il tuo obiettivo è l'alta disponibilità, puoi creare più gestori.
-
Accedi al Linode che hai scelto per Swarm manager e inizializza il manager. Sostituisci
PUBLIC_IP
in questo esempio con l'indirizzo IP pubblico di Linode:docker swarm init --advertise-addr PUBLIC_IP
Docker risponde con il comando necessario affinché i nodi si uniscano allo Swarm:
-
Usa
docker info
per verificare che il tuo Swarm sia in esecuzione e attivo:docker info
Unisciti a Nodes al Manager
Nel passaggio 1 della sezione precedente, docker swarm init
comando restituisce istruzioni su come entrare nel gestore.
docker swarm join --token TOKEN PUBLIC_IP:2377
Dove TOKEN
è la lunga stringa di caratteri che ti viene presentata quando hai inizializzato lo Swarm e PUBLIC_IP
è l'indirizzo IP pubblico del tuo Swarm Manager Linode. Se non ricordi il token, esegui join-token
sul manager per visualizzare le informazioni da swarm init
comando:
docker swarm join-token worker
-
Per unire il nodo allo Swarm, esegui
docker swarm join
dal nodo. CambiaTOKEN
al token del passaggio 1 nella sezione precedente ePUIBLIC_IP
all'IP pubblico del gestore:docker swarm join --token TOKEN PUBLIC_IP:2377
L'output mostra che il nodo si è unito allo sciame come lavoratore. Ora hai un piccolo cluster Docker Swarm, con un gestore e un nodo:
-
Ripetere il passaggio 1 per unire allo Swarm tutti i nodi necessari.
-
Sul manager, usa
docker node ls
per visualizzare le informazioni sul gestore e un elenco di tutti i nodi:docker node ls
Distribuisci un servizio con Docker Swarm
Per distribuire un servizio con Docker Swarm, usa il gestore per preparare un singolo nodo, quindi scala la configurazione per soddisfare le vostre esigenze. In questo esempio, installerai NGINX su un nodo, quindi lo ridimensionerai su un cluster (sciame) di tre nodi.
-
Da Swarm Manager, usa
service create
per distribuire un servizio su un nodo. Cambianginxexample
a quello che vuoi:docker service create -p 80:80 --name nginxexample nginx
-
Ridimensiona il servizio NGINX su tre nodi:
docker service scale nginxexample=3
-
Verifica che il servizio sia stato distribuito con
docker ps -a
da qualsiasi nodo:docker ps -a
-
Per interrompere
nginxexample
servizio, usaservice remove
comando:docker service remove nginxexample
Maggiori informazioni
Si consiglia di consultare le seguenti risorse per ulteriori informazioni su questo argomento. Sebbene questi siano forniti nella speranza che possano essere utili, tieni presente che non possiamo garantire l'accuratezza o la tempestività dei materiali ospitati esternamente.
- Documenti Docker
- Tutorial Prova Docker
- Hub Docker