85
Professorship for Computer Science Communication Services, Telecommunication Systems and Computer Networks High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster HighLoad++ Conf | Moskow November 8, 2016 @MathiasRenner | Hypriot.com

Evaluation of High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster / Mathias Renner (Hypriot Ltd.)

  • Upload
    ontico

  • View
    141

  • Download
    5

Embed Size (px)

Citation preview

Professorship for Computer ScienceCommunication Services, Telecommunication Systems and Computer Networks

High Availability Performanceof Kubernetes and Docker Swarmon a Raspberry Pi ClusterHighLoad++ Conf | Moskow

November 8, 2016

@MathiasRenner | Hypriot.com

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Content

1 Motivation

2 Why Kubernetes and Docker?

3 Related Work

4 Test Setup

5 Testing Scenarios

6 Results

7 Live Demo

8 Outlook

9 Lessons Learned

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 2/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Motivation

Observing paradigm shift: From large to small devices, in size and power.

Architecture size shrinksEnergy efficiency increasesLow-cost hardware availability increases

→ Internet of Things

Contributing factors

Educational added value (physical, bare metal). Same as big machines, just lesspowerful.Cluster for Distributed Systems/Microservices/SOAVery popularOwn contribution for Docker on ARM

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 3/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Motivation

Observing paradigm shift: From large to small devices, in size and power.

Architecture size shrinks

Energy efficiency increasesLow-cost hardware availability increases

→ Internet of Things

Contributing factors

Educational added value (physical, bare metal). Same as big machines, just lesspowerful.Cluster for Distributed Systems/Microservices/SOAVery popularOwn contribution for Docker on ARM

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 3/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Motivation

Observing paradigm shift: From large to small devices, in size and power.

Architecture size shrinksEnergy efficiency increases

Low-cost hardware availability increases→ Internet of Things

Contributing factors

Educational added value (physical, bare metal). Same as big machines, just lesspowerful.Cluster for Distributed Systems/Microservices/SOAVery popularOwn contribution for Docker on ARM

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 3/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Motivation

Observing paradigm shift: From large to small devices, in size and power.

Architecture size shrinksEnergy efficiency increasesLow-cost hardware availability increases

→ Internet of Things

Contributing factors

Educational added value (physical, bare metal). Same as big machines, just lesspowerful.Cluster for Distributed Systems/Microservices/SOAVery popularOwn contribution for Docker on ARM

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 3/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Motivation

Observing paradigm shift: From large to small devices, in size and power.

Architecture size shrinksEnergy efficiency increasesLow-cost hardware availability increases

→ Internet of Things

Contributing factors

Educational added value (physical, bare metal). Same as big machines, just lesspowerful.Cluster for Distributed Systems/Microservices/SOAVery popularOwn contribution for Docker on ARM

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 3/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Motivation

Observing paradigm shift: From large to small devices, in size and power.

Architecture size shrinksEnergy efficiency increasesLow-cost hardware availability increases

→ Internet of Things

Contributing factors

Educational added value (physical, bare metal). Same as big machines, just lesspowerful.

Cluster for Distributed Systems/Microservices/SOAVery popularOwn contribution for Docker on ARM

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 3/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Motivation

Observing paradigm shift: From large to small devices, in size and power.

Architecture size shrinksEnergy efficiency increasesLow-cost hardware availability increases

→ Internet of Things

Contributing factors

Educational added value (physical, bare metal). Same as big machines, just lesspowerful.Cluster for Distributed Systems/Microservices/SOA

Very popularOwn contribution for Docker on ARM

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 3/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Motivation

Observing paradigm shift: From large to small devices, in size and power.

Architecture size shrinksEnergy efficiency increasesLow-cost hardware availability increases

→ Internet of Things

Contributing factors

Educational added value (physical, bare metal). Same as big machines, just lesspowerful.Cluster for Distributed Systems/Microservices/SOAVery popular

Own contribution for Docker on ARM

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 3/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Motivation

Observing paradigm shift: From large to small devices, in size and power.

Architecture size shrinksEnergy efficiency increasesLow-cost hardware availability increases

→ Internet of Things

Contributing factors

