SlideShare a Scribd company logo
Kubernetes
How to orchestrate Containers
Johannes Maximilian Scheuermann
Karlsruhe, 19.03.2015
Images: http://upload.wikimedia.org/wikipedia/en/thumb/9/9f/Twitter_bird_logo_2012.svg/1267px-
Twitter_bird_logo_2012.svg.png , https://developers.google.com/+/branding-guidelines?hl=de
About me
● Computer Science Student - Master @KIT
● Working at inovex GmbH
○ IT Engineering & Operations
○ Docker & Kubernetes
○ New Datacenter Technologies
● IRC @johscheuer
A brief introduction
@johscheuer +JohannesScheuermann
image: http://xkcd.com/908
Orchestration
● Who use Docker?
● Who use Docker productiv?
● Who use Docker (productiv) on more than one machine?
● How do you orchestrate/scale you Containers?
Some Questions
Image: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/logo.png
Kubernetes
● Greek for pilot or helmsman of a ship
● Open Source cluster manager from Google
● Managing containerized applications across a cluster of nodes
● Kubernetes is:
○ lean
○ portable
○ extensible
○ self-healing
● Has Master and Node (Minion) components
● Easy Service deployments, updates and scalability
● Can run basically on every Linux platform
Managing Containers
Kubernetes
How it looks
Bare Metal/VM
Node
Proxy
Kubelet
Bare Metal/VM
Master
API Server
Controller
manager
Scheduler
● Kubernetes has 5 components
○ 3 master components
○ 2 node components
● Master and node can run on the same host
Kubernetes
● Can be physical or a VM
● Has the services which are necessary to run Pods and to be managed by the
master
○ Includes Docker, kubelet and a network proxy
● Node status describes current status
○ HostIP, Node Phase, Node Condition
● Node is created by cloud providers or from physical or virtual machines
○ Kubernetes only creates a representation
○ After creation it will check whether the node is valid or not
● Node Controller manages Node objects
○ cluster-wide synchronization (create/delete representation)
○ single node life-cycle managment
○ unable to provision nodes
Node (before known as Minion)
Kubernetes
● Clusters, the compute recources on top of which the containers are built.
Kubernetes can run on every Linux-Distro.
● Pods, a colocated group of (Docker) containers with shared volumes. Is the
smallest deployable unit which can be created, scheduled and managed.
You should use a replication controller to create pods.
● Replication controllers, manages the lifecycle of pods. Ensuring that a
specified number of pods are running at any given time by killing or creating
pods as needed.
● Services, provides a single, stable name and address for a set of pods.
They act as basic load balancers.
● Labels, used to organize and select groups of objects based on key:value
pairs.
Concept
Kubernetes
● Logical group/abstraction
● Ephemeral rather than durable
● Shared network and volumes
● Identified by ID or labels
● Should/Can be managed by replication controllers
● Why not just run multiple programs in a single Docker container?
○ Transparency
○ Decoupling Dependencies
○ Ease of use
○ Efficiency
Pods (as in a pod of whales or pea pod)
Kubernetes
Pods - how it looks like
offers
service(s)
over same
IP
Shared pod storage (survives container crash)
App 1
(Docker) Container
App 2
(Docker) Container
App 3
(Docker) Container
Communication via localhost
Kubernetes
{
"id": "myPod",
"kind": "Pod",
"apiVersion": "v1beta1",
"desiredState": {
"manifest": {
"version": "v1beta1",
"id": "myPod",
"containers": [{
"name": "myPod",
"image": "myPod-Container",
"ports": [{"containerPort": 80}]
}]
}
},
"labels": {
"name": "myPod",
"environment": "production"
}
}
How a pod definition lookslike
Kubernetes
● Should be used to control pods
● Creates pods from a template
● Ensures that the desired number of pods are operational
● The deletion of an replication controller does not affect the created pods
● Rolling updates
● Multiple release tracks possible with the labels
Replication Controllers
Kubernetes
{
"id": "myPodController",
"kind": "ReplicationController",
"apiVersion": "v1beta1",
"desiredState": {
"replicas": 1,
"replicaSelector": {
"name": "myPod",
"environment": "production",
"track": "stable"
},
"podTemplate": {
… #Pod Template from before
}
},
"labels": {
"name": "myPod",
"environment": "production",
"track": "stable"
}
}
How a replication controller definition lookslike
Kubernetes
● Solves the problem that pods are ephemeral
● Service proxy runs on each node
● Offers an IP and port pair
● Adds a set of environment variables
● This imply an ordering requirement
Services
image: http://www.centurylinklabs.com/what-is-kubernetes-and-how-to-use-it
Kubernetes
Services - How it works
Kubernetes
{
"id": "myPod",
"kind": "Service",
"apiVersion": "v1beta1",
"port": 3000,
"containerPort": 80,
"selector": {
"name": "myPod",
"environment": "production"
}
}
How a service definition lookslike
Kubernetes
● Labels are simple key/value pairs
● Can be attached to objects (like pods or nodes)
● Labels do not provide uniqueness
● Via a label selector a client can select a set of objects
● Let you categorize objects e.g. for complex service deployment
● Don’t underestimate them!
Labels (in short)
Kubernetes
● Any Linux Distribution
● Docker
● etcd (distributed key value store)
● Overlay network (flannel)
● If you are running on your private Data Center you need the Kube-register
○ https://github.com/kelseyhightower/kube-register
● There are many getting started guides to start your Kubernetes cluster
○ https://github.
com/GoogleCloudPlatform/kubernetes/tree/master/docs/getting-started-
guides
Requirements
Kubernetes
● Kubernetes supports DNS with skyDNS (with some custom logic)
● Monitoring with Heapster and cAdvisor
● fluentd + elasticsearch
Cluster addons
Kubernetes
● You will need an HTTP-Proxy
○ Hipache/Vulcand
● You will need a Provisioning + Config Managment Tool
○ Foreman
○ Puppet/Salt/…
● You will need an overlay Network
○ Kubernetes assign new (public) IP address to each pod
● You should never use image:latest for a container image
● Kubernetes Master is SPOF
● No autoscaler at the moment
● Pod ordering ordering requirement
○ SkyDNS can help
Some challenges
Maybe soon? https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/design/persistent-storage.md
Kubernetes
Always the question about shared Storage
Kontakt
Johannes Maximilian Scheuermann
johannes.scheuermann@inovex.de
inovex GmbH
Office Karlsruhe
Ludwig-Erhard-Allee 6
76131 Karlsruhe
Thank you for listening!

