Swarm docker bangalore_meetup

Post on 06-Jan-2017

3.477 views 0 download

Transcript of Swarm docker bangalore_meetup

Docker Swarmv1.0 and beyond

@arunan

Arunan Rabindran@arunan

Special Thanks to@abronan

Introduction

v1.0

Upcoming features

UCP and Tutum

Q&A

Docker Engine

Docker CLI

Docker CLI

Docker CLI

With Docker Swarm

Docker CLI

Docker CLI

Swarm

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

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

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

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

Resource Management

• Memory

$ docker run -m 1g …

• CPU

$ docker run -c 1 …

• Ports

$ docker run -p 80:80 …

• More to come, ex: network interfaces

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” …

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

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

DemoMultihost networking/Failover in

Swarm & Tutum stack deployment

http://github.com/docker/swarm

#docker-swarm on freenode

@aluzzardi - @vieux - @abronan

Thank You. Questions?