Educational added value (physical, bare metal). Same as big machines, just lesspowerful.Cluster for Distributed Systems/Microservices/SOAVery popularOwn contribution for Docker on ARM

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 3/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Why Kubernetes and Docker

Docker

Official support on ARM available since Aug 18, 2016LightweightAnnounced HA features that are very basic, but complete for enough use cases

Kubernetes (K8s)

Recently support for ARM has been extendedKnown as very reliable (based on Google’s Borg DC Manager)Not that ressource-intensive

What about...?

Mesos: Requires too much resources (Netflix got it working), complex setupNomad: Still experimental, in general and on ARM archOpenStack, Pacemaker, Marathon, Apache Spark, Open MPI, ROOT...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 4/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Why Kubernetes and Docker

Docker

Official support on ARM available since Aug 18, 2016

LightweightAnnounced HA features that are very basic, but complete for enough use cases

Kubernetes (K8s)

Recently support for ARM has been extendedKnown as very reliable (based on Google’s Borg DC Manager)Not that ressource-intensive

What about...?

Mesos: Requires too much resources (Netflix got it working), complex setupNomad: Still experimental, in general and on ARM archOpenStack, Pacemaker, Marathon, Apache Spark, Open MPI, ROOT...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 4/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Why Kubernetes and Docker

Docker

Official support on ARM available since Aug 18, 2016Lightweight

Announced HA features that are very basic, but complete for enough use cases

Kubernetes (K8s)

Recently support for ARM has been extendedKnown as very reliable (based on Google’s Borg DC Manager)Not that ressource-intensive

What about...?

Mesos: Requires too much resources (Netflix got it working), complex setupNomad: Still experimental, in general and on ARM archOpenStack, Pacemaker, Marathon, Apache Spark, Open MPI, ROOT...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 4/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Why Kubernetes and Docker

Docker

Official support on ARM available since Aug 18, 2016LightweightAnnounced HA features that are very basic, but complete for enough use cases

Kubernetes (K8s)

Recently support for ARM has been extendedKnown as very reliable (based on Google’s Borg DC Manager)Not that ressource-intensive

What about...?

Mesos: Requires too much resources (Netflix got it working), complex setupNomad: Still experimental, in general and on ARM archOpenStack, Pacemaker, Marathon, Apache Spark, Open MPI, ROOT...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 4/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Why Kubernetes and Docker

Docker

Official support on ARM available since Aug 18, 2016LightweightAnnounced HA features that are very basic, but complete for enough use cases

Kubernetes (K8s)

Recently support for ARM has been extendedKnown as very reliable (based on Google’s Borg DC Manager)Not that ressource-intensive

What about...?

Mesos: Requires too much resources (Netflix got it working), complex setupNomad: Still experimental, in general and on ARM archOpenStack, Pacemaker, Marathon, Apache Spark, Open MPI, ROOT...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 4/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Why Kubernetes and Docker

Docker

Official support on ARM available since Aug 18, 2016LightweightAnnounced HA features that are very basic, but complete for enough use cases

Kubernetes (K8s)

Recently support for ARM has been extended

Known as very reliable (based on Google’s Borg DC Manager)Not that ressource-intensive

What about...?

Mesos: Requires too much resources (Netflix got it working), complex setupNomad: Still experimental, in general and on ARM archOpenStack, Pacemaker, Marathon, Apache Spark, Open MPI, ROOT...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 4/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Why Kubernetes and Docker

Docker

Official support on ARM available since Aug 18, 2016LightweightAnnounced HA features that are very basic, but complete for enough use cases

Kubernetes (K8s)

Recently support for ARM has been extendedKnown as very reliable (based on Google’s Borg DC Manager)

Not that ressource-intensive

What about...?

Mesos: Requires too much resources (Netflix got it working), complex setupNomad: Still experimental, in general and on ARM archOpenStack, Pacemaker, Marathon, Apache Spark, Open MPI, ROOT...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 4/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Why Kubernetes and Docker

Docker

Official support on ARM available since Aug 18, 2016LightweightAnnounced HA features that are very basic, but complete for enough use cases

Kubernetes (K8s)

Recently support for ARM has been extendedKnown as very reliable (based on Google’s Borg DC Manager)Not that ressource-intensive

What about...?