More Related Content

PDF
Nugwc k8s session-16-march-2021
PPTX
Introduction to Kubernetes
PDF
Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014
PDF
Kubernetes: An Introduction to the Open Source Container Orchestration Platform
PDF
Meteor South Bay Meetup - Kubernetes & Google Container Engine
PDF
Kubernetes in Docker
PDF
DevJam 2019 - Introduction to Kubernetes
PDF
Kubernetes in Docker
Nugwc k8s session-16-march-2021
Introduction to Kubernetes
Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014
Kubernetes: An Introduction to the Open Source Container Orchestration Platform
Meteor South Bay Meetup - Kubernetes & Google Container Engine
Kubernetes in Docker
DevJam 2019 - Introduction to Kubernetes
Kubernetes in Docker

What's hot (20)

PDF
(Draft) Kubernetes - A Comprehensive Overview
PPTX
Introduction to kubernetes
PPTX
Docker and kubernetes_introduction
PDF
Kubernetes-Meetup
PDF
Marc Sluiter - 15 Kubernetes Features in 15 Minutes
PDF
Apache Stratos 4.1.0 Architecture
PPT
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
PDF
Docker Madison, Introduction to Kubernetes
PDF
Introduction of Kubernetes - Trang Nguyen
PPTX
An Introduction to Kubernetes
PDF
Hands-On Introduction to Kubernetes at LISA17
PPTX
Orchestrating Docker Containers with Google Kubernetes on OpenStack
PDF
Revolutionizing WSO2 PaaS with Kubernetes & App Factory
PDF
Introduction to Kubernetes Workshop
PPT
Building Clustered Applications with Kubernetes and Docker
PDF
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
PDF
Platform Orchestration with Kubernetes and Docker
PDF
Kubernetes with docker
PDF
Quick introduction to Kubernetes
PPTX
Kubernetes Immersion
(Draft) Kubernetes - A Comprehensive Overview
Introduction to kubernetes
Docker and kubernetes_introduction
Kubernetes-Meetup
Marc Sluiter - 15 Kubernetes Features in 15 Minutes
Apache Stratos 4.1.0 Architecture
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
Docker Madison, Introduction to Kubernetes
Introduction of Kubernetes - Trang Nguyen
An Introduction to Kubernetes
Hands-On Introduction to Kubernetes at LISA17
Orchestrating Docker Containers with Google Kubernetes on OpenStack
Revolutionizing WSO2 PaaS with Kubernetes & App Factory
Introduction to Kubernetes Workshop
Building Clustered Applications with Kubernetes and Docker
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Platform Orchestration with Kubernetes and Docker
Kubernetes with docker
Quick introduction to Kubernetes
Kubernetes Immersion
Ad

