SlideShare a Scribd company logo
Getting serious with private kubernetes clusters &
cloud-native storage
David Steiman
Berlin | November 20 - 21, 2018
About Me
➢ Name: David Steiman aka. xetys
➢ Owner of github.com/xetys/hetzner-kube
➢ Twitter: @theOnlyScrippi
➢ GitHub: github.com/xetys
➢ Blog: stytex.de
➢ Working @ K-TEL Communications
➢ JHipster core developer
Private cluster = ?
➢ Bare-metal
➢ Virtual instances on own infrastructure
➢ Custom cloud provider
➢ Raspberry PI?
Motivation
Motivation
1. Custom machine providers
2. Own “cloud”
a. IaaS (Block/Object Storage, TLS Certs, VMs, networks)
b. FaaS (OpenFaaS, Kubeless, …)
c. PaaS (fabric8, deis, …)
d. CI/CD (jx, drone, Gitlab)
3. Cost-reduction
a. 82 cores, 328GB RAM, 4TB of resilient storage => ~500 EUR
b. Similar setup at AWS ~12k EUR
4. No GAWA?
Three base stands of private clusters
Compute
Network Storage
Kubernetes
deployment
strategies
...the hard way?
CoreOS
➢ Pure container philosophy
➢ PXE boot provisioning clusters
with matchbox
➢ Enterprise support with
Tectonic
➢ Good for large clusters with
thousands of nodes
Ansible powered and driven
Kismatic Enterprise Toolkit
➢ Powered by an ansible playbook,
extended with go
➢ No “real” HA support
➢ Persistent storage with GlusterFS
out-of-the-box
Kube-spray
➢ Full ansible based
➢ Large feature base
○ HA support
○ Self-hosted
○ Many Linux distros
➢ kubernetes-incubator project
Rancher 1.x & Rancher 2.0
Rancher 1.x
➢ Focussed on Cattle
➢ k8s as catalog app
➢ Most easy install
➢ Least correct install
➢ User Support!
Rancher 2.0 / RKE
➢ Focussed on k8s
➢ Real HA mode
➢ Yet, quite simple install
➢ User support
➢ Early and little UI
kubeadm
➢ In-tree component of k8s
➢ Quite simple install
➢ Ready to production
➢ Simplifies ugly parts
David Steiman - Getting serious with private kubernetes clusters & cloud native storage - Codemotion Berlin 2018
hetzner-kube
➢ Go tool for deploying k8s on hetzner cloud
➢ Uses kubeadm under the hood
➢ Ships default with flannel
➢ Bundles addons like helm, ingress, cert-manager,
kube-prometheus, OpenEBS, rook
➢ E2e tested
hetzner-kube High Availability
➢ External etcd cluster
➢ Decentralized apiserver proxy using nginx
➢ Tested with evil tools like comcast
○ and Falkenstein DC outtake
David Steiman - Getting serious with private kubernetes clusters & cloud native storage - Codemotion Berlin 2018
Network & Load Balancing
type: LoadBalancer?
➢ Most commonly not available to private clusters
➢ Exception: Rancher 1.X with cloud-provider Rancher
➢ Should be realized using --cloud-provider=<custom>
➢ MetalLB
nginx ingress controller on edge
nodes
➢ Label nodes as edge routers
➢ Deploy
nginx-ingress-controller with
nodeSelector
➢ Multiple A-Records per
domain
Node networking
➢ Encrypted private network VPN
tool “Wireguard”
➢ https://github.com/xetys/wgctl
○ Operate wireguard networks
Pod Networking
➢ Simple setup: flannel, weave
➢ Simple + Pod Network policies: canal
➢ Integrate with existing network infrastructure: calico
➢ Alternative approaches: kube-router
David Steiman - Getting serious with private kubernetes clusters & cloud native storage - Codemotion Berlin 2018
Persistence
Needs
➢ Storage Class support
➢ High Availability & Fault resistance
➢ High Performance in Throughput & IOPS
➢ RWO + RWX
➢ Backup tools
Kubernetes driven solutions
➢ OpenEBS
○ Uses containers for every storage
○ Uses iSCSI
➢ Rook
○ Leverages ceph as backing storage cluster
○ Simplifies ceph operation via CRD
➢ GlusterFS
○ Supports RWX ootb
○ Supports Storage Class with heketi
Dedicated Ceph cluster
➢ Manageable in operation
➢ One ceph for several clusters
➢ Storage Class Support with RWX, and object storage from
kubernetes-incubator/external-storage
David Steiman - Getting serious with private kubernetes clusters & cloud native storage - Codemotion Berlin 2018
Demo Time
Thanks! Questions?