Mesos: Requires too much resources (Netflix got it working), complex setupNomad: Still experimental, in general and on ARM archOpenStack, Pacemaker, Marathon, Apache Spark, Open MPI, ROOT...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 4/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Why Kubernetes and Docker

Docker

Official support on ARM available since Aug 18, 2016LightweightAnnounced HA features that are very basic, but complete for enough use cases

Kubernetes (K8s)

Recently support for ARM has been extendedKnown as very reliable (based on Google’s Borg DC Manager)Not that ressource-intensive

What about...?

Mesos: Requires too much resources (Netflix got it working), complex setupNomad: Still experimental, in general and on ARM archOpenStack, Pacemaker, Marathon, Apache Spark, Open MPI, ROOT...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 4/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Why Kubernetes and Docker

Docker

Official support on ARM available since Aug 18, 2016LightweightAnnounced HA features that are very basic, but complete for enough use cases

Kubernetes (K8s)

Recently support for ARM has been extendedKnown as very reliable (based on Google’s Borg DC Manager)Not that ressource-intensive

What about...?

Mesos: Requires too much resources (Netflix got it working), complex setup

Nomad: Still experimental, in general and on ARM archOpenStack, Pacemaker, Marathon, Apache Spark, Open MPI, ROOT...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 4/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Why Kubernetes and Docker

Docker

Official support on ARM available since Aug 18, 2016LightweightAnnounced HA features that are very basic, but complete for enough use cases

Kubernetes (K8s)

Recently support for ARM has been extendedKnown as very reliable (based on Google’s Borg DC Manager)Not that ressource-intensive

What about...?

Mesos: Requires too much resources (Netflix got it working), complex setupNomad: Still experimental, in general and on ARM arch

OpenStack, Pacemaker, Marathon, Apache Spark, Open MPI, ROOT...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 4/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Why Kubernetes and Docker

Docker

Official support on ARM available since Aug 18, 2016LightweightAnnounced HA features that are very basic, but complete for enough use cases

Kubernetes (K8s)

Recently support for ARM has been extendedKnown as very reliable (based on Google’s Borg DC Manager)Not that ressource-intensive

What about...?

Mesos: Requires too much resources (Netflix got it working), complex setupNomad: Still experimental, in general and on ARM archOpenStack, Pacemaker, Marathon, Apache Spark, Open MPI, ROOT...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 4/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Related Work

In 2012: first public project about cloud computing with Raspberry Pis (the firstmodel) has been started by researchers at the University of Glasgow

LXC was state of the art, everything non-container virtualization tooresource-hungry

Largest project: Bolzano University with 300 RPis

In 2015: Turning point: Lucas Kaldstrom and University of Glasgow started atsame time porting Kubernetes to ARM - independently.

Lucas implemented to most features and recently became Kubernetes maintainer.

In June 2016: Kaspar Nissen and Martin Jensen from Ahrhus University were firstto run comprehensive load and high availability tests with Kubernetes on RaspberryPis. Most versatile investigation about Cloud Computing at small scale.

This work’s contribution: Extend tests of Nissen/Jensen and compare K8sagainst Docker Swarm.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 5/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Related Work

In 2012: first public project about cloud computing with Raspberry Pis (the firstmodel) has been started by researchers at the University of Glasgow

LXC was state of the art, everything non-container virtualization tooresource-hungry

Largest project: Bolzano University with 300 RPis

In 2015: Turning point: Lucas Kaldstrom and University of Glasgow started atsame time porting Kubernetes to ARM - independently.

Lucas implemented to most features and recently became Kubernetes maintainer.

In June 2016: Kaspar Nissen and Martin Jensen from Ahrhus University were firstto run comprehensive load and high availability tests with Kubernetes on RaspberryPis. Most versatile investigation about Cloud Computing at small scale.

This work’s contribution: Extend tests of Nissen/Jensen and compare K8sagainst Docker Swarm.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 5/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Related Work

In 2012: first public project about cloud computing with Raspberry Pis (the firstmodel) has been started by researchers at the University of Glasgow

LXC was state of the art, everything non-container virtualization tooresource-hungry

Largest project: Bolzano University with 300 RPis

In 2015: Turning point: Lucas Kaldstrom and University of Glasgow started atsame time porting Kubernetes to ARM - independently.

