Skip navigation

Docker : swarm

Mise en place de swarm

: Note : au moment de l’édition de cet article, la gestion de swarn via token est plus simple et est préférée, voir : mise en place de swarm via token.

Prérequis : Installer docker et docker-compose.

Environnement

I

I

IP Nom de l’hôte Rôle
172.16.0.10/24 master.docker.local Manager
172.16.0.11/24 worker-01.docker.local Nœud client
172.16.0.12/24 worker-02.docker.local Nœud client

Installer docker et docker-compose.

Éditer le fichier /etc/docker/daemon.json.

[root@cent-os ~]#: vim /etc/docker/daemon.json

contenu du fichier

: à faire sur tous les nœuds, le master également.

{
    "hosts" : [
        "unix://var/run/docker.sock",
        "tcp://0.0.0.0:2375"
    ]
}

Redémarrer le service docker pour que les modification soient prises en compte.

: à faire sur tous les nœuds, le master également.

[root@cent-os ~]#: systemctl restart docker

Démarrage du service docker au boot.

: à faire sur tous les nœuds, le master également.

[root@cent-os ~]#: systemctl enable docker

Installation de consul.

: à faire sur master seul.

[root@cent-os ~]#: docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap

Démarrage du swarm

: à faire sur master seul.

[root@cent-os ~]#: docker run -d -p 172.16.0.10:4000:4000 swarm manage -H :4000 --replication --advertise 172.16.0.10:4000 consul://172.16.0.10:8500

Installation de swarm sur les nœuds.

: à faire sur le nœud 1.

[root@cent-os ~]#: docker run -d swarm join --advertise=172.16.0.11:2375 consul://172.16.0.10:8500

: à faire sur le nœud 2.

[root@cent-os ~]#: docker run -d swarm join --advertise=172.16.0.12:2375 consul://172.16.0.10:8500

Vérification de la config
`leader seul`

[root@cent-os ~]#: docker -H 172.16.0.10:4000 info

sortie

Containers: 4
 Running: 3
 Paused: 0
 Stopped: 1
Images: 3
Server Version: swarm/1.2.8
Role: primary
Strategy: spread
Filters: health, port, containerslots, dependency, affinity, constraint, whitelist
Nodes: 2
 worker1.docker.local: 172.16.0.11:2375
  └ ID: 667F:OIKU:6HC7:7VAK:XUVT:BVL2:WGNE:CDMC:HQIF:6LKB:NRHQ:KBJR|172.16.0.11:2375
  └ Status: Healthy
  └ Containers: 2 (1 Running, 0 Paused, 1 Stopped)
  └ Reserved CPUs: 0 / 1
  └ Reserved Memory: 0 B / 1.018 GiB
  └ Labels: kernelversion=3.10.0-693.21.1.el7.x86_64, operatingsystem=CentOS Linux 7 (Core), ostype=linux, storagedriver=overlay2
  └ UpdatedAt: 2018-04-19T14:44:19Z
  └ ServerVersion: 18.04.0-ce
 worker2.docker.local: 172.16.0.12:2375
  └ ID: UN4C:PC5Z:Z2HY:FRCB:HZB6:M7SL:UJ42:ZY75:6R4D:3EDQ:A6PY:WMKK|172.16.0.12:2375
  └ Status: Healthy
  └ Containers: 2 (2 Running, 0 Paused, 0 Stopped)
  └ Reserved CPUs: 0 / 1
  └ Reserved Memory: 0 B / 1.018 GiB
  └ Labels: kernelversion=3.10.0-693.21.1.el7.x86_64, operatingsystem=CentOS Linux 7 (Core), ostype=linux, storagedriver=overlay2
  └ UpdatedAt: 2018-04-19T14:44:03Z
  └ ServerVersion: 18.04.0-ce
Plugins:
 Volume:
 Network:
 Log:
Swarm:
 NodeID:
 Is Manager: false
 Node Address:
Kernel Version: 3.10.0-693.21.1.el7.x86_64
Operating System: linux
Architecture: amd64
CPUs: 2
Total Memory: 2.035GiB
Name: ff22cf11c688
Docker Root Dir:
Debug Mode (client): false
Debug Mode (server): false
Experimental: false
Live Restore Enabled: false

WARNING: No kernel memory limit support

Installation d’un container.

: à faire sur master seul.

[root@cent-os ~]#: docker -H 172.16.0.10:4000 run hello-world

Vérifier que l’image est bien sur tous les nœuds.

[root@cent-os ~]#: docker -H 172.16.0.10:4000 ps -a

by | April 19, 2018 | No Comments | Système | Tags : container docker swarn