building a docker v1.12 swarm cluster on arm

23
Dieter Reuter @quintus23m Senior Consultant, SEAL Systems Stefan Scherer @stefscherer Software Engineer, SEAL Systems Building a Docker Swarm on ARM

Upload: team-hypriot

Post on 16-Jan-2017

1.112 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Building a Docker v1.12 Swarm cluster on ARM

Dieter Reuter @quintus23mSenior Consultant, SEAL SystemsStefan Scherer @stefschererSoftware Engineer, SEAL Systems

Building a Docker Swarm on ARM

Page 2: Building a Docker v1.12 Swarm cluster on ARM

HardwarePi’sSwitchPower supply

Agenda

SoftwareSD card imageflash tooldocker-machine

Demodocker-compose

Page 3: Building a Docker v1.12 Swarm cluster on ARM

• Education• Learning cloud principles• Hands-on cluster

Why?

Page 4: Building a Docker v1.12 Swarm cluster on ARM

Build Hardware

Page 5: Building a Docker v1.12 Swarm cluster on ARM

Parts list

For a four node swarm.

• 4x Raspberry Pi 2/3• 5 port switch with 5V• 6x USB power supply• 20x Distant bolts 2.5mm• 4x micro USB cable• 1x 5.5mm barrel USB• 4x flat patch cable• 4x Micro SD cards

Build Hardware

Page 6: Building a Docker v1.12 Swarm cluster on ARM
Page 7: Building a Docker v1.12 Swarm cluster on ARM

HypriotOSGet started with Docker on ARM in 5 minutes

Page 8: Building a Docker v1.12 Swarm cluster on ARM

For Linux and Mac

Small helper script to do all these in just one command:

• Download the SD card image• Uncompress it• Set hostname for device• Optionally set WiFi config

Flash HypriotOS

Page 9: Building a Docker v1.12 Swarm cluster on ARM

Flash HypriotOS

$ flash \ --hostname swarm01 \ --ssid wifipsk \ --password wifipwd \ https://downloads.hypriot.com/hypriotos-rpi-v0.8.0.img.zip

# repeat for swarm02..swarm04

Page 10: Building a Docker v1.12 Swarm cluster on ARM

Find your Pi

$ ping swarm01.local

Page 11: Building a Docker v1.12 Swarm cluster on ARM

Add your SSH key

$ ssh-keygen -R swarm01.local

$ ssh-copy-id [email protected]

# repeat for swarm02..swarm04

Page 12: Building a Docker v1.12 Swarm cluster on ARM

… some plumbing code

$ export TOKEN=$(for i in $(seq 1 32); do echo -n $(echo \ "obase=16; $(($RANDOM % 16))" | bc); done; echo)

$ function getip() { (traceroute $1 2>&1 | head -n 1 | \ cut -d\( -f 2 | cut -d\) -f 1) }

Page 13: Building a Docker v1.12 Swarm cluster on ARM

Create Docker Swarm manager v1.11

$ docker-machine create -d generic \ --engine-storage-driver=overlay --swarm --swarm-master \ --swarm-image hypriot/rpi-swarm:latest \ --swarm-discovery="token://$TOKEN" \ --generic-ip-address=$(getip swarm01.local) \ swarm01

Page 14: Building a Docker v1.12 Swarm cluster on ARM

Create Docker Swarm nodes v1.11

$ docker-machine create -d generic \ --engine-storage-driver=overlay --swarm \ --swarm-image hypriot/rpi-swarm:latest \ --swarm-discovery="token://$TOKEN" \ --generic-ip-address=$(getip swarm02.local) \ swarm02

# repeat for swarm03..swarm04

Page 15: Building a Docker v1.12 Swarm cluster on ARM

Demo Time

Page 16: Building a Docker v1.12 Swarm cluster on ARM

Create Docker Swarm manager v1.12

$ ssh [email protected] docker swarm init

Page 17: Building a Docker v1.12 Swarm cluster on ARM

Create Docker Swarm nodes v1.12

$ export MASTER=$(getip swarm01.local)

$ ssh [email protected] docker swarm join $MASTER:2377

$ ssh [email protected] docker swarm join $MASTER:2377

$ ssh [email protected] docker swarm join $MASTER:2377

Page 18: Building a Docker v1.12 Swarm cluster on ARM

Control your Docker Swarm

$ ssh [email protected]

$ docker info

$ docker node ls

Page 19: Building a Docker v1.12 Swarm cluster on ARM

Running our first Swarm service

$ docker service create --name ping \ hypriot/rpi-alpine-scratch ping 8.8.8.8

$ docker service ls

$ docker service tasks ping

Page 20: Building a Docker v1.12 Swarm cluster on ARM

Scale our Swarm service

$ docker service update ping --replicas 10 # or$ docker service scale ping=10

$ docker service tasks ping

Page 21: Building a Docker v1.12 Swarm cluster on ARM

• Self made cluster• Pico Cluster• BitScope Blade

Your ideas?

Examples

Page 22: Building a Docker v1.12 Swarm cluster on ARM

• http://blog.hypriot.com• http://picocluster.com• http://bitscope.com/product/blade

Further Links

Page 23: Building a Docker v1.12 Swarm cluster on ARM

Thank you!@quintus23m@stefscherer

@HypriotTweets