Lucas implemented to most features and recently became Kubernetes maintainer.

In June 2016: Kaspar Nissen and Martin Jensen from Ahrhus University were firstto run comprehensive load and high availability tests with Kubernetes on RaspberryPis. Most versatile investigation about Cloud Computing at small scale.

This work’s contribution: Extend tests of Nissen/Jensen and compare K8sagainst Docker Swarm.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 5/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Related Work

In 2012: first public project about cloud computing with Raspberry Pis (the firstmodel) has been started by researchers at the University of Glasgow

LXC was state of the art, everything non-container virtualization tooresource-hungry

Largest project: Bolzano University with 300 RPis

In 2015: Turning point: Lucas Kaldstrom and University of Glasgow started atsame time porting Kubernetes to ARM - independently.

Lucas implemented to most features and recently became Kubernetes maintainer.

In June 2016: Kaspar Nissen and Martin Jensen from Ahrhus University were firstto run comprehensive load and high availability tests with Kubernetes on RaspberryPis. Most versatile investigation about Cloud Computing at small scale.

This work’s contribution: Extend tests of Nissen/Jensen and compare K8sagainst Docker Swarm.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 5/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Related Work

In 2012: first public project about cloud computing with Raspberry Pis (the firstmodel) has been started by researchers at the University of Glasgow

LXC was state of the art, everything non-container virtualization tooresource-hungry

Largest project: Bolzano University with 300 RPis

In 2015: Turning point: Lucas Kaldstrom and University of Glasgow started atsame time porting Kubernetes to ARM - independently.

Lucas implemented to most features and recently became Kubernetes maintainer.

In June 2016: Kaspar Nissen and Martin Jensen from Ahrhus University were firstto run comprehensive load and high availability tests with Kubernetes on RaspberryPis. Most versatile investigation about Cloud Computing at small scale.

This work’s contribution: Extend tests of Nissen/Jensen and compare K8sagainst Docker Swarm.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 5/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Related Work

In 2012: first public project about cloud computing with Raspberry Pis (the firstmodel) has been started by researchers at the University of Glasgow

LXC was state of the art, everything non-container virtualization tooresource-hungry

Largest project: Bolzano University with 300 RPis

In 2015: Turning point: Lucas Kaldstrom and University of Glasgow started atsame time porting Kubernetes to ARM - independently.

Lucas implemented to most features and recently became Kubernetes maintainer.

In June 2016: Kaspar Nissen and Martin Jensen from Ahrhus University were firstto run comprehensive load and high availability tests with Kubernetes on RaspberryPis. Most versatile investigation about Cloud Computing at small scale.

This work’s contribution: Extend tests of Nissen/Jensen and compare K8sagainst Docker Swarm.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 5/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Related Work

In 2012: first public project about cloud computing with Raspberry Pis (the firstmodel) has been started by researchers at the University of Glasgow

LXC was state of the art, everything non-container virtualization tooresource-hungry

Largest project: Bolzano University with 300 RPis

In 2015: Turning point: Lucas Kaldstrom and University of Glasgow started atsame time porting Kubernetes to ARM - independently.

Lucas implemented to most features and recently became Kubernetes maintainer.

In June 2016: Kaspar Nissen and Martin Jensen from Ahrhus University were firstto run comprehensive load and high availability tests with Kubernetes on RaspberryPis. Most versatile investigation about Cloud Computing at small scale.

This work’s contribution: Extend tests of Nissen/Jensen and compare K8sagainst Docker Swarm.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 5/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Related Work

In 2012: first public project about cloud computing with Raspberry Pis (the firstmodel) has been started by researchers at the University of Glasgow

LXC was state of the art, everything non-container virtualization tooresource-hungry

Largest project: Bolzano University with 300 RPis

In 2015: Turning point: Lucas Kaldstrom and University of Glasgow started atsame time porting Kubernetes to ARM - independently.

Lucas implemented to most features and recently became Kubernetes maintainer.

In June 2016: Kaspar Nissen and Martin Jensen from Ahrhus University were firstto run comprehensive load and high availability tests with Kubernetes on RaspberryPis. Most versatile investigation about Cloud Computing at small scale.

