Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Docker Swarm 0.2.0

10,511 views

Published on

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

Published in: Technology

Docker Swarm 0.2.0

  1. 1. Introduction to Swarm a Docker-native clustering system @aluzzardi - @vieux - @abronan
  2. 2. Alexandre Beslic @abronan
  3. 3. Introduction Demo Upcoming features Q&A
  4. 4. Today Docker CLI Docker CLI Docker CLI
  5. 5. With Docker Swarm Docker CLI Docker CLI Swarm
  6. 6. 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
  7. 7. Timeline Oct 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
  8. 8. 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
  9. 9. 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 ☺ :
  10. 10. 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 ☺ :
  11. 11. Resource Management • Memory $ docker run -m 1g … • CPU $ docker run -c 1 … • Ports $ docker run -p 80:80 … • More to come, ex: network interfaces
  12. 12. 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” …
  13. 13. 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
  14. 14. Soft Affinities • Containers soft affinities docker run -d --name redis5 -e affinity:container!=~redis* redis
  15. 15. 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
  16. 16. Demo Scheduling containers on Swarm
  17. 17. Demo hdd ssd Docker CLI Docker CLI= RAM: 4GB CPU: 1core Swarm us-east us-west
  18. 18. 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)
  19. 19. On-failure rescheduling
  20. 20. On-failure rescheduling Docker CLI Docker CLI Swarm Node Failure
  21. 21. On-failure rescheduling Docker CLI Docker CLI Swarm Node Failure
  22. 22. High Availability, State replication
  23. 23. Docker CLI Docker CLI Swarm
  24. 24. Docker CLI Swarm Node Failure
  25. 25. Docker CLI Docker CLI Swarm Node Failure
  26. 26. Manager backup instances Docker CLI ManagerBackupBackup
  27. 27. Manager backup instances Docker CLI Manager BackupBackup Failure
  28. 28. Manager backup instances Docker CLI Manager Backup Manager Failure Swap
  29. 29. Mesos Integration
  30. 30. Mesos cluster + + + Mesos CLI Marathon
  31. 31. Mesos cluster + Docker Swarm + + + Docker CLI Mesos CLI Marathon
  32. 32. Mesos cluster + Docker Swarm + + + Docker CLI Mesos CLI Docker Compose Marathon
  33. 33. http://github.com/docker/swarm #docker-swarm on freenode @aluzzardi - @vieux - @abronan Thank You. Questions?

×