SlideShare a Scribd company logo
1 of 22
One of the most unpolished
Kubernetes introduction
presentations ever given on a
Thursday afternoon from
Freiburg, Germany, ever
Martin Danielsson -- 2017-01-05
Haufe-Lexware GmbH & Co. KG, CTO Office
Twitter: @donmartin76, GitHub: DonMartin76
You might have figured,
this is the Kubernetes logo
Thank you for your attention!
Just kidding.
What is Kubernetes?
“Kubernetes is an open-source platform for automating deployment,
scaling, and operations of application containers across clusters of
hosts, providing container-centric infrastructure.”
http://kubernetes.io/docs/whatisk8s/
Holy smokes!Which means?
What does Kubernetes do?
• Provide a runtime environment for Docker containers
• Scale and load balance docker containers
• Abstract away the infrastructure containers run on
• Monitor/health check containers
• Declarative definition for running containers
• Update containers (also rolling updates)
• Storage mounting (allow abstracting infrastructure)
• Service discovery and exposure
• Labelling and selection of any kind of object (we‘ll get to this)
What does Kubernetes fucking not do?
• Provide any additional services than just Docker
• Compile or build your source code (needs images)
• Provide real orchestration, relies on containers working
independently
• Mandate or provide any kind of special configuration language
• You’re free to do whatever you want
• But: You have to find out a way yourself
Kubernetes =
General Purpose
Platform-as-a-Service (PaaS)
~
Recap - Docker?
Docker Host (e.g. Ubuntu 16.04 LTS)
Container
nginx
Container
node.js App
Container
PostgreSQL
• Docker containers share Kernel with Host
• Many containers can efficiently run on one Host
• Powerful developer tooling
• Dockerfiles are used to build images
• A Docker Registry can store Docker images
• Haufe’s registry.haufe.io
• Official hub.docker.com
• Docker Engine used by Kubernetes under the
hood
• Kubernetes is alternative to Docker Swarm
• Older, more mature
• Used e.g. by GCE (Google Container Engine)
Kubernetes and Docker
• Kubernetes adds functionality to Docker
• Manages a set of Docker Hosts, forming a Cluster
• Takes care of Container scheduling
• Supervises Docker containers
• Kubernetes is replacement/alternative for Docker Swarm
Node
workload
workload
workload
Node
workload
workload
workload
Kubernetes
Master(s)
apiserver
controllers
Node
workload
workload
workload
All blue boxes are Docker Hosts (VMs)
Kubernetes Components are also running as stateless containers!
etcd
(cluster) scheduler
Deployment Architecture
Node 1
Kubernetes Runtime
Pod X
Container
A
Container
B
Pod Y
Container
C
Node 2
Pod Y
Container
C
Pod Z
Container
D
Node 3
Pod Z
Container
D
Pod X
Container
A
Container
B
Deployment
Replica Set
Pod Spec
Abstractions (1) - “Boxes in boxes”
Container
Spec
Container
Spec
Docker image
Environment variables
Storage Claims
Node selector
Service labels
How many Pods should run?
How are updates handled?
Rolling/recreation
Abstractions (2) - Services
Pod
Pod
Pod
Pod
PodService B,
select “B”,
http://ser
vice-b
A
A
A
B
B
Service A,
select “A”
e.g.,
http://ser
vice-a
Abstractions (3) - Other things
• Jobs (one-off containers)
• DaemonSets (one container per node)
• StatefulSet (handles lifetime of pods differently)
Exposing Services (1) - NodePort
Node 1 Node 2 Node 3
Service A
31234 (non-privileged) 31234 31234
Can be used to put an external Load Balancer in front of a service
Exposing Services (2) - LoadBalancer
Node 1 Node 2 Node 3
Service A
• Depends on Cloud Provider (Azure, AWS,…) how this is done
• Will provision a Load Balancer on the cloud provider’s infrastructure
• (e.g. Elastic LB, Azure LB,…)
LB
Exposing Services (3) - Ingress
Kubernetes Cluster
Service A
Service B
Service C
Pod
Pod
Pod
Pod Pod
Pod
Pod
Pod
Pod
…
LB
Ingress
Definition
Ingress
Controller
(SNI, TLS)
• E.g., “route Host x.y.z to Service A”, “Use TLS Certificate abc for host x.y.z”
• Abstract definition of rules
• Implemented by Ingress Controller
• Flexible; leverages “LoadBalancer” on cloud provider
• Can provide SNI (Server Name Indication) and TLS termination
Working with kubectl
$ kubectl apply -f deployment.yml
Created deployment “nginx”
$
Kubernetes
Master(s)
apiserver
scheduler
~/.kube/config
Authentication/
Authorization
• kubectl is a convenient way to talk
to the Kubernetes API
• Uses ~/.kube/config for AuthN/Z
Example kubectl YAML file
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: idesk-mobile-2851
spec:
replicas: 2
# keep the latest three deployments on k8s
revisionHistoryLimit: 3
template:
metadata:
labels:
service: idesk-mobile-2851
feature: "false”
spec:
containers:
- env:
- name: API_GATEWAY_HOST
value: https://api.idesk-apim.haufe-ep.de
- name: CLIENT_ID
value: "ad283bd8273bdbe9a72bdef”
image: "aurora/aurora.mobile.client:v2851”
name: idesk-mobile
ports:
- containerPort: 80
protocol: TCP
restartPolicy: Always
imagePullSecrets:
- name: aurora-registry-haufe-io
$ kubectl apply -f idesk-mobile.yml
Created deployment “idesk-mobile-2851”
$ kubectl get po
NAME READY STATUS RESTARTS AGE
idesk-mobile 1/2 Running 0 10s
$
Container(s)
Pod
Replica Set
Deployment
Example Service YML
apiVersion: v1
kind: Service
metadata:
labels:
service: idesk-mobile-2851
feature: ”true”
name: idesk-mobile-2851
spec:
type: NodePort
ports:
- name: “https”
port: 443
protocol: TCP
targetPort: 443
nodePort: 31851
selector:
service: idesk-mobile-2851
status:
loadBalancer: {}
Reachable over any Agent IP:
https://aurora-k8s.haufe-ep.de:31851
Demo
• Add an nginx Deployment
• Add a service
• Expose service via an Ingress definition
• Kubernetes Dashboard
• Deleting with a selector filter
Example Ingress YML
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-demo
spec:
rules:
- host: nginx-demo.donmartin76.com
http:
paths:
- path:
backend:
serviceName: nginx-demo
servicePort: 80

