Come installare un Docker Swarm Cluster su CentOS 7 VPS o server dedicato

Docker Swarm, noto anche come motore Docker in modalità sciame, è un nuovo strumento di clustering e orchestrazione per container Docker utilizzato per gestire un gruppo di host Docker.


In questo articolo, presentiamo Docker in Docker 1.12. Consente l’aggiunta e la sottrazione del contenitore nel processo di elaborazione. Esistono due componenti principali di Docker Swarm:

Manager Node: Si occupa della gestione delle attività del cluster, come i servizi di pianificazione, il mantenimento dello stato dei cluster e la gestione degli endpoint in modalità sciame docker.

Nodo lavoratore: Utilizzato per eseguire il contenitore del cluster.

In questo tutorial, entreremo nei dettagli sull’installazione e configurazione della Docker Swarm Mode su CentOS 7. Per questo articolo, utilizzeremo tre CentOS 7 per installare e avviare il motore docker. Di questi, due server fungeranno da nodo Worker o Docker Engine e il restante sarà un manager

Pre-requisiti

In questo caso, avremo bisogno di quanto segue:

  • Un computer locale installato con Docker. La macchina può essere in esecuzione su Windows, Linux o macOS.
  • Tre server con CentOS 7 completamente installato. Un server sarà il nodo Manager mentre gli altri due server saranno il nodo Worker.
  • Useremo il seguente indirizzo IP: 172.168.0.101 per il nodo Manager, 172.168.0.102 per il nodo Worker1 e 172.168.0.103 per il nodo Worker2.

Dai un’occhiata a questi 3 principali servizi VPS:

Hosting A2

Prezzo di partenza:
$ 5.00


Affidabilità
9.3


Prezzi
9.0


Di facile utilizzo
9.3


Supporto
9.3


Caratteristiche
9.3

Leggi le recensioni

Visita A2 Hosting

ScalaHosting

Prezzo di partenza:
$ 12.00


Affidabilità
9.4


Prezzi
9.5


Di facile utilizzo
9.5


Supporto
9.5


Caratteristiche
9.4

Leggi le recensioni

Visita ScalaHosting

Hostinger

Prezzo di partenza:
$ 3.95


Affidabilità
9.3


Prezzi
9.3


Di facile utilizzo
9.4


Supporto
9.4


Caratteristiche
9.2

Leggi le recensioni

Visita Hostinger

Accedi a https://ecs.console.aliyun.com/?spm=a3c0i.o25424en.a3.13.388d499ep38szx e scegli CentOS 7. Una volta effettuato l’accesso, esegui il comando seguente per assicurarti che il sistema sia aggiornato con il ultimi pacchetti disponibili:

yum aggiorna -y

Iniziare

Prima di iniziare il processo, assicurati di configurare il file / etc / hosts su ogni nodo in modo che possa essere più facile comunicare tra loro usando i nomi host.

Utilizzare il comando seguente per aggiornare il file host:

172.168.0.101dkmanager.example.com dkmanager

172.168.0.102 workernode1.example.com workernode1

172.168.0.103 workernode2.example.com workernode2

Salva il file al termine.

Ora configura il nome host di ogni nodo in base al file hosts.

Eseguire il comando seguente per ciascun nodo.

Nodo gestore:

hostnamectl set-hostname managernode

Nodo lavoratore1:

hostnamectl set-hostname workernode1

Nodo lavoratore2:

hostnamectl set-hostname workernode2

Passaggio 1: installazione del Docker Engine

Ora installa la versione Docker su ciascun nodo. Impostare il sistema di repository docker ed eseguire il comando seguente su tutti i nomi host.

Fare lo stesso per i due server del nodo di lavoro.

Passaggio 2: configurazione del firewall su ciascun nodo

Il prossimo passo è aprire le porte sul firewall per assicurarsi che il cluster di sciami funzioni correttamente.

Continua ed esegui il comando seguente su tutti i nodi:

Riavvia il servizio docker:

Aprire le porte del firewall in basso su ciascun nodo di lavoro, quindi riavviare il servizio docker:

Passaggio 3: avviare Swarm o Cluster

Inizializzato lo sciame sul nodo Manager. Per fare ciò, eseguire il comando di seguito.

docker swarm init –advertise-addr 192.168.0.101