Viewers also liked (19)

PDF
Global Innovation Nights - Spark
DOC
DOCX
Becker
PDF
Open mapi agorum core - vortrag
DOCX
Dirección postal
DOC
7. proyecto pedagógico maruamake
PDF
IL WEB DEL COMUNE report
PDF
Mundep070813
PDF
Capítulo 6 objetivos y estrategias
PDF
Fairline Yacht Club magazine - Yacht Brokerage - September 2011 issue
PDF
Demystifying kubernetes
PDF
Scala Json Features and Performance
PPS
Presentacion proyecto pilas
PPTX
KENYA AIRWAYS 10-YEAR STRATEGY
PDF
PDF
Ejercicios resueltos pascal
PDF
Llibret ampa curs 2014 2015v2web
PDF
Web services y java
Global Innovation Nights - Spark
Becker
Open mapi agorum core - vortrag
Dirección postal
7. proyecto pedagógico maruamake
IL WEB DEL COMUNE report
Mundep070813
Capítulo 6 objetivos y estrategias
Fairline Yacht Club magazine - Yacht Brokerage - September 2011 issue
Demystifying kubernetes
Scala Json Features and Performance
Presentacion proyecto pilas
KENYA AIRWAYS 10-YEAR STRATEGY
Ejercicios resueltos pascal
Llibret ampa curs 2014 2015v2web
Web services y java
Ad

Similar to Kubernetes - how to orchestrate containers (20)

PDF
Intro to Kubernetes
PDF
Kubernetes: https://youtu.be/KnjnQj-FvfQ
PDF
Kubernetes Basics
PPTX
Introduction to Kubernetes
PPTX
Kubernetes Workshop
PDF
Scaling Microservices with Kubernetes
PPTX
Kubernetes-Presentation-Syed-Murtaza-Hassan
PPTX
Kubernetes-introduction to kubernetes for beginers.pptx
PPTX
Introduction to kubernetes
PPTX
Introduction to Kubernetes
PPTX
Kubernetes
PPTX
First steps with kubernetes
PDF
Kubernetes meetup 101
PDF
Kubernetes
PDF
Introduction to kubernetes
PPTX
Kubernetes
PDF
Kubernetes for Java developers
PPTX
Introduction kubernetes 2017_12_24
PDF
DevOps in AWS with Kubernetes
PDF
Scale out, with Kubernetes (k8s)
Intro to Kubernetes
Kubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes Basics
Introduction to Kubernetes
Kubernetes Workshop
Scaling Microservices with Kubernetes
Kubernetes-Presentation-Syed-Murtaza-Hassan
Kubernetes-introduction to kubernetes for beginers.pptx
Introduction to kubernetes
Introduction to Kubernetes
Kubernetes
First steps with kubernetes
Kubernetes meetup 101
Kubernetes
Introduction to kubernetes
Kubernetes
Kubernetes for Java developers
Introduction kubernetes 2017_12_24
DevOps in AWS with Kubernetes
Scale out, with Kubernetes (k8s)

More from inovex GmbH (20)

