dockerday2015: docker orchestration for sysadmin

29
Orchestration for Sysadmins Phu Nguyen Anh – Einsights

Upload: docker-hanoi

Post on 14-Aug-2015

113 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: DockerDay2015: Docker orchestration for sysadmin

Orchestration  for  SysadminsPhu  Nguyen  Anh  – Einsights

Page 2: DockerDay2015: Docker orchestration for sysadmin

Orchestration for Sysadmins

Andrea Luzzardi / Victor VieuxSoftware Engineers @ docker

Source: Recap from DockerCon US 2015

Page 3: DockerDay2015: Docker orchestration for sysadmin

Agenda

• Introduction to Docker Swarm

• Swarm Fault Tolerance: Replication

• Integrating Swarm with Mesos

• Provisioning Swarm with Docker Machine

Source: Recap from DockerCon US 2015

Page 4: DockerDay2015: Docker orchestration for sysadmin

“Running containers on multiple hosts.”

Source: Recap from DockerCon US 2015

Page 5: DockerDay2015: Docker orchestration for sysadmin

Swarm in a nutshell

• Exposes several Docker Engines as a single virtual Engine

• Serves the standard Docker API

• Extremely easy to get started

• Batteries includes but swappable

(PhuNA edited)

Source: Recap from DockerCon US 2015

(Added by Phu)

Page 6: DockerDay2015: Docker orchestration for sysadmin

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

Source: Recap from DockerCon US 2015

Page 7: DockerDay2015: Docker orchestration for sysadmin

Setting up Swarm

• Create a cluster: - $ swarm create

• Add nodes to a cluster: - $ swarm join --advertise=<node_ip> token://<token>

• Start Swarm: - $ swarm manage -H <swarm_ip> token://<token>

Or you can use your own etcd, zookeeper or consul

Source: Recap from DockerCon US 2015

Page 8: DockerDay2015: Docker orchestration for sysadmin

Swarm Scheduler

• Resource Management - Memory, CPU, Network

• Fit containers - Apply filters to exclude nodes - Use a strategy to rank and pick the best node

• Scheduling Knobs - Constraints - Affinities

$ docker run -m 1g -c 2 -p 80:80 ...

$ docker run -e constraint:storage==ssd ...

$ docker run -e affinities:container!=redis* ...

(Constraint, Affifinity, Port, Dependency, Health)

(spread, binpack, random)

(PhuNA edited)

(PhuNA edited)

Source: Recap from DockerCon US 2015

(Added by Phu)

(Added by Phu)

(Added by Phu)

Page 9: DockerDay2015: Docker orchestration for sysadmin

“Batteries Included but Swappable”

Source: Recap from DockerCon US 2015

Page 10: DockerDay2015: Docker orchestration for sysadmin

Docker Swarm + Mesos

• Experimental • Docker Swarm act as a Mesos Framework • In collaboration with

$> swarm manage --cluster mesos-experimental <mesos_master_url>

Source: Recap from DockerCon US 2015

Page 11: DockerDay2015: Docker orchestration for sysadmin

Mesos Cluster

+

Mesos CLI

Mesos Slaves

+

+

+

+

+

+

+

+

+

+

+

+

+

Mesos Masters

Marathon

Source: Recap from DockerCon US 2015

Page 12: DockerDay2015: Docker orchestration for sysadmin

Mesos Cluster + Docker Swarm

+

Mesos CLI

Mesos Slaves

+

+

+

+

+

+

+

+

+

+

+

+

+

Mesos Masters

Marathon

DockerCLI

Source: Recap from DockerCon US 2015

Page 13: DockerDay2015: Docker orchestration for sysadmin

Mesos Cluster + Docker Swarm

+

Mesos CLI

Mesos Slaves

+

+

+

+

+

+

+

+

+

+

+

+

+

Mesos Masters

Marathon

DockerCLI

shipyard

kitematic compose

Source: Recap from DockerCon US 2015

Page 14: DockerDay2015: Docker orchestration for sysadmin

BY

Source: Recap from DockerCon US 2015

Page 15: DockerDay2015: Docker orchestration for sysadmin

Swarm Manager Replication

Source: Recap from DockerCon US 2015

Page 16: DockerDay2015: Docker orchestration for sysadmin

Replication

DockerCLI

Swarm Cluster

• Swarm Manager is a Single Point of Failure

API Request

Manage

Source: Recap from DockerCon US 2015

Page 17: DockerDay2015: Docker orchestration for sysadmin

Replication

DockerCLI

Swarm Cluster

• Upon failure it becomes impossible to manage the cluster

• Cluster continues to run un-managed

API Request

Manage

Source: Recap from DockerCon US 2015

Page 18: DockerDay2015: Docker orchestration for sysadmin

Replica

Replication

Primary

DockerCLI

Swarm Cluster

Forward

API Request

Manage

Replica

• One primary, many replicas

• Leader Election built on top of Consul, etcd, ZooKeeper

• Replicas forward API calls to primary

• CLI can talk to any instance

Source: Recap from DockerCon US 2015

Page 19: DockerDay2015: Docker orchestration for sysadmin

Replica

Replication

Primary

DockerCLI

Swarm Cluster

Forward

API Request

Manage

Replica

• Replicas monitor health of primary instance

• Leader gets re-elected upon primary failure

Source: Recap from DockerCon US 2015

Page 20: DockerDay2015: Docker orchestration for sysadmin

PrimaryReplica

Replication

Replica

DockerCLI

Swarm Cluster

Forward

API Request

Manage

• One replica promoted to primary

• Other replicas notified of leadership update

• CLI can continue talking to same instance

Source: Recap from DockerCon US 2015

Page 21: DockerDay2015: Docker orchestration for sysadmin

Demo

Source: Recap from DockerCon US 2015

Page 22: DockerDay2015: Docker orchestration for sysadmin

“From Zero to Docker”

Source: Recap from DockerCon US 2015

Page 23: DockerDay2015: Docker orchestration for sysadmin

Machine in a nutshell

• Host management for a container centric world

• Provisions Virtual Machines

• Installs & Manages Docker Engine

• Swarm Cluster Provisioning

Source: Recap from DockerCon US 2015

Page 24: DockerDay2015: Docker orchestration for sysadmin

Machine Provisioning

5 Local Providers

9 Cloud Providers

7 Operating Systems

Source: Recap from DockerCon US 2015

Page 25: DockerDay2015: Docker orchestration for sysadmin

Machine Management

• Install, Configure & Upgrade Docker Engine - docker-machine upgrade node-{1,2,3}

• PKI Management - TLS Encryption & Authentication by default - CA generation, Key signing and Re-keying - Seamless integration: Auto-configure the CLI

• Bring Your Own Machine - Generic Driver

Source: Recap from DockerCon US 2015

Page 26: DockerDay2015: Docker orchestration for sysadmin

Machine Operations

• Operate - List, Start, Stop and Kill machines

• Debug - docker-machine ssh node-2

• Script - docker-machine toolkit: ip, url, …

Source: Recap from DockerCon US 2015

Page 27: DockerDay2015: Docker orchestration for sysadmin

Machine Clustering

• Integration with Docker Swarm

• Provision Swarm management nodes

• Pre-configure machines to join a Swarm cluster

• Tweak Swarm options

Source: Recap from DockerCon US 2015

Page 28: DockerDay2015: Docker orchestration for sysadmin

Demo

Source: Recap from DockerCon US 2015

Page 29: DockerDay2015: Docker orchestration for sysadmin

Thank you, Questions?Andrea Luzzardi - @aluzzardi

Victor Vieux - @vieux

Source: Recap from DockerCon US 2015