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

What's hot (20)

PDF
(Draft) Kubernetes - A Comprehensive Overview
Bob Killen
 
PPTX
Introduction to kubernetes
Michal Cwienczek
 
PPTX
Docker and kubernetes_introduction
Jason Hu
 
PDF
Kubernetes-Meetup
Vaibhav Kohli
 
PDF
Marc Sluiter - 15 Kubernetes Features in 15 Minutes
Marc Sluiter
 
PDF
Apache Stratos 4.1.0 Architecture
Imesh Gunaratne
 
PPT
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
Neo4j
 
PDF
Docker Madison, Introduction to Kubernetes
Timothy St. Clair
 
PDF
Introduction of Kubernetes - Trang Nguyen
Trang Nguyen
 
PPTX
An Introduction to Kubernetes
Rohman Muhamad
 
PDF
Hands-On Introduction to Kubernetes at LISA17
Ryan Jarvinen
 
PPTX
Orchestrating Docker Containers with Google Kubernetes on OpenStack
Trevor Roberts Jr.
 
PDF
Revolutionizing WSO2 PaaS with Kubernetes & App Factory
Imesh Gunaratne
 
PDF
Introduction to Kubernetes Workshop
Bob Killen
 
PPT
Building Clustered Applications with Kubernetes and Docker
Steve Watt
 
PDF
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Bitnami
 
PDF
Platform Orchestration with Kubernetes and Docker
Julian Strobl
 
PDF
Kubernetes with docker
Docker, Inc.
 
PDF
Quick introduction to Kubernetes
Eduardo Garcia Moyano
 
PPTX
Kubernetes Immersion
Juan Larriba
 
(Draft) Kubernetes - A Comprehensive Overview
Bob Killen
 
Introduction to kubernetes
Michal Cwienczek
 
Docker and kubernetes_introduction
Jason Hu
 
Kubernetes-Meetup
Vaibhav Kohli
 
Marc Sluiter - 15 Kubernetes Features in 15 Minutes
Marc Sluiter
 
Apache Stratos 4.1.0 Architecture
Imesh Gunaratne
 
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
Neo4j
 
Docker Madison, Introduction to Kubernetes
Timothy St. Clair
 
Introduction of Kubernetes - Trang Nguyen
Trang Nguyen
 
An Introduction to Kubernetes
Rohman Muhamad
 
Hands-On Introduction to Kubernetes at LISA17
Ryan Jarvinen
 
Orchestrating Docker Containers with Google Kubernetes on OpenStack
Trevor Roberts Jr.
 
Revolutionizing WSO2 PaaS with Kubernetes & App Factory
Imesh Gunaratne
 
Introduction to Kubernetes Workshop
Bob Killen
 
Building Clustered Applications with Kubernetes and Docker
Steve Watt
 
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Bitnami
 
Platform Orchestration with Kubernetes and Docker
Julian Strobl
 
Kubernetes with docker
Docker, Inc.
 
Quick introduction to Kubernetes
Eduardo Garcia Moyano
 
Kubernetes Immersion
Juan Larriba
 

Viewers also liked (19)

PDF
Global Innovation Nights - Spark
Works Applications
 
DOC
leo15
Leonel Teti
 
DOCX
Becker
Mary Carmen
 
PDF
Open mapi agorum core - vortrag
agorum Software GmbH
 
DOCX
Dirección postal
jims1995
 
DOC
7. proyecto pedagógico maruamake
CEISanJose
 
PDF
IL WEB DEL COMUNE report
Comune Udine
 
PDF
Mundep070813
Jesus Luis Miranda
 
PDF
Capítulo 6 objetivos y estrategias
darkpipa
 
PDF
Fairline Yacht Club magazine - Yacht Brokerage - September 2011 issue
Fairline Yacht Club
 
PDF
Demystifying kubernetes
Works Applications
 
PDF
Scala Json Features and Performance
John Nestor
 
PPS
Presentacion proyecto pilas
projetadan
 
PPTX
KENYA AIRWAYS 10-YEAR STRATEGY
Thiong'o Nick
 