PDF
lldb – Debugger auf Abwegen
PDF
Are you sure about that?! Uncertainty Quantification in AI
PDF
Why natural language is next step in the AI evolution
PDF
WWDC 2019 Recap
PDF
Network Policies
PDF
Interpretable Machine Learning
PDF
Jenkins X – CI/CD in wolkigen Umgebungen
PDF
AI auf Edge-Geraeten
PDF
Prometheus on Kubernetes
PDF
Deep Learning for Recommender Systems
PDF
Azure IoT Edge
PDF
Representation Learning von Zeitreihen
PDF
Talk to me – Chatbots und digitale Assistenten
PDF
Künstlich intelligent?
PDF
Dev + Ops = Go
PDF
Das Android Open Source Project
PDF
Machine Learning Interpretability
PDF
Performance evaluation of GANs in a semisupervised OCR use case
PDF
People & Products – Lessons learned from the daily IT madness
PDF
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
lldb – Debugger auf Abwegen
Are you sure about that?! Uncertainty Quantification in AI
Why natural language is next step in the AI evolution
WWDC 2019 Recap
Network Policies
Interpretable Machine Learning
Jenkins X – CI/CD in wolkigen Umgebungen
AI auf Edge-Geraeten
Prometheus on Kubernetes
Deep Learning for Recommender Systems
Azure IoT Edge
Representation Learning von Zeitreihen
Talk to me – Chatbots und digitale Assistenten
Künstlich intelligent?
Dev + Ops = Go
Das Android Open Source Project
Machine Learning Interpretability
Performance evaluation of GANs in a semisupervised OCR use case
People & Products – Lessons learned from the daily IT madness
Infrastructure as (real) Code – Manage your K8s resources with Pulumi

Recently uploaded (20)

PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Encapsulation theory and applications.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
cuic standard and advanced reporting.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Electronic commerce courselecture one. Pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Empathic Computing: Creating Shared Understanding
PDF
KodekX | Application Modernization Development
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Review of recent advances in non-invasive hemoglobin estimation
Encapsulation theory and applications.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Spectral efficient network and resource selection model in 5G networks
Encapsulation_ Review paper, used for researhc scholars
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
cuic standard and advanced reporting.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Electronic commerce courselecture one. Pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Empathic Computing: Creating Shared Understanding
KodekX | Application Modernization Development
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
The AUB Centre for AI in Media Proposal.docx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
20250228 LYD VKU AI Blended-Learning.pptx

