docker swarm 0.2.0
TRANSCRIPT
![Page 1: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/1.jpg)
Introduction to Swarma Docker-native clustering system
@aluzzardi - @vieux - @abronan
![Page 2: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/2.jpg)
Alexandre Beslic@abronan
![Page 3: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/3.jpg)
Introduction
Demo
Upcoming features
Q&A
![Page 4: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/4.jpg)
Today
Docker CLI
Docker CLI
Docker CLI
![Page 5: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/5.jpg)
With Docker Swarm
Docker CLI
Docker CLI
Swarm
![Page 6: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/6.jpg)
Swarm in a nutshell
• Exposes several Docker Engines as a single virtual Engine
• Serves the standard Docker API
• Extremely easy to get started
• Batteries included but swappable
![Page 7: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/7.jpg)
TimelineOct
Nov
Dec
Jan
Feb
Jun
Proof of Concept
DockerCon EU Open Repository
First Release Candidate
Swarm Beta Release
Global Hack Day Open Proposal
0.2.0 Release
0.3.0 Release
Apr
![Page 8: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/8.jpg)
Swarm 0.2.0
• Docker REST API (>85%)
• Resource management (CPU, Mem, Networking)
• Advanced scheduling with constraints and affinities
• Multiple Discovery Backends (hub, etcd, consul, zookeeper)
• TLS: Encryption & Authentication
![Page 9: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/9.jpg)
Setup using the hosted discovery service
• Create a cluster:
$ swarm create
• Add nodes to a cluster:
$ swarm join --add=<node_ip> token://<token>
• Start Swarm
$ swarm manage --addr=<swarm_ip> token://<token>
Or you can use your own etcd, zookeeper or consul
Contributions are welcome ☺ :
![Page 10: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/10.jpg)
Swarm Scheduler
2 steps:
• 1- Apply filters to exclude nodes
- ports
- constraints - affinity
- health - dependency
• 2- Use a strategy to pick the best node
- binpack
- spread
- random Contributions are welcome ☺ :
![Page 11: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/11.jpg)
Resource Management
• Memory
$ docker run -m 1g …
• CPU
$ docker run -c 1 …
• Ports
$ docker run -p 80:80 …
• More to come, ex: network interfaces
![Page 12: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/12.jpg)
Constraints
• Standard constraints induced from docker info
docker run -e “constraint:operatingsystem==*fedora*” …
docker run -e “constraint:storagedriver==*aufs*” …
• Custom constraints with host labels
docker -d --label “region==us-east”
docker run -e “constraint:region==us-east” …
• Pin a container to a specific host
docker run –e “constraint:node==ubuntu-2” …
![Page 13: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/13.jpg)
Affinities
• Containers affinities
docker run --name web nginx
docker run -e “affinity:container==web” logger
• Containers Anti-affinities
docker run --name redis-master redis
docker run --name redis-slave -e “affinity:container!=redis*” …
• Images affinities
docker run -e “affinity:image==redis” redis
![Page 14: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/14.jpg)
Soft Affinities
• Containers soft affinities
docker run -d --name redis5 -e affinity:container!=~redis* redis
![Page 15: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/15.jpg)
Swarm Beta: Integrations
• Fully integrated with Machine$ machine create -d azure --swarm --swarm-discovery token://<token> …
• Partially integrated with Compose$ DOCKER_HOST=<swarm_addr> compose up
• Mesos & DCOS integration has started in collaboration with Mesosphere. $ swarm manage -c mesos zk://<zookeeper_addr>/swarm
![Page 16: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/16.jpg)
DemoScheduling containers on Swarm
![Page 17: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/17.jpg)
Demo
hdd ssd
Docker CLI
Docker CLI= RAM: 4GB
CPU: 1coreSwarm
us-east us-west
![Page 18: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/18.jpg)
Swarm Beta: Upcoming features
• Support for K/V backends (consul, etcd, zookeeper)
• High Availability with replicated state between multiple Managers
• Attempt at Re-scheduling on Node failure
• Networking (libnetwork integration into docker)
![Page 19: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/19.jpg)
On-failure rescheduling
![Page 20: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/20.jpg)
On-failure rescheduling
Docker CLI
Docker CLI
Swarm
Node Failure
![Page 21: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/21.jpg)
On-failure rescheduling
Docker CLI
Docker CLI
Swarm
Node Failure
![Page 22: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/22.jpg)
High Availability, State replication
![Page 23: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/23.jpg)
Docker CLI
Docker CLI
Swarm
![Page 24: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/24.jpg)
Docker CLI
Swarm
Node Failure
![Page 25: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/25.jpg)
Docker CLI
Docker CLI
Swarm
Node Failure
![Page 26: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/26.jpg)
Manager backup instances
Docker CLI
ManagerBackupBackup
![Page 27: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/27.jpg)
Manager backup instances
Docker CLI
ManagerBackupBackup
Failure
![Page 28: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/28.jpg)
Manager backup instances
Docker CLI
ManagerBackup Manager
Failure Swap
![Page 29: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/29.jpg)
Mesos Integration
![Page 30: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/30.jpg)
Mesos cluster
+ + +
Mesos CLI
Marathon
![Page 31: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/31.jpg)
Mesos cluster + Docker Swarm
+ + +
Docker CLI
Mesos CLI
Marathon
![Page 32: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/32.jpg)
Mesos cluster + Docker Swarm
+ + +
Docker CLI
Mesos CLI
DockerCompose
Marathon
![Page 33: Docker Swarm 0.2.0](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a7831e1a28ab133e8b4862/html5/thumbnails/33.jpg)
http://github.com/docker/swarm
#docker-swarm on freenode
@aluzzardi - @vieux - @abronan
Thank You. Questions?