PDF
Catalogo
natalia echeverria
 
PDF
Ejercicios resueltos pascal
Adriana Jimenez
 
PDF
Llibret ampa curs 2014 2015v2web
AMPA Puigberenguer
 
PDF
Web services y java
Oliver Centeno
 
Global Innovation Nights - Spark
Works Applications
 
Becker
Mary Carmen
 
Open mapi agorum core - vortrag
agorum Software GmbH
 
Dirección postal
jims1995
 
7. proyecto pedagógico maruamake
CEISanJose
 
IL WEB DEL COMUNE report
Comune Udine
 
Mundep070813
Jesus Luis Miranda
 
Capítulo 6 objetivos y estrategias
darkpipa
 
Fairline Yacht Club magazine - Yacht Brokerage - September 2011 issue
Fairline Yacht Club
 
Demystifying kubernetes
Works Applications
 
Scala Json Features and Performance
John Nestor
 
Presentacion proyecto pilas
projetadan
 
KENYA AIRWAYS 10-YEAR STRATEGY
Thiong'o Nick
 
Ejercicios resueltos pascal
Adriana Jimenez
 
Llibret ampa curs 2014 2015v2web
AMPA Puigberenguer
 
Web services y java
Oliver Centeno
 
Ad

Similar to Kubernetes - how to orchestrate containers (20)

PDF
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Ambassador Labs
 
PDF
Scalable Spark deployment using Kubernetes
datamantra
 
PDF
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Mario Ishara Fernando
 
PDF
Kubernetes and Hybrid Deployments
Sandeep Parikh
 
PDF
DevEx | there’s no place like k3s
Haggai Philip Zagury
 
PDF
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
NETWAYS
 
PPTX
Kubernetes #1 intro
Terry Cho
 
PDF
DEVOPS UNIT 4 docker and services commands
billuandtanya
 
PDF
Kubernetes: https://youtu.be/KnjnQj-FvfQ
Rahul Malhotra
 
PDF
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
Ambassador Labs
 
PPTX
K8s in 3h - Kubernetes Fundamentals Training
Piotr Perzyna
 
PDF
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Anthony Dahanne
 
PDF
A curtain-raiser to the container world Docker & Kubernetes
zekeLabs Technologies
 
PDF
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
Docker-Hanoi
 
PDF
JOSA TechTalks - Docker in Production
Jordan Open Source Association
 
PPTX
MicroServices with Containers, Kubernetes & ServiceMesh
Akash Agrawal
 
PDF
Docker for dev
Erik Talboom
 
PDF
Kubernetes for Java Developers
Anthony Dahanne
 
PDF
How Ansible Tower and Prometheus can help automate continuous deployments
Roger Tanner
 
PDF
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
Ambassador Labs
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Ambassador Labs
 
Scalable Spark deployment using Kubernetes
datamantra
 
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Mario Ishara Fernando
 
Kubernetes and Hybrid Deployments
Sandeep Parikh
 
DevEx | there’s no place like k3s
Haggai Philip Zagury
 
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
NETWAYS
 
Kubernetes #1 intro
Terry Cho
 
DEVOPS UNIT 4 docker and services commands
billuandtanya
 
Kubernetes: https://youtu.be/KnjnQj-FvfQ
Rahul Malhotra
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
Ambassador Labs
 
K8s in 3h - Kubernetes Fundamentals Training
Piotr Perzyna
 
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Anthony Dahanne
 
A curtain-raiser to the container world Docker & Kubernetes
zekeLabs Technologies
 
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
Docker-Hanoi
 
JOSA TechTalks - Docker in Production
Jordan Open Source Association
 
MicroServices with Containers, Kubernetes & ServiceMesh
Akash Agrawal
 
Docker for dev
Erik Talboom
 
Kubernetes for Java Developers
Anthony Dahanne
 
How Ansible Tower and Prometheus can help automate continuous deployments
Roger Tanner
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
Ambassador Labs
 
Ad

More from inovex GmbH (20)

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

Recently uploaded (20)

PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PPTX
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 

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!