This work’s contribution: Extend tests of Nissen/Jensen and compare K8sagainst Docker Swarm.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 5/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Hardware Setup with PicoCluster

Figure 1: Pico Cluster 5xRPi 3, https://www.picocluster.com

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 6/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

Hardware

All SD cards of same typeCheck network switchIsolate network...

Software

Which OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...Update SoftwareMonitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTPSSH listen on two interfacesSetup SwapspaceAutomate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same type

Check network switchIsolate network...

Software

Which OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...Update SoftwareMonitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTPSSH listen on two interfacesSetup SwapspaceAutomate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same typeCheck network switch

Isolate network...

Software

Which OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...Update SoftwareMonitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTPSSH listen on two interfacesSetup SwapspaceAutomate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same typeCheck network switchIsolate network

...

Software

Which OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...Update SoftwareMonitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTPSSH listen on two interfacesSetup SwapspaceAutomate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same typeCheck network switchIsolate network...

Software

Which OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...Update SoftwareMonitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTPSSH listen on two interfacesSetup SwapspaceAutomate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same typeCheck network switchIsolate network...

SoftwareWhich OS? Raspbian vs. HypriotOS vs. ArchLinux

Flashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...Update SoftwareMonitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTPSSH listen on two interfacesSetup SwapspaceAutomate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same typeCheck network switchIsolate network...

SoftwareWhich OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...

Network: 2 interfaces per device, check DHCPs ...Update SoftwareMonitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTPSSH listen on two interfacesSetup SwapspaceAutomate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same typeCheck network switchIsolate network...

SoftwareWhich OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...

Update SoftwareMonitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTPSSH listen on two interfacesSetup SwapspaceAutomate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same typeCheck network switchIsolate network...

SoftwareWhich OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...Update Software

Monitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTPSSH listen on two interfacesSetup SwapspaceAutomate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same typeCheck network switchIsolate network...

SoftwareWhich OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...Update SoftwareMonitoring system that supports all required capabilities

Configure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTPSSH listen on two interfacesSetup SwapspaceAutomate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same typeCheck network switchIsolate network...

SoftwareWhich OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...Update SoftwareMonitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)

Setup NTPSSH listen on two interfacesSetup SwapspaceAutomate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same typeCheck network switchIsolate network...

SoftwareWhich OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...Update SoftwareMonitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTP

SSH listen on two interfacesSetup SwapspaceAutomate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same typeCheck network switchIsolate network...

SoftwareWhich OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...Update SoftwareMonitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTPSSH listen on two interfaces

Setup SwapspaceAutomate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same typeCheck network switchIsolate network...

SoftwareWhich OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...Update SoftwareMonitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTPSSH listen on two interfacesSetup Swapspace

Automate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same typeCheck network switchIsolate network...

SoftwareWhich OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...Update SoftwareMonitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTPSSH listen on two interfacesSetup SwapspaceAutomate, automate, automate!

...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Setup aspects

Goal: Meet all requirements for good experiments.

HardwareAll SD cards of same typeCheck network switchIsolate network...

SoftwareWhich OS? Raspbian vs. HypriotOS vs. ArchLinuxFlashing (I stopped counting), device-init...Network: 2 interfaces per device, check DHCPs ...Update SoftwareMonitoring system that supports all required capabilitiesConfigure Desktop machine: No network interference, appropriate software tomanage the cluster (terminator)Setup NTPSSH listen on two interfacesSetup SwapspaceAutomate, automate, automate!...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 7/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Software Setup: Docker

Easy since included in HypriotOS.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 8/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Software Setup: Kubernetes

Using project: ”Kubernetes-on-arm” by Lucas Kaldstrom

Bleeding edge: Setup non-deterministic and unreliable. Many trials, experimentsand bug shooting.

Installed Kubernetes via automated interactive call:/bin/echo -e " rpi-3\nhypriotos\nnode-green\nEurope\/Berlin\n

\n\ny\nY" | sudo kube-config install

Recently, setup became as easy as with Docker.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 9/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Software Setup: Kubernetes

Using project: ”Kubernetes-on-arm” by Lucas Kaldstrom

Bleeding edge: Setup non-deterministic and unreliable. Many trials, experimentsand bug shooting.