More Related Content

What's hot

Kubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewKubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewBob Killen
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introductionSparkbit
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideBytemark
 
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShiftKubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShiftDevOps.com
 
Kubernetes
KubernetesKubernetes
KubernetesHenry He
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionPeng Xiao
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesRishabh Indoria
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesMichal Cwienczek
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingPiotr Perzyna
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetesDongwon Kim
 
Kubernetes 101 for Beginners
Kubernetes 101 for BeginnersKubernetes 101 for Beginners
Kubernetes 101 for BeginnersOktay Esgul
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Megan O'Keefe
 
Docker introduction & benefits
Docker introduction & benefitsDocker introduction & benefits
Docker introduction & benefitsAmit Manwade
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCDCloudOps2005
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Edureka!
 

What's hot (20)

Kubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewKubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive Overview
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introduction
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory Guide
 
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShiftKubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals Training
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetes
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
Jenkins.pdf
Jenkins.pdfJenkins.pdf
Jenkins.pdf
 
Kubernetes 101 for Beginners
Kubernetes 101 for BeginnersKubernetes 101 for Beginners
Kubernetes 101 for Beginners
 
Kubernetes PPT.pptx
Kubernetes PPT.pptxKubernetes PPT.pptx
Kubernetes PPT.pptx
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)
 
Docker introduction & benefits
Docker introduction & benefitsDocker introduction & benefits
Docker introduction & benefits
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCD
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
 

Similar to Kubernetes Introduction

DevOps in AWS with Kubernetes
DevOps in AWS with KubernetesDevOps in AWS with Kubernetes
DevOps in AWS with KubernetesOleg Chunikhin
 
Docker, Atomic Host and Kubernetes.
Docker, Atomic Host and Kubernetes.Docker, Atomic Host and Kubernetes.
Docker, Atomic Host and Kubernetes.Jooho Lee
 
Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307Inhye Park
 
Containers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellContainers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellEugene Fedorenko
 
Portable CI/CD Environment as Code with Kubernetes, Kublr and Jenkins
Portable CI/CD Environment as Code with Kubernetes, Kublr and JenkinsPortable CI/CD Environment as Code with Kubernetes, Kublr and Jenkins
Portable CI/CD Environment as Code with Kubernetes, Kublr and JenkinsKublr
 
DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarCodefresh
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMwareVMUG IT
 
Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Anthony Dahanne
 
Pro2516 10 things about oracle and k8s.pptx-final
Pro2516   10 things about oracle and k8s.pptx-finalPro2516   10 things about oracle and k8s.pptx-final
Pro2516 10 things about oracle and k8s.pptx-finalMichel Schildmeijer
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019Kumton Suttiraksiri
 
Kube Overview and Kube Conformance Certification OpenSource101 Raleigh
Kube Overview and Kube Conformance Certification OpenSource101 RaleighKube Overview and Kube Conformance Certification OpenSource101 Raleigh
Kube Overview and Kube Conformance Certification OpenSource101 RaleighBrad Topol
 
