GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer et configurer Docker Swarm sur CentOS 7 / Ubuntu 16.04 / Fedora 26/25

Essaim Docker est (alias moteur Docker en mode essaim) une solution de clustering native qui transforme un groupe d'hôtes Docker en un seul serveur virtuel logique. Swarm garantit la disponibilité et les hautes performances de votre application en la répartissant sur le nombre d'hôtes Docker à l'intérieur d'un cluster.

De plus, avec Docker Swarm, vous pouvez redimensionner votre application horizontalement, c'est-à-dire augmenter le nombre d'instances de conteneur pour la même application.

Notre infrastructure

Pour la démonstration, j'utilise un environnement de système d'exploitation mixte :

Nom d'hôte Adresse IP Système d'exploitation Objectif
dockerm.itgeek.local 192.168.12.10 CentOS 7 Agit en tant que gestionnaire Docker qui gère le moteur Docker exécuté sur les nœuds. Docker Manager prendra également une partie d'un cluster, c'est-à-dire qu'il exécutera également des conteneurs.
node1.itzgeek.local 192.168.12.20 Ubuntu 16.04 Nœud de travail 1 (moteur Docker en cours d'exécution)
node2.itzgeek.local 192.168.12.30 Fédora 26/25 Nœud de travail 2 (moteur Docker en cours d'exécution)

Docker Swarm était auparavant un outil distinct. Il est désormais intégré au moteur Docker à partir de la v 1.12 . Ainsi, vous pouvez simplement installer le moteur Docker sur tous vos hôtes (Manager et Worker Nodes ).

LIRE  :Comment installer Docker Community Edition sur CentOS 7 / RHEL 7

LIRE  :Comment installer Docker Community Edition sur Ubuntu 16.04

LIRE  :Comment installer Docker Community Edition sur Fedora 26 / Fedora 25

Pare-feu

Vous devez ouvrir les ports suivants sur le pare-feu pour qu'un cluster Swarm fonctionne correctement.

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

Redémarrez le moteur Docker après avoir ouvert les ports requis, car la chaîne de pare-feu affecte les règles Docker.

systemctl restart docker

À partir de là, toutes les commandes mentionnées sont des commandes docker universelles afin que vous puissiez exécuter la commande sur n'importe quel système d'exploitation pris en charge par Docker (dans notre cas, CentOS 7 , Ubuntu 16.04 , et Fedora 26/25 ).

Créer un essaim

Lançons une création de cluster en utilisant "swarm init “. Exécutez la commande suivante sur votre nœud de gestionnaire (dockerm.itzgeek.local ).

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

–advertise-adr L'option spécifie le nœud du gestionnaire pour publier son adresse en tant que 192.168.12.10 afin que le noeud worker puisse rejoindre le cluster.

Sortie :

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.

La sortie ci-dessus contient le jeton permettant d'ajouter des nœuds de travail au cluster.

Affichez l'état actuel de l'essaim à l'aide de la commande suivante.

[root@dockerm ~]# docker info

Sortie :

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

Vous pouvez répertorier les nœuds Docker dans l'essaim avec la commande suivante.

[root@dockerm ~]# docker node ls

Sortie :

ID                           HOSTNAME               STATUS  AVAILABILITY  MANAGER STATUS
uhh38rpazd5tnzjph2g5rhgxy *  dockerm.itzgeek.local  Ready   Active        Leader
Pages :1 2
Cent OS
  1. Comment installer et configurer Nginx sur CentOS 7

  2. Comment installer et configurer Redis sur CentOS 7

  3. Comment installer et configurer Fail2Ban sur CentOS 8 et Fedora 33

  4. Comment configurer Autofs sur CentOS 7 / Ubuntu 16.04 / Debian 9 / Fedora 27/26

  5. Comment installer et configurer docker dans Rocky Linux/Centos 8

Comment installer et configurer un cluster Docker Swarm sur CentOS 8

Comment installer et configurer Nagios 4.0.7 sur CentOS 7

Comment installer et configurer ISPConfig CP sur CentOS 7

Installer et configurer phpLDAPAdmin sur CentOS 7 / Ubuntu 16.04

Comment configurer le registre privé Docker sur CentOS 7 / Ubuntu 16.04 / Fedora 26/25

Comment installer et configurer GitLab sur CentOS 7 / Ubuntu 18.04 et Debian 9