Skip navigation

Docker : swarm (token)

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

É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

Démarrer un Swarm sur “master”.

: à faire sur master seul.

[root@cent-os ~]#: docker swarm init --advertise-addr 172.16.0.10

sortie

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

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

docker swarm join --token SWMTKN-1-162w96y3o7ssmhf08dj0iljlnvru4lzd1nhnzql9k6cdhsoovz-ceqw89g5w03dzfkhspfjt1dy6 172.16.0.10:2377

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

Ajouter les nœuds au cluster.

: à faire sur tous les nœuds client.

[root@cent-os ~]#: docker swarm join --token SWMTKN-1-162w96y3o7ssmhf08dj0iljlnvru4lzd1nhnzql9k6cdhsoovz-ceqw89g5w03dzfkhspfjt1dy6 172.16.0.10:2377

sortie

This node joined a swarm as a worker.

Vérifier l’état du cluster.

: à faire sur master seul.

sortie

ID                            HOSTNAME               STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
xsuid1up0bhho48ai3cpgrgd0 *   leader.docker.local    Ready               Active              Leader              18.04.0-ce
75fjaspua4knvyytj2wekkqa0     worker1.docker.local   Ready               Active                                  18.04.0-ce
eb8jcq83im0ez433w73kmyxse     worker2.docker.local   Ready               Active                                  18.04.0-ce
[root@cent-os ~]#: docker -H 172.16.0.10 info

sortie

Containers: 3
Running: 1
Paused: 0
Stopped: 2
Images: 12
Server Version: 18.04.0-ce
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: active
NodeID: 93iu98tss6f37qf2hd1jwcxfg
Is Manager: true
ClusterID: 7xdv9gewlaqg0k3efek6ekzs2
Managers: 1
Nodes: 3
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot Interval: 10000
Number of Old Snapshots to Retain: 0
Heartbeat Tick: 1
Election Tick: 10
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 3 months
Force Rotate: 0
Autolock Managers: false
Root Rotation In Progress: false
Node Address: 192.168.20.114
Manager Addresses:
192.168.20.114:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 773c489c9c1b21a6d78b5c538cd395416ec50f88
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-693.21.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 3.701GiB
Name: leader
ID: NHHM:D623:LBHO:V4RK:4RF6:D3JB:GIAN:F3E2:JXWU:Q2ET:UC3P:OSAT
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

#Lancer un service, dans le cas présent nginx
`leader`
docker service create --name backend --replicas 2 --publish 8080:80 nginx
sortie
pre
pakl8bcml0cs98n11rrc2woei
overall progress: 2 out of 2 tasks
1/2: running   [==================================================>]
2/2: running   [==================================================>]
verify: Service converged

Voir le service de chaque nœud.

: à faire sur tous les nœuds client.

[root@cent-os ~]#: docker node ps worker1.docker.local

sortie

ID                  NAME                IMAGE               NODE                   DESIRED STATE       CURRENT STATE            ERROR               PORTS
ux1ixykjuxqt        backend.2           nginx:latest        worker1.docker.local   Running             Running 39 minutes ago  

Supprimer le service

[root@cent-os ~]#: docker service rm

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