Installed Kubernetes via automated interactive call:/bin/echo -e " rpi-3\nhypriotos\nnode-green\nEurope\/Berlin\n

\n\ny\nY" | sudo kube-config install

Recently, setup became as easy as with Docker.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 9/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Software Setup: Kubernetes

Using project: ”Kubernetes-on-arm” by Lucas Kaldstrom

Bleeding edge: Setup non-deterministic and unreliable. Many trials, experimentsand bug shooting.

Installed Kubernetes via automated interactive call:/bin/echo -e " rpi-3\nhypriotos\nnode-green\nEurope\/Berlin\n

\n\ny\nY" | sudo kube-config install

Recently, setup became as easy as with Docker.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 9/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Software Setup: Kubernetes

Using project: ”Kubernetes-on-arm” by Lucas Kaldstrom

Bleeding edge: Setup non-deterministic and unreliable. Many trials, experimentsand bug shooting.

Installed Kubernetes via automated interactive call:/bin/echo -e " rpi-3\nhypriotos\nnode-green\nEurope\/Berlin\n

\n\ny\nY" | sudo kube-config install

Recently, setup became as easy as with Docker.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 9/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Software stack for experiments

Kubernetes Stack Docker Swarm Stack

rpicloud/greeting-rpi rpicloud/greeting-rpiK8s@ARM

Docker DockerHypriotOS HypriotOS

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 10/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Testing Scenarios

Resource Usage

Load Test

Resilience Test

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 11/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Testing Scenarios

Resource Usage

Load Test

Resilience Test

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 11/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Testing Scenarios

Resource Usage

Load Test

Resilience Test

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 11/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Results – Resource Usage

Table 1: First results of resource consumption measurements

Sc. CPU usage, % Mem usage, % Proc CPU D., % Proc mem D., MB1 0.44 4.21 0.05 2.472 1.43 / 0.83 7.87 / 7.4 1.1 / 0.44 57.45 / 2.423 14.74 / 2.01 34.21 / 12.68 5.76 / 1.31 479.51 / 160.77

Legend:Scenario 1: Fresh install, monit and Docker daemon runningScenario 2: After docker initScenario 3: After starting K8s

Also, in Scenario 3, Docker created 41 process children. In Scenario 1 & 2, Docker has 1.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 12/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

And then the Big Bang...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 13/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Results – HA

Kernel panics and systemd services/daemons crashed. Often reconfiguration andreboots required.

Mesh routing: Produce timeouts in both K8s & Docker.

Bugsnag: ”The intelligent routing was very spotty, sometimes hanging during arequest, and sometimes not even accepting inbound connections at all.”1

→ Both tools were basically not working to the minimum extent.

1http://blog.bugsnag.com/container-orchestration-with-docker-swarm-modeHigh Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 14/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Results – HA

Kernel panics and systemd services/daemons crashed. Often reconfiguration andreboots required.

Mesh routing: Produce timeouts in both K8s & Docker.

Bugsnag: ”The intelligent routing was very spotty, sometimes hanging during arequest, and sometimes not even accepting inbound connections at all.”1

→ Both tools were basically not working to the minimum extent.

1http://blog.bugsnag.com/container-orchestration-with-docker-swarm-modeHigh Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 14/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Results – HA

Kernel panics and systemd services/daemons crashed. Often reconfiguration andreboots required.

Mesh routing: Produce timeouts in both K8s & Docker.

Bugsnag: ”The intelligent routing was very spotty, sometimes hanging during arequest, and sometimes not even accepting inbound connections at all.”1

→ Both tools were basically not working to the minimum extent.

1http://blog.bugsnag.com/container-orchestration-with-docker-swarm-modeHigh Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 14/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Results – HA

Kernel panics and systemd services/daemons crashed. Often reconfiguration andreboots required.

Mesh routing: Produce timeouts in both K8s & Docker.

Bugsnag: ”The intelligent routing was very spotty, sometimes hanging during arequest, and sometimes not even accepting inbound connections at all.”1

→ Both tools were basically not working to the minimum extent.

1http://blog.bugsnag.com/container-orchestration-with-docker-swarm-modeHigh Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 14/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Results – HA