More Related Content

PDF
Getting serious \w private kubernetes clusters &amp; cloud native storage
PDF
Open stack cinder
PPTX
Minio ♥ Go
PDF
CoreOS @Codetalks Hamburg
PPTX
Minio Cloud Storage
PDF
Docker Meetup: Docker Networking 1.11, by Madhu Venugopal
PDF
Introduction to Docker & CoreOS - Symfony User Group Cologne
 
PDF
Docker Networking – Running multi-host applications
Getting serious \w private kubernetes clusters &amp; cloud native storage
Open stack cinder
Minio ♥ Go
CoreOS @Codetalks Hamburg
Minio Cloud Storage
Docker Meetup: Docker Networking 1.11, by Madhu Venugopal
Introduction to Docker & CoreOS - Symfony User Group Cologne
 
Docker Networking – Running multi-host applications

What's hot (20)

PDF
CoreOS introduction - Johann Romefort
PPTX
QNAP COSCUP Container Station
PDF
Endocode Kubernetes Meetup: Architecture Patterns for Microservices in Kubern...
PDF
Nix for Python developers
PDF
Openstack HA
PPTX
迎接嶄新的Windows容器叢集架構:Kubernetes
PDF
Running Docker with OpenStack | Docker workshop #1
PDF
You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...
PPTX
Docker techzone
PDF
Unikernels: the rise of the library hypervisor in MirageOS
PDF
Stateful Containers: Flocker on CoreOS
PPT
Kubernetes on CloudStack with coreOS
PPTX
Building a Docker v1.12 Swarm cluster on ARM
PDF
Networking in docker
PDF
Secure your K8s cluster from multi-layers
PDF
Breaking the RpiDocker challenge
PDF
Understand the iptables step by step
PPTX
OSv: probably the best OS for cloud workloads you've never hear of
PDF
Docker orchestration using core os and ansible - Ansible IL 2015
PDF
London Ceph Day: Unified Cloud Storage with Synnefo + Ceph + Ganeti
CoreOS introduction - Johann Romefort
QNAP COSCUP Container Station
Endocode Kubernetes Meetup: Architecture Patterns for Microservices in Kubern...
Nix for Python developers
Openstack HA
迎接嶄新的Windows容器叢集架構:Kubernetes
Running Docker with OpenStack | Docker workshop #1
You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...
Docker techzone
Unikernels: the rise of the library hypervisor in MirageOS
Stateful Containers: Flocker on CoreOS
Kubernetes on CloudStack with coreOS
Building a Docker v1.12 Swarm cluster on ARM
Networking in docker
Secure your K8s cluster from multi-layers
Breaking the RpiDocker challenge
Understand the iptables step by step
OSv: probably the best OS for cloud workloads you've never hear of
Docker orchestration using core os and ansible - Ansible IL 2015
London Ceph Day: Unified Cloud Storage with Synnefo + Ceph + Ganeti
Ad

Similar to David Steiman - Getting serious with private kubernetes clusters & cloud native storage - Codemotion Berlin 2018 (20)

