Docker : swarm (token)
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 |
É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 Nicolas SHINEY | April 20, 2018 | No Comments | Système | Tags : container docker swarn