Setting up CI/CD pipeline with Kubernetes and Kublr step-by-step
Setting up CI/CD pipeline with Kubernetes and Kublr step-by-stepSetting up CI/CD pipeline with Kubernetes and Kublr step-by-step
Setting up CI/CD pipeline with Kubernetes and Kublr step-by-stepOleg Chunikhin
 
Setting up CI/CD Pipeline with Kubernetes and Kublr step by-step
Setting up CI/CD Pipeline with Kubernetes and Kublr step by-stepSetting up CI/CD Pipeline with Kubernetes and Kublr step by-step
Setting up CI/CD Pipeline with Kubernetes and Kublr step by-stepKublr
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetescsegayan
 

Similar to Kubernetes Introduction (20)

DevOps in AWS with Kubernetes
DevOps in AWS with KubernetesDevOps in AWS with Kubernetes
DevOps in AWS with Kubernetes
 
Docker, Atomic Host and Kubernetes.
Docker, Atomic Host and Kubernetes.Docker, Atomic Host and Kubernetes.
Docker, Atomic Host and Kubernetes.
 
Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307
 
Adf with docker
Adf with dockerAdf with docker
Adf with docker
 
Containers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellContainers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshell
 
Portable CI/CD Environment as Code with Kubernetes, Kublr and Jenkins
Portable CI/CD Environment as Code with Kubernetes, Kublr and JenkinsPortable CI/CD Environment as Code with Kubernetes, Kublr and Jenkins
Portable CI/CD Environment as Code with Kubernetes, Kublr and Jenkins
 
DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm Webinar
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
 
Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !
 
Pro2516 10 things about oracle and k8s.pptx-final
Pro2516   10 things about oracle and k8s.pptx-finalPro2516   10 things about oracle and k8s.pptx-final
Pro2516 10 things about oracle and k8s.pptx-final
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
 
Moby KubeCon 2017
Moby KubeCon 2017Moby KubeCon 2017
Moby KubeCon 2017
 
Kube Overview and Kube Conformance Certification OpenSource101 Raleigh
Kube Overview and Kube Conformance Certification OpenSource101 RaleighKube Overview and Kube Conformance Certification OpenSource101 Raleigh
Kube Overview and Kube Conformance Certification OpenSource101 Raleigh
 
Setting up CI/CD pipeline with Kubernetes and Kublr step-by-step
Setting up CI/CD pipeline with Kubernetes and Kublr step-by-stepSetting up CI/CD pipeline with Kubernetes and Kublr step-by-step
Setting up CI/CD pipeline with Kubernetes and Kublr step-by-step
 
Setting up CI/CD Pipeline with Kubernetes and Kublr step by-step
Setting up CI/CD Pipeline with Kubernetes and Kublr step by-stepSetting up CI/CD Pipeline with Kubernetes and Kublr step by-step
Setting up CI/CD Pipeline with Kubernetes and Kublr step by-step
 
Openshift Workshop
Openshift Workshop Openshift Workshop
Openshift Workshop
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 

Recently uploaded

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 

Recently uploaded (20)

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 