PDF
Kubernetes
PDF
Docker Insight
PDF
CERN OpenStack Cloud Control Plane - From VMs to K8s
PDF
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
PPT
MyCloud for $100k
PDF
Microsoft Docker Meetup - Tutum Spring 2015
PPTX
Docker Ecosystem on Azure
PDF
Project kuryr returns: Docker delivered, Kubernetes Next
PPTX
Best Practices for Running Kafka on Docker Containers
PDF
Dockerffm meetup 20150113_networking
PDF
Kubernetes - Starting with 1.2
PDF
Zombies in Kubernetes
PPTX
Docker 1.9 release party - Docker Ha Noi
PDF
Docker Security: Are Your Containers Tightly Secured to the Ship?
PPTX
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
PPTX
kata-containers-onboarding-deck.pptx
PDF
Tokyo OpenStack Summit 2015: Unraveling Docker Security
PDF
Unraveling Docker Security: Lessons From a Production Cloud
PPTX
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
PDF
Kubernetes: training micro-dragons for a serious battle
Kubernetes
Docker Insight
CERN OpenStack Cloud Control Plane - From VMs to K8s
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
MyCloud for $100k
Microsoft Docker Meetup - Tutum Spring 2015
Docker Ecosystem on Azure
Project kuryr returns: Docker delivered, Kubernetes Next
Best Practices for Running Kafka on Docker Containers
Dockerffm meetup 20150113_networking
Kubernetes - Starting with 1.2
Zombies in Kubernetes
Docker 1.9 release party - Docker Ha Noi
Docker Security: Are Your Containers Tightly Secured to the Ship?
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
kata-containers-onboarding-deck.pptx
Tokyo OpenStack Summit 2015: Unraveling Docker Security
Unraveling Docker Security: Lessons From a Production Cloud
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Kubernetes: training micro-dragons for a serious battle
Ad

More from Codemotion (20)

PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
PDF
Pompili - From hero to_zero: The FatalNoise neverending story
PPTX
Pastore - Commodore 65 - La storia
PPTX
Pennisi - Essere Richard Altwasser
PPTX
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
PPTX
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
PPTX
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
PPTX
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
PDF
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
PDF
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
PDF
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
PDF
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
PDF
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
PPTX
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
PPTX
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
PDF
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
PDF
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
PDF
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Pompili - From hero to_zero: The FatalNoise neverending story
Pastore - Commodore 65 - La storia
Pennisi - Essere Richard Altwasser
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019

Recently uploaded (20)

PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
Tartificialntelligence_presentation.pptx
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
project resource management chapter-09.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
A Presentation on Touch Screen Technology
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
Encapsulation theory and applications.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
TLE Review Electricity (Electricity).pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
Approach and Philosophy of On baking technology
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Tartificialntelligence_presentation.pptx
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
project resource management chapter-09.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Programs and apps: productivity, graphics, security and other tools
A Presentation on Touch Screen Technology
Digital-Transformation-Roadmap-for-Companies.pptx
A novel scalable deep ensemble learning framework for big data classification...
Encapsulation theory and applications.pdf
A comparative analysis of optical character recognition models for extracting...
Building Integrated photovoltaic BIPV_UPV.pdf
TLE Review Electricity (Electricity).pptx
MIND Revenue Release Quarter 2 2025 Press Release
NewMind AI Weekly Chronicles - August'25-Week II
A comparative study of natural language inference in Swahili using monolingua...
Encapsulation_ Review paper, used for researhc scholars
Hindi spoken digit analysis for native and non-native speakers
Approach and Philosophy of On baking technology
gpt5_lecture_notes_comprehensive_20250812015547.pdf