Kernel panics and systemd services/daemons crashed. Often reconfiguration andreboots required.

Mesh routing: Produce timeouts in both K8s & Docker.

Bugsnag: ”The intelligent routing was very spotty, sometimes hanging during arequest, and sometimes not even accepting inbound connections at all.”1

→ Both tools were basically not working to the minimum extent.

1http://blog.bugsnag.com/container-orchestration-with-docker-swarm-modeHigh Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 14/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Results – HA

Kernel panics and systemd services/daemons crashed. Often reconfiguration andreboots required.

Mesh routing: Produce timeouts in both K8s & Docker.

Bugsnag: ”The intelligent routing was very spotty, sometimes hanging during arequest, and sometimes not even accepting inbound connections at all.”1

→ Both tools were basically not working to the minimum extent.

1http://blog.bugsnag.com/container-orchestration-with-docker-swarm-modeHigh Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 14/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Network Issues

Figure 2: Timeout of curl command against the cluster

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 15/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Network Issues

Figure 3: Incoming network traffic

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 16/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Network Issues

Figure 4: Incoming network traffic

Figure 5: Incoming network traffic

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 17/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Network Issues

Figure 6: One of the resolved routing issues for Docker 1.12.2

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 18/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Plan B...

Throw most of the effort away

and figure out a Plan B...

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 19/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Final Software stack of experiments

Kubernetes Stack Docker Swarm Stack(Nissen/Jensen)

rpicloud/greeting-rpi rpicloud/greeting-rpiK8s v1.2 + K8s@ARM v0.7

Docker v1.11.x Docker v1.12.3ArchLinux ARM latest HypriotOS v1.1.0

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 20/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Results - Load Test

Figure 7: Breakpoints of load test with Kubernetes

Test has performed with 10.000 req at eatch step. Stepsize=100

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 21/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Results - Load Test

Figure 8: Breakpoints of load test with Docker Swarm Mode

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 22/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Results – Load Test

Table 2: Breakpoints of Kubernetes and Docker Swarm Mode

Replica Count Kubernetes Docker Swarm Mode1 ca. 900 reqests/seconds ca. 600 reqests/seconds5 ca. 1400 reqests/seconds ca. 900 reqests/seconds10 ca. 1500 reqests/seconds ca. 900 reqests/seconds

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 23/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Results - Resilience Test

Figure 9: Successful requests onto the Kubernetes cluster with 1 replica

Kubernetes: Total outage of 47 secondsDocker Swarm Mode: Total outage of 72 seconds (+53%)

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 24/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Results - Resilience Test

Figure 10: Successful requests onto the cluster with 2 replica

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 25/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Results – Resilience Test

Table 3: Success rates of Kubernetes and Docker Swarm Mode

Replica Count Kubernetes Docker Swarm Mode1 74.65% 61.74%2 99.87% 99.85%5 99.98% 99.93%

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 26/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Live Demo:”Let’s crash the cluster!”

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 27/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Outlook

Add and test high available storage (GlusterFS, Ceph, HDFS) and extendapplications to a microservices level

Use single board computers with higher network I/O...Paper of this work will soon be released.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 28/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Outlook

Add and test high available storage (GlusterFS, Ceph, HDFS) and extendapplications to a microservices levelUse single board computers with higher network I/O...

Paper of this work will soon be released.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 28/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Outlook

Add and test high available storage (GlusterFS, Ceph, HDFS) and extendapplications to a microservices levelUse single board computers with higher network I/O...Paper of this work will soon be released.

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 28/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Lessons Learned

Don’t trust! Measure!

Don’t trust! Measure!

Don’t trust! Measure!

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 29/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Lessons Learned

Don’t trust! Measure!

Don’t trust! Measure!

Don’t trust! Measure!

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 29/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Lessons Learned

Don’t trust! Measure!

Don’t trust! Measure!

Don’t trust! Measure!

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 29/30

Motivation

Why Kubernetes andDocker?

Related Work

Test Setup

Testing Scenarios

Results

Live Demo

Outlook

Lessons Learned

Questions ?

@MathiasRennerwww.Hypriot.com

High Availability Performance of Kubernetes and Docker Swarm on a Raspberry Pi Cluster | @MathiasRenner | KTR 30/30