Swarm docker bangalore_meetup

15
Docker Swarm v1.0 and beyond @arunan

Transcript of Swarm docker bangalore_meetup

Page 1: Swarm docker bangalore_meetup

Docker Swarmv1.0 and beyond

@arunan

Page 2: Swarm docker bangalore_meetup

Arunan Rabindran@arunan

Special Thanks to@abronan

Page 3: Swarm docker bangalore_meetup

Introduction

v1.0

Upcoming features

UCP and Tutum

Q&A

Page 4: Swarm docker bangalore_meetup

Docker Engine

Docker CLI

Docker CLI

Docker CLI

Page 5: Swarm docker bangalore_meetup

With Docker Swarm

Docker CLI

Docker CLI

Swarm

Page 6: Swarm docker bangalore_meetup

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

Oct0.4.0 Release

1.0.0 Release

Aug

2015

Page 7: Swarm docker bangalore_meetup

Swarm 1.0.0• Docker REST API (99%)• Resource management (CPU, Mem, Networking) • Advanced scheduling with constraints and affinities • Multiple Discovery Backends (hub, etcd, consul, zookeeper) • TLS: Encryption & Authentication

• Leader Election • Works great with Docker 1.9 Networking, Volume Plugins • Focus on stability & stress tested on a 1000 EC2 nodes

Page 8: Swarm docker bangalore_meetup

managers

scheduler

followers

key value store

CLI

discovery• k/v store • file/node • gossip (not supported yet)

node-1 node-2 node-3 node-4

overlay network

Page 9: Swarm docker bangalore_meetup

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

Page 10: Swarm docker bangalore_meetup

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 11: Swarm docker bangalore_meetup

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 12: Swarm docker bangalore_meetup

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 13: Swarm docker bangalore_meetup

Brief overview of Tutum and UCP

• Tutum

-Docker Services for the Cloud

• DUCP (Docker Universal Control Plane)

-Docker’s on-premises clustering solution -based on Swarm

Page 14: Swarm docker bangalore_meetup

DemoMultihost networking/Failover in

Swarm & Tutum stack deployment

Page 15: Swarm docker bangalore_meetup

http://github.com/docker/swarm

#docker-swarm on freenode

@aluzzardi - @vieux - @abronan

Thank You. Questions?