Assicurati di vedere l’output di seguito:

Il token generato dall’output sopra aiuta a unire il nodo gestore e i nodi di lavoro

Verifica lo stato del gestore utilizzando il comando seguente:

informazioni sulla finestra mobile

L’output dovrebbe essere simile al seguente:

Contenitori: 0
In esecuzione: 0
In pausa: 0
Fermato: 0
Immagini: 0
Versione server: 17.12.0-ce
Driver di archiviazione: devicemapper
Nome pool: docker-253: pool 0-618740
Pool Blocksize: 65,54kB
Dimensioni dispositivo base: 10,74 GB
File system di supporto: xfs
Udev Sync Supportato: vero
File di dati: / dev / loop0
File di metadati: / dev / loop1
File di loop di dati: / var / lib / docker / devicemapper / devicemapper / data
File di loop dei metadati: / var / lib / docker / devicemapper / devicemapper / metadata
Spazio dati utilizzato: 11,8 MB
Spazio dati totale: 107,4 GB
Spazio dati disponibile: 3.817 GB
Spazio metadati utilizzato: 581,6 KB
Metadata Space Total: 2.147 GB
Spazio metadati disponibile: 2.147 GB
Spazio libero minimo per thin pool: 10,74 GB
Rimozione differita abilitata: true
Cancellazione differita abilitata: true
Conteggio dispositivi eliminati differiti: 0
Versione libreria: 1.02.140-RHEL7 (2017-05-03)
Driver di registrazione: json-file
Driver cgroup: cgroupfs
plugin:
Volume: locale
Rete: overlay null macvlan host bridge
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Sciame: attivo
NodeID: viwovkb0bk0kxlk98r78apopo
È Manager: vero
ID cluster: ttauawqrc8mmd0feluhcr1b0d
Gestori: 1
Nodi: 1
Orchestrazione:
Limite di conservazione cronologia attività: 5
Zattera:
Intervallo snapshot: 10000
Numero di vecchie istantanee da conservare: 0
Tick ​​battito cardiaco: 1
Segno di spunta elettorale: 3
Dispatcher:
Periodo di battito cardiaco: 5 secondi
Configurazione CA:
Durata di scadenza: 3 mesi
Forza rotazione: 0
Gestori Autolock: false
Rotazione radice in corso: falso
Indirizzo nodo: 192.168.0.102
Indirizzi del gestore:
192.168.0.102:2377
Durata: runc
Runtime predefinito: runc
Init Binary: docker-init
versione containerd: 89623f28b87a6004d4b785663257362d1658a729
versione runc: b2567b37d7b75eb4cf325b77297b140ea686ce8f
versione di init: 949e6fa
Opzioni di sicurezza:
seccomp
Profilo: impostazione predefinita
Versione del kernel: 3.10.0-693.11.1.el7.x86_64
Sistema operativo: CentOS Linux 7 (Core)
OSType: linux
Architettura: x86_64
CPU: 1
Memoria totale: 1.102GiB
Nome: centOS-7
ID: DN4N: BHHJ: 6DJ7: SZPG: FJJC: XP6T: 23R4: CESK: E5PO: SJ6B: BOST: HZQ5
Docker Root Dir: / var / lib / docker
Modalità debug (client): false
Modalità debug (server): false
Registro: https://index.docker.io/v1/
etichette:
Sperimentale: falso
Registri non sicuri:
127.0.0.0/8
Ripristino live abilitato: falso

Dovresti vedere l’intero elenco di nodi presenti nel tuo cluster usando il comando seguente:

nodo docker ls

L’output dovrebbe essere così:

Passaggio 4: aggiungere nodi di lavoro al nodo Manager

Aggiungi i nodi Worker al servizio sciame Docker con il comando seguente:

docker swarm join –token SWMTKN-1
3793hvb71g0a6ubkgq8zgk9w99hlusajtmj5aqr3n2wrhzzf8z-1s38lymnir13hhso1qxt5pqru 192.168.0.101:2377

L’output dovrebbe essere:

Per verificare lo stato dei nodi, eseguire il comando seguente:

nodo docker ls

Se il processo ha esito positivo, dovresti ottenere l’output mostrato di seguito:

Nel caso in cui desideri recuperare un token di join perso, esegui il comando seguente:

docker swarm gestore join-token -q