Kubernetes Introduction

  • 1. One of the most unpolished Kubernetes introduction presentations ever given on a Thursday afternoon from Freiburg, Germany, ever Martin Danielsson -- 2017-01-05 Haufe-Lexware GmbH & Co. KG, CTO Office Twitter: @donmartin76, GitHub: DonMartin76
  • 2. You might have figured, this is the Kubernetes logo
  • 3. Thank you for your attention! Just kidding.
  • 4. What is Kubernetes? “Kubernetes is an open-source platform for automating deployment, scaling, and operations of application containers across clusters of hosts, providing container-centric infrastructure.” http://kubernetes.io/docs/whatisk8s/ Holy smokes!Which means?
  • 5. What does Kubernetes do? • Provide a runtime environment for Docker containers • Scale and load balance docker containers • Abstract away the infrastructure containers run on • Monitor/health check containers • Declarative definition for running containers • Update containers (also rolling updates) • Storage mounting (allow abstracting infrastructure) • Service discovery and exposure • Labelling and selection of any kind of object (we‘ll get to this)
  • 6. What does Kubernetes fucking not do? • Provide any additional services than just Docker • Compile or build your source code (needs images) • Provide real orchestration, relies on containers working independently • Mandate or provide any kind of special configuration language • You’re free to do whatever you want • But: You have to find out a way yourself
  • 8. Recap - Docker? Docker Host (e.g. Ubuntu 16.04 LTS) Container nginx Container node.js App Container PostgreSQL • Docker containers share Kernel with Host • Many containers can efficiently run on one Host • Powerful developer tooling • Dockerfiles are used to build images • A Docker Registry can store Docker images • Haufe’s registry.haufe.io • Official hub.docker.com • Docker Engine used by Kubernetes under the hood • Kubernetes is alternative to Docker Swarm • Older, more mature • Used e.g. by GCE (Google Container Engine)
  • 9. Kubernetes and Docker • Kubernetes adds functionality to Docker • Manages a set of Docker Hosts, forming a Cluster • Takes care of Container scheduling • Supervises Docker containers • Kubernetes is replacement/alternative for Docker Swarm
  • 10. Node workload workload workload Node workload workload workload Kubernetes Master(s) apiserver controllers Node workload workload workload All blue boxes are Docker Hosts (VMs) Kubernetes Components are also running as stateless containers! etcd (cluster) scheduler Deployment Architecture
  • 11. Node 1 Kubernetes Runtime Pod X Container A Container B Pod Y Container C Node 2 Pod Y Container C Pod Z Container D Node 3 Pod Z Container D Pod X Container A Container B
  • 12. Deployment Replica Set Pod Spec Abstractions (1) - “Boxes in boxes” Container Spec Container Spec Docker image Environment variables Storage Claims Node selector Service labels How many Pods should run? How are updates handled? Rolling/recreation
  • 13. Abstractions (2) - Services Pod Pod Pod Pod PodService B, select “B”, http://ser vice-b A A A B B Service A, select “A” e.g., http://ser vice-a
  • 14. Abstractions (3) - Other things • Jobs (one-off containers) • DaemonSets (one container per node) • StatefulSet (handles lifetime of pods differently)
  • 15. Exposing Services (1) - NodePort Node 1 Node 2 Node 3 Service A 31234 (non-privileged) 31234 31234 Can be used to put an external Load Balancer in front of a service
  • 16. Exposing Services (2) - LoadBalancer Node 1 Node 2 Node 3 Service A • Depends on Cloud Provider (Azure, AWS,…) how this is done • Will provision a Load Balancer on the cloud provider’s infrastructure • (e.g. Elastic LB, Azure LB,…) LB
  • 17. Exposing Services (3) - Ingress Kubernetes Cluster Service A Service B Service C Pod Pod Pod Pod Pod Pod Pod Pod Pod … LB Ingress Definition Ingress Controller (SNI, TLS) • E.g., “route Host x.y.z to Service A”, “Use TLS Certificate abc for host x.y.z” • Abstract definition of rules • Implemented by Ingress Controller • Flexible; leverages “LoadBalancer” on cloud provider • Can provide SNI (Server Name Indication) and TLS termination
  • 18. Working with kubectl $ kubectl apply -f deployment.yml Created deployment “nginx” $ Kubernetes Master(s) apiserver scheduler ~/.kube/config Authentication/ Authorization • kubectl is a convenient way to talk to the Kubernetes API • Uses ~/.kube/config for AuthN/Z
  • 19. Example kubectl YAML file apiVersion: extensions/v1beta1 kind: Deployment metadata: name: idesk-mobile-2851 spec: replicas: 2 # keep the latest three deployments on k8s revisionHistoryLimit: 3 template: metadata: labels: service: idesk-mobile-2851 feature: "false” spec: containers: - env: - name: API_GATEWAY_HOST value: https://api.idesk-apim.haufe-ep.de - name: CLIENT_ID value: "ad283bd8273bdbe9a72bdef” image: "aurora/aurora.mobile.client:v2851” name: idesk-mobile ports: - containerPort: 80 protocol: TCP restartPolicy: Always imagePullSecrets: - name: aurora-registry-haufe-io $ kubectl apply -f idesk-mobile.yml Created deployment “idesk-mobile-2851” $ kubectl get po NAME READY STATUS RESTARTS AGE idesk-mobile 1/2 Running 0 10s $ Container(s) Pod Replica Set Deployment
  • 20. Example Service YML apiVersion: v1 kind: Service metadata: labels: service: idesk-mobile-2851 feature: ”true” name: idesk-mobile-2851 spec: type: NodePort ports: - name: “https” port: 443 protocol: TCP targetPort: 443 nodePort: 31851 selector: service: idesk-mobile-2851 status: loadBalancer: {} Reachable over any Agent IP: https://aurora-k8s.haufe-ep.de:31851
  • 21. Demo • Add an nginx Deployment • Add a service • Expose service via an Ingress definition • Kubernetes Dashboard • Deleting with a selector filter
  • 22. Example Ingress YML apiVersion: extensions/v1beta1 kind: Ingress metadata: name: nginx-demo spec: rules: - host: nginx-demo.donmartin76.com http: paths: - path: backend: serviceName: nginx-demo servicePort: 80