David Steiman - Getting serious with private kubernetes clusters & cloud native storage - Codemotion Berlin 2018

  • 1. Getting serious with private kubernetes clusters & cloud-native storage David Steiman Berlin | November 20 - 21, 2018
  • 2. About Me ➢ Name: David Steiman aka. xetys ➢ Owner of github.com/xetys/hetzner-kube ➢ Twitter: @theOnlyScrippi ➢ GitHub: github.com/xetys ➢ Blog: stytex.de ➢ Working @ K-TEL Communications ➢ JHipster core developer
  • 3. Private cluster = ? ➢ Bare-metal ➢ Virtual instances on own infrastructure ➢ Custom cloud provider ➢ Raspberry PI?
  • 5. Motivation 1. Custom machine providers 2. Own “cloud” a. IaaS (Block/Object Storage, TLS Certs, VMs, networks) b. FaaS (OpenFaaS, Kubeless, …) c. PaaS (fabric8, deis, …) d. CI/CD (jx, drone, Gitlab) 3. Cost-reduction a. 82 cores, 328GB RAM, 4TB of resilient storage => ~500 EUR b. Similar setup at AWS ~12k EUR 4. No GAWA?
  • 6. Three base stands of private clusters Compute Network Storage
  • 8. CoreOS ➢ Pure container philosophy ➢ PXE boot provisioning clusters with matchbox ➢ Enterprise support with Tectonic ➢ Good for large clusters with thousands of nodes
  • 9. Ansible powered and driven Kismatic Enterprise Toolkit ➢ Powered by an ansible playbook, extended with go ➢ No “real” HA support ➢ Persistent storage with GlusterFS out-of-the-box Kube-spray ➢ Full ansible based ➢ Large feature base ○ HA support ○ Self-hosted ○ Many Linux distros ➢ kubernetes-incubator project
  • 10. Rancher 1.x & Rancher 2.0 Rancher 1.x ➢ Focussed on Cattle ➢ k8s as catalog app ➢ Most easy install ➢ Least correct install ➢ User Support! Rancher 2.0 / RKE ➢ Focussed on k8s ➢ Real HA mode ➢ Yet, quite simple install ➢ User support ➢ Early and little UI
  • 11. kubeadm ➢ In-tree component of k8s ➢ Quite simple install ➢ Ready to production ➢ Simplifies ugly parts
  • 13. hetzner-kube ➢ Go tool for deploying k8s on hetzner cloud ➢ Uses kubeadm under the hood ➢ Ships default with flannel ➢ Bundles addons like helm, ingress, cert-manager, kube-prometheus, OpenEBS, rook ➢ E2e tested
  • 14. hetzner-kube High Availability ➢ External etcd cluster ➢ Decentralized apiserver proxy using nginx ➢ Tested with evil tools like comcast ○ and Falkenstein DC outtake
  • 16. Network & Load Balancing
  • 17. type: LoadBalancer? ➢ Most commonly not available to private clusters ➢ Exception: Rancher 1.X with cloud-provider Rancher ➢ Should be realized using --cloud-provider=<custom> ➢ MetalLB
  • 18. nginx ingress controller on edge nodes ➢ Label nodes as edge routers ➢ Deploy nginx-ingress-controller with nodeSelector ➢ Multiple A-Records per domain
  • 19. Node networking ➢ Encrypted private network VPN tool “Wireguard” ➢ https://github.com/xetys/wgctl ○ Operate wireguard networks
  • 20. Pod Networking ➢ Simple setup: flannel, weave ➢ Simple + Pod Network policies: canal ➢ Integrate with existing network infrastructure: calico ➢ Alternative approaches: kube-router
  • 23. Needs ➢ Storage Class support ➢ High Availability & Fault resistance ➢ High Performance in Throughput & IOPS ➢ RWO + RWX ➢ Backup tools
  • 24. Kubernetes driven solutions ➢ OpenEBS ○ Uses containers for every storage ○ Uses iSCSI ➢ Rook ○ Leverages ceph as backing storage cluster ○ Simplifies ceph operation via CRD ➢ GlusterFS ○ Supports RWX ootb ○ Supports Storage Class with heketi
  • 25. Dedicated Ceph cluster ➢ Manageable in operation ➢ One ceph for several clusters ➢ Storage Class Support with RWX, and object storage from kubernetes-incubator/external-storage