Kubernetes - how to orchestrate containers

  • 1. Kubernetes How to orchestrate Containers Johannes Maximilian Scheuermann Karlsruhe, 19.03.2015
  • 2. Images: http://upload.wikimedia.org/wikipedia/en/thumb/9/9f/Twitter_bird_logo_2012.svg/1267px- Twitter_bird_logo_2012.svg.png , https://developers.google.com/+/branding-guidelines?hl=de About me ● Computer Science Student - Master @KIT ● Working at inovex GmbH ○ IT Engineering & Operations ○ Docker & Kubernetes ○ New Datacenter Technologies ● IRC @johscheuer A brief introduction @johscheuer +JohannesScheuermann
  • 3. image: http://xkcd.com/908 Orchestration ● Who use Docker? ● Who use Docker productiv? ● Who use Docker (productiv) on more than one machine? ● How do you orchestrate/scale you Containers? Some Questions
  • 4. Image: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/logo.png Kubernetes ● Greek for pilot or helmsman of a ship ● Open Source cluster manager from Google ● Managing containerized applications across a cluster of nodes ● Kubernetes is: ○ lean ○ portable ○ extensible ○ self-healing ● Has Master and Node (Minion) components ● Easy Service deployments, updates and scalability ● Can run basically on every Linux platform Managing Containers
  • 5. Kubernetes How it looks Bare Metal/VM Node Proxy Kubelet Bare Metal/VM Master API Server Controller manager Scheduler ● Kubernetes has 5 components ○ 3 master components ○ 2 node components ● Master and node can run on the same host
  • 6. Kubernetes ● Can be physical or a VM ● Has the services which are necessary to run Pods and to be managed by the master ○ Includes Docker, kubelet and a network proxy ● Node status describes current status ○ HostIP, Node Phase, Node Condition ● Node is created by cloud providers or from physical or virtual machines ○ Kubernetes only creates a representation ○ After creation it will check whether the node is valid or not ● Node Controller manages Node objects ○ cluster-wide synchronization (create/delete representation) ○ single node life-cycle managment ○ unable to provision nodes Node (before known as Minion)
  • 7. Kubernetes ● Clusters, the compute recources on top of which the containers are built. Kubernetes can run on every Linux-Distro. ● Pods, a colocated group of (Docker) containers with shared volumes. Is the smallest deployable unit which can be created, scheduled and managed. You should use a replication controller to create pods. ● Replication controllers, manages the lifecycle of pods. Ensuring that a specified number of pods are running at any given time by killing or creating pods as needed. ● Services, provides a single, stable name and address for a set of pods. They act as basic load balancers. ● Labels, used to organize and select groups of objects based on key:value pairs. Concept
  • 8. Kubernetes ● Logical group/abstraction ● Ephemeral rather than durable ● Shared network and volumes ● Identified by ID or labels ● Should/Can be managed by replication controllers ● Why not just run multiple programs in a single Docker container? ○ Transparency ○ Decoupling Dependencies ○ Ease of use ○ Efficiency Pods (as in a pod of whales or pea pod)
  • 9. Kubernetes Pods - how it looks like offers service(s) over same IP Shared pod storage (survives container crash) App 1 (Docker) Container App 2 (Docker) Container App 3 (Docker) Container Communication via localhost
  • 10. Kubernetes { "id": "myPod", "kind": "Pod", "apiVersion": "v1beta1", "desiredState": { "manifest": { "version": "v1beta1", "id": "myPod", "containers": [{ "name": "myPod", "image": "myPod-Container", "ports": [{"containerPort": 80}] }] } }, "labels": { "name": "myPod", "environment": "production" } } How a pod definition lookslike
  • 11. Kubernetes ● Should be used to control pods ● Creates pods from a template ● Ensures that the desired number of pods are operational ● The deletion of an replication controller does not affect the created pods ● Rolling updates ● Multiple release tracks possible with the labels Replication Controllers
  • 12. Kubernetes { "id": "myPodController", "kind": "ReplicationController", "apiVersion": "v1beta1", "desiredState": { "replicas": 1, "replicaSelector": { "name": "myPod", "environment": "production", "track": "stable" }, "podTemplate": { … #Pod Template from before } }, "labels": { "name": "myPod", "environment": "production", "track": "stable" } } How a replication controller definition lookslike
  • 13. Kubernetes ● Solves the problem that pods are ephemeral ● Service proxy runs on each node ● Offers an IP and port pair ● Adds a set of environment variables ● This imply an ordering requirement Services
  • 15. Kubernetes { "id": "myPod", "kind": "Service", "apiVersion": "v1beta1", "port": 3000, "containerPort": 80, "selector": { "name": "myPod", "environment": "production" } } How a service definition lookslike
  • 16. Kubernetes ● Labels are simple key/value pairs ● Can be attached to objects (like pods or nodes) ● Labels do not provide uniqueness ● Via a label selector a client can select a set of objects ● Let you categorize objects e.g. for complex service deployment ● Don’t underestimate them! Labels (in short)
  • 17. Kubernetes ● Any Linux Distribution ● Docker ● etcd (distributed key value store) ● Overlay network (flannel) ● If you are running on your private Data Center you need the Kube-register ○ https://github.com/kelseyhightower/kube-register ● There are many getting started guides to start your Kubernetes cluster ○ https://github. com/GoogleCloudPlatform/kubernetes/tree/master/docs/getting-started- guides Requirements
  • 18. Kubernetes ● Kubernetes supports DNS with skyDNS (with some custom logic) ● Monitoring with Heapster and cAdvisor ● fluentd + elasticsearch Cluster addons
  • 19. Kubernetes ● You will need an HTTP-Proxy ○ Hipache/Vulcand ● You will need a Provisioning + Config Managment Tool ○ Foreman ○ Puppet/Salt/… ● You will need an overlay Network ○ Kubernetes assign new (public) IP address to each pod ● You should never use image:latest for a container image ● Kubernetes Master is SPOF ● No autoscaler at the moment ● Pod ordering ordering requirement ○ SkyDNS can help Some challenges
  • 21. Kontakt Johannes Maximilian Scheuermann [email protected] inovex GmbH Office Karlsruhe Ludwig-Erhard-Allee 6 76131 Karlsruhe Thank you for listening!