Ormai, la modalità sciame docker dovrebbe essere in esecuzione correttamente con due nodi di lavoro.

Passaggio 5: impostare il servizio in modalità Sciame

Ora avvia il servizio in modalità Sciame. In questo caso, avvieremo un servizio Web in modalità Sciame Docker utilizzando i tre contenitori.

Esegui il comando seguente solo da Docker Manager:

docker service create -p 80:80 –name webservice –replicas 3 httpd

L’output dovrebbe essere simile al seguente:

Per verificare lo stato del servizio, eseguire il comando seguente:

servizio docker ls

L’output sarà:

Con l’output sopra riportato, i contenitori vengono distribuiti correttamente nei nodi del cluster. Ora è più facile accedere alla pagina Web da qualsiasi nodo utilizzando i seguenti indirizzi di browser web.

http: // 172.168. 0.101
http: //172.168. 0,102
http: //172.168. 0.103

Passaggio 6: test dell’autoguarigione del contenitore

La modalità Sciame Docker contiene funzioni uniche come l’autoguarigione del contenitore. Nel caso in cui un container non funzioni, il gestore assicurerà che i container si riavviino automaticamente su quel particolare nodo.

Per verificare se il processo funziona, rimuoviamo un contenitore da workernode2 e scopriamo se viene avviato o meno un nuovo contenitore.

Eseguire il comando seguente per elencare l’ID contenitore su Workernode2:

docker ps

L’output dovrebbe essere così:

Ora, esegui il comando seguente per rimuovere il contenitore 9b01b0a55cb7:

docker rm 9b01b0a55cb7 -f

Ora controlla se un nuovo contenitore è distribuito dal nodo Manager:

servizio docker ps webservice

Ormai potresti accorgerti che un container è fallito e immediatamente un altro container è stato avviato su workernode2:

Passaggio 7: scalare i contenitori su e giù per il servizio

Nel Docker Cluster, è possibile ridimensionare e ridurre i container. In questo caso, proviamo a ridimensionare i contenitori a 5 per il servizio.

[root @ dkmanager ~] # docker service scale webserver = 5
server web ridimensionato a 5
[root @ dkmanager ~] #

Controlla di nuovo lo stato del servizio usando il comando seguente:

Ora proviamo a ridimensionare il contenitore a 2 per il servizio:

[root @ dkmanager ~] # docker service scale webserver = 2
server web ridimensionato a 2
[root @ dkmanager ~] #

Verificare che il processo venga eseguito con il comando seguente:

Ora, dovresti avere un cluster Docker Swarm completamente configurato su CentOS7.

Conclusione

Ecco qui. È così facile installare Docker Swarm con l’aiuto della nuova modalità Swarm e del motore Docker. È importante notare che al termine dell’installazione, assicurarsi di proteggere i server fornendo un ulteriore livello di sicurezza. Una funzionalità di sicurezza con firewall e funzionalità di monitoraggio è un buon inizio.

Dai un’occhiata ai primi 3 servizi di hosting dedicati per server:

Hosting A2

Prezzo di partenza:
$ il valore di 99.59


Affidabilità
9.3


Prezzi
9.0


Di facile utilizzo
9.3


Supporto
9.3


Caratteristiche
9.3

Leggi le recensioni

Visita A2 Hosting

FastComet

Prezzo di partenza:
$ 139.00


Affidabilità
9.7


Prezzi
9.5


Di facile utilizzo
9.7


Supporto
9.7


Caratteristiche
9.6

Leggi le recensioni

Visita FastComet

Hostwinds

Prezzo di partenza:
$ 99.00


Affidabilità
9.3


Prezzi
9.2


Di facile utilizzo
9.2


Supporto
9.3


Caratteristiche
9.2

Leggi le recensioni

Visita Hostwinds

Articoli How-To correlati

  • Come distribuire i contenitori Docker con OpenStack Heat
    esperto
  • Come installare Django su un VPS CentOS 7 o un server dedicato
    intermedio
  • Come installare un Docker Swarm Cluster su Ubuntu 16.04 VPS o server dedicato
    esperto
  • Installare & Configurare il server Web Caddy su un VPS CentOS 7
    intermedio
  • Come configurare SSH su un Ubuntu 16.04 VPS o server dedicato
    intermedio
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me