GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare e configurare Docker Swarm su CentOS 7 / Ubuntu 16.04 / Fedora 26/25

Sciame Docker è (noto anche come motore Docker in modalità swarm) una soluzione di clustering nativa che trasforma un gruppo di host Docker in un unico server virtuale logico. Swarm garantisce disponibilità e prestazioni elevate della tua applicazione distribuendola sul numero di host Docker all'interno di un cluster.

Inoltre, con Docker swarm puoi ridimensionare la tua applicazione orizzontalmente, ovvero aumentando il numero di istanze di container per la stessa applicazione.

La nostra infrastruttura

Per la dimostrazione, sto utilizzando un ambiente con sistema operativo misto:

HostName Indirizzo IP Sistema operativo Scopo
dockerm.itgeek.local 192.168.12.10 CentOS 7 Agisce come un gestore Docker che gestisce il motore Docker in esecuzione sui nodi. Docker Manager prenderà anche una parte di un cluster, ovvero eseguirà anche i container.
node1.itzgeek.local 192.168.12.20 Ubuntu 16.04 Nodo di lavoro 1 (motore Docker in esecuzione)
node2.itzgeek.local 192.168.12.30 Fedora 26/25 Nodo di lavoro 2 (motore Docker in esecuzione)

Lo sciame di Docker era in precedenza uno strumento separato. Ora è integrato con il motore Docker da v 1.12 . Quindi, puoi semplicemente installare il Motore Docker su tutti i tuoi host (Nodi Manager e Worker ).

LEGGI :Come installare Docker Community Edition su CentOS 7 / RHEL 7

LEGGI :Come installare Docker Community Edition su Ubuntu 16.04

LEGGI :Come installare Docker Community Edition su Fedora 26 / Fedora 25

Firewall

Dovresti aprire le seguenti porte sul firewall affinché un cluster swarm funzioni correttamente.

CentOS/Fedora:

firewall-cmd --permanent --add-port=7946/tcp
firewall-cmd --permanent --add-port=4789/udp
firewall-cmd --permanent --add-port=7946/udp
firewall-cmd --permanent --add-port=2376/tcp
firewall-cmd --permanent --add-port=2377/tcp
firewall-cmd --permanent --add-port=80/tcp  ## We are Testing Docker Swarm with WebService
firewall-cmd --reload

Ubuntu:

ufw status
ufw allow 2376/tcp
ufw allow 7946/tcp
ufw allow 7946/udp
ufw allow 2377/tcp
ufw allow 4789/udp
ufw allow 80/tcp ## We are Testing Docker Swarm with WebService
ufw reload
ufw enable

Riavvia il motore Docker dopo aver aperto le porte richieste poiché la catena del firewall influisce sulle regole della finestra mobile.

systemctl restart docker

Da qui in poi, tutti i comandi menzionati sono comandi docker universali, quindi puoi eseguire il comando su qualsiasi sistema operativo supportato da Docker (nel nostro caso, CentOS 7 , Ubuntu 16.04 e Fedora 26/25 ).

Crea uno sciame

Iniziamo la creazione di un cluster utilizzando "swarm init “. Esegui il comando seguente sul tuo nodo manager (dockerm.itzgeek.local ).

[root@dockerm ~]# docker swarm init --advertise-addr 192.168.12.10

–advertise-addr opzione specifica il nodo gestore per pubblicare il suo indirizzo come 192.168.12.10 in modo che il nodo di lavoro possa unirsi al cluster.

Risultato:

Swarm initialized: current node (uhh38rpazd5tnzjph2g5rhgxy) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-5y1u36a0osykywxeme2akpjp4jgx2l67mbqbc4fnazs39bp314-e6djx8ma2qnevolztpplkn26j \
    192.168.12.10:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

L'output sopra ha il token per aggiungere nodi di lavoro al cluster.

Visualizza lo stato attuale dello sciame usando il seguente comando.

[root@dockerm ~]# docker info

Risultato:

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 17.03.1-ce
Storage Driver: devicemapper
 Pool Name: docker-253:1-297-pool
.    .   .
.    .   .
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.135-RHEL7 (2016-11-16)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: active
 NodeID: uhh38rpazd5tnzjph2g5rhgxy
 Is Manager: true
 ClusterID: kp8tgowwcuiv3om0wzfgpngp7
 Managers: 1
 Nodes: 1
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: 192.168.12.10
 Manager Addresses:
  192.168.12.10:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 4ab9917febca54791c5f071a9d1f404867857fcc
runc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-123.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 979.9 MiB
Name: dockerm.itzgeek.local
ID: OTNI:UJZA:7CC4:TS5N:TVJ7:XXQE:5J7Q:ENWW:ZVPD:3VJI:F5DL:JYSP
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Puoi elencare i nodi Docker nello sciame con il seguente comando.

[root@dockerm ~]# docker node ls

Risultato:

ID                           HOSTNAME               STATUS  AVAILABILITY  MANAGER STATUS
uhh38rpazd5tnzjph2g5rhgxy *  dockerm.itzgeek.local  Ready   Active        Leader
Pagine:1 2
Cent OS
  1. Come installare e configurare Nginx su CentOS 7

  2. Come installare e configurare Redis su CentOS 7

  3. Come installare e configurare Fail2Ban su CentOS 8 e Fedora 33

  4. Come configurare Autofs su CentOS 7 / Ubuntu 16.04 / Debian 9 / Fedora 27/26

  5. Come installare e configurare la finestra mobile in Rocky Linux/Centos 8

Come installare e configurare un cluster Docker Swarm su CentOS 8

Come installare e configurare Nagios 4.0.7 su CentOS 7

Come installare e configurare ISPConfig CP su CentOS 7

Installa e configura phpLDAPAdmin su CentOS 7 / Ubuntu 16.04

Come configurare il registro privato Docker su CentOS 7 / Ubuntu 16.04 / Fedora 26/25

Come installare e configurare GitLab su CentOS 7 / Ubuntu 18.04 e Debian 9