Container Orchestration
Docker Swarm Intro
Key Concepts
Clustering
Scheduling
Fault Tolerance
Load Balancing
Scaling
Application Deployments
SWARM
Kubernetes
Mesos and Marathon
Native Docker Orchestration Engine
May become a norm in future
Compatible with Docker Compose
Integrated with Docker Engine and CLI
Architecture
Services
Scheduling
Networking
Load Balancing
Fault Tolerance
Zero Downtime Deployment
gossip
raft
managers
workers
Unit of deployment
One or more containers
Global or Replicated
replicas = 5
one per node
useful to setup monitoring, logging agents etc.
node1
node2
node3
resource aware
spreads by default
placement constraints can be defined
deploy:
placement:
constraints:
- node.role == worker
- node.labels.env = staging
- node.hostname != node-2
- engine.labels.os == opensuse
node1
node2
node3
bridge
overlay
overlay
ingress
docker_gwbridge
80
swarm LB
swarm LB
swarm LB
published port
81
81
81
80
External Load Balancer
node1
node2
node3
node1
node2
node3
node1
node2
node3