16. Different with Docker Swarm
● Where is “Consul” ?
○ The K/V DB already built-in in
Swarm Kit
● More security communication.
○ It default support TLS
● What is Raft Consensus ?
○ For data consistentcy and election
node if master is down.
17. SwarmKit
Master
● Build SwarmKit binaries
○ git clone
https://github.com/docker/swarmkit.git
○ cd swarmkit
○ make setup
○ make all
● Run Swarm manager
○ swarmd -d /tmp/node-1
--listen-control-api
/tmp/manager1/swarm.sock
--hostname node-1
21. SwarmKit
Create A Service
● Create a Swarm Kit service
○ swarmctl service create --name redis
--image redis:3.0.5
● Make sure service status
○ swarmctl node ls
22. SwarmKit
Create A Service
● Create a Swarm Kit service
○ swarmctl service create --name redis
--image redis:3.0.5
● Make sure service status
○ swarmctl service ls
● Check detail of service
○ swarmctl service inspect redis
23. SwarmKit
Scale Your Service
● Scale Swarm Kit service
○ swarmctl service update redis
--replicas 6
● Make sure service status
○ swarmctl service ls
○ swarmctl service ls
30. ● Docker Swarm Mode ( Swarm
version 2)
● New feature from Docker Engine
1.12
● Powerful and more security
Docker Swarm Mode
31. Different between
Docker Swarm, SwarmKit and Swarm V2
Docker Swarm SwarmKit Swarm Mode (v2)
Docker Version All All >= 1.12
K/V DB Need extra one Built-In Built-In
Extra Binaries No
Yes
(Use Go 1.6)
No
Security None Built-In Built-In
Extra Service None None
Routing Mesh
Load Balance
Support Docker
Compose,
Docker-Machine
Yes Yes
No
(for now)
39. Docker Swarm Mode:
● Connect to Swarm Manager create
service “vote”
○ docker-machine ssh v1
○ docker service create --name vote -p
8080:80 instavote/vote
● Check detail of this service
○ docker service ls
● Check which node run this service
○ docker service ps vote
V1
(Manager)
192.168.99.100
V2
(Worker)
192.168.99.101
V3
(Worker)
192.168.99.102
instavote/
vote
40.
41.
42. Docker Swarm Mode:
● Scale “vote” service to 3
○ docker service scale vote=2
● Check detail of this service
○ docker service ls
● Check which node run this service
○ docker service ps vote
V1
(Manager)
192.168.99.100
V2
(Worker)
192.168.99.101
V3
(Worker)
192.168.99.102
instavote/
vote
instavote/
vote
Random
44. Docker Swarm Mode:
● Scale “vote” service from 2 to 3
○ docker service scale vote=3
● Check detail of this service
○ docker service ls
● Check which node run this service
○ docker service ps vote
V1
(Manager)
192.168.99.100
V2
(Worker)
192.168.99.101
V3
(Worker)
192.168.99.102
instavote/
vote
instavote/
vote
instavote/
vote
45. Docker Swarm Mode:
● Service update (Immediately)
○ docker service update --image
instavote/vote:movies vote
● Check detail of this service
○ docker service ls
● Check which node run this service
○ docker service ps vote
V1
(Manager)
192.168.99.100
V2
(Worker)
192.168.99.101
V3
(Worker)
192.168.99.102
instavote/
vote:
movies
instavote/
vote:
movies
instavote/
vote:
movies
46. Docker Swarm Mode:
● Service update (Rolling Update)
○ docker service update vote --image
instavote/vote:indent
--update-parallelism 1
--update-delay 10s
● Check detail of this service
○ docker service ls
● Check which node run this service
○ docker service ps vote
V1
(Manager)
192.168.99.100
V2
(Worker)
192.168.99.101
V3
(Worker)
192.168.99.102
instavote/
vote:
indent
instavote/
vote:
indent
instavote/
vote:
indent
47. Docker Swarm Mode:
● Global Services
○ docker service create --mode=global --name prometheus
prom/prometheus
● Check detail of this service
○ docker service ls
● Check which node run this service
○ docker service ps prometheus
V1
(Manager)
192.168.99.100
V2
(Worker)
192.168.99.101
V3
(Worker)
192.168.99.102
instavote/
vote:
indent
instavote/
vote:
indent
instavote/
vote:
indent
prometheus
prometheus
prometheus
48. Different between Docker Swarm, SwarmKit
and Swarm V2
Docker Swarm SwarmKit Swarm Mode (v2)
Docker Version All All >= 1.12
K/V DB Need extra one Built-In Built-In
Extra Binaries No
Yes
(Use Go 1.6)
No
Security None Built-In Built-In
Extra Service None None
Routing Mesh
Load Balance
Support Docker
Compose,
Docker-Machine
Yes Yes
No
(for now)