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
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 Nicolas SHINEY | April 19, 2018 | No Comments | Système | Tags : container docker swarn