SlideShare a Scribd company logo
Kubernetes Introduction
@rafabene benevides@redhat.com
Link http://bit.ly/kubernetes-intro
Rafael Benevides
Director of Developer Experience at Red Hat
Apache DeltaSpike P.M.C
benevides@redhat.com
@rafabene
Java Certifications:
SCJA / SCJP / SCWCD / SCBCD / SCEA
JBoss Certifications:
JBCD / JBCAA
Red Hat Certifications:
OpenShift / Containers / Ansible
Other Certifications:
SAP Netweaver / ITIL / IBM Software Quality
Kubernetes_Webinar_Slide_Deck.pdf
Demo: bit.ly/msa-instructions
Slides: bit.ly/microservicesdeepdive
Video Training: bit.ly/microservicesvideo
Free eBooks from developers.redhat.com
bit.ly/reactivemicroservicesbook
bit.ly/javamicroservicesbook
Microservices Introductory
Materials
@rafabene
Advanced Materials
bit.ly/istio-tutorial
http://bit.ly/kubernetes-intro
Kubernetes for Java Developers
learn.openshift.com/servicemesh
bit.ly/faas-tutorial
learn.openshift.com/serverless
bit.ly/mono2microdb
@rafabene
bit.ly/istio-book
@rafabene
@rafabene
Why do you want to run your application inside containers?
@rafabene
● Lightweight footprint and minimal overhead,
● Portability across machines,
● Simplify DevOps practices,
● Speeds up Continuous Integration,
● Empower Microservices Architectures.
● Isolation
Container
Advantages
Container Engine
@rafabene
A way to run a Linux container:
$ docker run -d <image-name>
A single and isolated Linux process
running in a single machine
@rafabene
DevOps challenges for multiple containers
● How to scale?
● How to avoid port conflicts?
● How to manage them in multiple
hosts?
● What happens if a host has a
trouble?
● How to keep them running?
● How to update them?
● Where are my containers?
Node Node
Logger
Node
Node Node Node
@rafabene
Greek for “Helmsman”; also the root of the word
“Governor” (from latin: gubernator)
● Container orchestrator
● Supports multiple cloud and bare-metal environments
● Inspired by Google’s experience with containers
● Open source, written in Go
Manage applications, not machines
Meet Kubernetes
@rafabene
Version 1.11
Hosted on GitHub
1700+ contributors
67,000+ commits
38,000+ GitHub stars
Red Hat
HP
IBM
Mesosphere
Microsoft
Project Partners
CoreOS
Pivotal
SaltStack
VMWare
http://kubernetes.io/
https://github.com/kubernetes/kubernetes
Open Source community
Master
API Server
Service Layer
Virtual
Physical Private Public
Persistent
Storage
Node Node
Logger
Node
Node Node Node
Dev
Ops
SCM
(Git/Svn)
CI/CD
Automation
Routing Layer
Registry
SDN Overlay Network
Controllers
- Scheduler
- Replication
- Services
- Builds
- Routes
- Deployment
Kubernetes
OpenShift
- Deployments
- Builds
- ImageStreams
@rafabene developers.redhat.com
Kubernetes Concepts
Pod
Replication
Controller /
Deployment
Service Label
One or More Containers
Shared IP
Shared Storage Volume
Shared Resources
Shared Lifecycle
Ensures that a specified
number of pod replicas are
running at any one time
Grouping of pods, act as
one, has stable virtual IP
and DNS name
Key/Value pairs associated
with Kubernetes objects
(e.g. env=production)
@rafabene
Concept: Pod
● Group of containers
● Live and die together
● Share:
○ IP
○ Secrets
○ Labels *
○ Volumes *
* we will talk about these concepts later
Labels
Application
Administrative
console
Log collector
IP: 10.x.x.x
Volume
@rafabene
Concept: POD
Defining a POD as YAML:
apiVersion: v1
kind: Pod
metadata:
name: myPod
labels:
key: value
spec:
containers:
- name: mysql
image: username/image
- name: phpMyAdmin
image: username/image2
key: value
myPOD
mysql
phpMy..
SCM
(Git/Svn)
Master
API Server
Service Layer
Virtual
Physical Private Public
Persistent
Storage
Node Node
Logger
Node
Node Node Node
Dev
Ops
CI/CD
Automation
Routing Layer
Registry
SDN Overlay Network
Controllers
- Scheduler
- Replication
- Services
- Builds
- Routes
- Deployment
Kubernetes
OpenShift
- Deployments
- Builds
- ImageStreams
SCM
(Git/Svn)
Master
API Server
Service Layer
Virtual
Physical Private Public
Persistent
Storage
Node Node
Logger
Node
Node Node Node
Dev
Ops
CI/CD
Automation
Routing Layer
Registry
SDN Overlay Network
Controllers
- Scheduler
- Replication
- Services
- Builds
- Routes
- Deployment
Kubernetes
OpenShift
- Deployments
- Builds
- ImageStreams
SCM
(Git/Svn)
Master
API Server
Service Layer
Virtual
Physical Private Public
Persistent
Storage
Node Node
Logger
Node
Node Node Node
Dev
Ops
CI/CD
Automation
Routing Layer
Registry
SDN Overlay Network
Controllers
- Scheduler
- Replication
- Services
- Builds
- Routes
- Deployment
Kubernetes
OpenShift
- Deployments
- Builds
- ImageStreams
@rafabene
Concept: Replication Controllers / Deployment
Defining a Deployment as YAML:
apiVersion: v1
kind: Pod
metadata:
name: myPod
labels:
key: value
spec:
containers:
- name: myPod
image: username/image
ports:
- name: http
containerPort: 8080
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: myDeployment
spec:
replicas: 4
template:
metadata:
spec:
@rafabene
Concept: Labels
App: Cool
Env: Dev
Version: 1.0
App: Cool
Env: Prod
Version: 1.0
App: Cool
Env: Dev
Version: 2.0
App: Cool
Env: Prod
Version: 2.0
Everything in Kubernetes can
have a label
Node
Logger
Node
Node
Node
@rafabene
Concept: Labels
App: Cool
Env: Dev
Version: 1.0
App: Cool
Env: Prod
Version: 1.0
App: Cool
Env: Dev
Version: 2.0
App: Cool
Env: Prod
Version: 2.0
Node
Logger
Node
Node
Node
@rafabene
Concept: Labels
App: Cool
Env: Dev
Version: 1.0
App: Cool
Env: Prod
Version: 1.0
App: Cool
Env: Dev
Version: 2.0
App: Cool
Env: Prod
Version: 2.0
Node
Logger
Node
Node
Node
@rafabene
Concept: Labels
App: Cool
Env: Dev
Version: 1.0
App: Cool
Env: Prod
Version: 1.0
App: Cool
Env: Dev
Version: 2.0
App: Cool
Env: Prod
Version: 2.0
Node
Logger
Node
Node
Node
@rafabene
Concept: Labels
App: Cool
Env: Dev
Version: 1.0
App: Cool
Env: Prod
Version: 1.0
App: Cool
Env: Dev
Version: 2.0
App: Cool
Env: Prod
Version: 2.0
Node
Logger
Node
Node
Node
@rafabene
Concept: Labels
App: Cool
Env: Dev
Version: 1.0
App: Cool
Env: Dev
Version: 2.0
App: Cool
Env: Prod
Version: 1.0
App: Cool
Env: Prod
Version: 2.0
Node
Logger
Node
Node
Node
@rafabene
Concept: Labels
metadata:
name: objectName
labels:
App: Cool
Env: Dev
Version: 1.0
Defining Labels as YAML:
(can be placed in any object metadata)
App: Cool
Env: Dev
Version: 1.0
@rafabene
Node 2
POD
App: Cool
Env: Prod
Version: 1.0
POD
Service
Labels selector:
● App=Cool
● Env=Prod
IP: 172.x.x.x
App: Nice
Env: Prod
Version: 1.0
Concept: Services
Node 1
POD
@rafabene
Concept: Services
apiVersion: v1
kind: Service
metadata:
name: myService
labels:
...
spec:
ports:
- port: 80
targetPort: 80
selector:
App: Cool
Env: Prod
Defining a Service as YAML:
myService
Labels selector:
● App=Cool
● Env=Prod
IP: 172.x.x.x
@rafabene
Using Environment variables:
Using internal DNS: $ ping mysql
Service discovery inside Kubernetes
@rafabene
Other concepts
Rolling updates
Persistent Volumes
@rafabene
Admin Owned
Users Owned
Persistent Volume
GCE PD AWS LB
NFS GlusterFS
Persistent Volume Claim
POD Volume
● Admin provisions them, Users claim them
● High-level abstraction
● Pods can mount PVCs as Volumes
Concept: Persistent Volumes
@rafabene
Deployment Concept: Rolling Updates
Pod
Replication
Controller
Pod Pod Pod
App: Cool
Version: 1.0
Version: 1.0
Replicas: 4
Service
Replication
Controller
Version: 2.0
Replicas: 1
Pod
Pod Pod Pod
App: Cool
Version: 2.0
Version: 1.0
Replicas: 3
Version: 2.0
Replicas: 2
Version: 1.0
Replicas: 2
Version: 2.0
Replicas: 3
Version: 1.0
Replicas: 1
Version: 2.0
Replicas: 4
@rafabene
Kubernetes Example
@rafabene
Application Overview
@rafabene
@rafabene
Hello World Service
- Greet
Guestbook Service
- Create
Guestbook Service -
Retrieve
@rafabene
Lab infrastructure
Hypervisor
RHEL VM Image
● OpenShift
● Kubernetes
● Docker
minishift or CDK
http://developers.redhat.com/products/cdk/download/
@rafabene
Kubernetes lab
VERY IMPORTANT
http://bit.ly/kubernetes-lab
Follow me on the Setup environment section!
@RAFABENE
Kubernetes Introduction
@rafabene benevides@redhat.com
Link http://bit.ly/kubernetes-intro

More Related Content

PPTX
Kubernetes Introduction
PDF
TDC2018FLN | Trilha Containers - Kubernetes para usuarios Docker.
PDF
JavaOne 2016: Kubernetes introduction for Java Developers
PDF
Kubernetes for Java Developers
PDF
Java one kubernetes, jenkins and microservices
PDF
Microservices with Kubernetes, Docker, and Jenkins
PDF
Javaone kubernetesjenkins
PDF
Microservices with Docker, Kubernetes, and Jenkins
Kubernetes Introduction
TDC2018FLN | Trilha Containers - Kubernetes para usuarios Docker.
JavaOne 2016: Kubernetes introduction for Java Developers
Kubernetes for Java Developers
Java one kubernetes, jenkins and microservices
Microservices with Kubernetes, Docker, and Jenkins
Javaone kubernetesjenkins
Microservices with Docker, Kubernetes, and Jenkins

Similar to Kubernetes_Webinar_Slide_Deck.pdf (20)

PDF
Architecting the Future: Abstractions and Metadata - BSidesKC
PDF
Becoming a Plumber: Building Deployment Pipelines - All Day DevOps
PDF
Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...
PDF
Becoming A Plumber: Building Deployment Pipelines - LISA17
PPTX
Use GitLab with Chaos Engineering to Harden your Applications + OpenEBS 1.3 ...
PPTX
Gatekeeper: API gateway
PDF
When to use Serverless? When to use Kubernetes?
PDF
Kubernetes deep dive - - Huawei 2015-10
PDF
Architecting the Future: Abstractions and Metadata - KCDC
PDF
Developer-Friendly CI / CD for Kubernetes
PPTX
Kubernetes Overview - Deploy your app with confidence
PPTX
Kubernetes Workshop
PDF
Kubernetes - from sketch to production
PDF
Developing Serverless Applications on Kubernetes with Knative
PPTX
Kubernetes workshop -_the_basics
PDF
Becoming a Plumber: Building Deployment Pipelines - RevConf
PDF
Architecting the Future: Abstractions and Metadata - STL SilverLinings
PDF
給 RD 的 Kubernetes 初體驗
PPTX
JOIN 2022: Patching 3rd party software Like a boss
PDF
Kubernetes
Architecting the Future: Abstractions and Metadata - BSidesKC
Becoming a Plumber: Building Deployment Pipelines - All Day DevOps
Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...
Becoming A Plumber: Building Deployment Pipelines - LISA17
Use GitLab with Chaos Engineering to Harden your Applications + OpenEBS 1.3 ...
Gatekeeper: API gateway
When to use Serverless? When to use Kubernetes?
Kubernetes deep dive - - Huawei 2015-10
Architecting the Future: Abstractions and Metadata - KCDC
Developer-Friendly CI / CD for Kubernetes
Kubernetes Overview - Deploy your app with confidence
Kubernetes Workshop
Kubernetes - from sketch to production
Developing Serverless Applications on Kubernetes with Knative
Kubernetes workshop -_the_basics
Becoming a Plumber: Building Deployment Pipelines - RevConf
Architecting the Future: Abstractions and Metadata - STL SilverLinings
給 RD 的 Kubernetes 初體驗
JOIN 2022: Patching 3rd party software Like a boss
Kubernetes
Ad

Recently uploaded (20)

PDF
Unit-1 introduction to cyber security discuss about how to secure a system
PPTX
Digital Literacy And Online Safety on internet
PDF
Tenda Login Guide: Access Your Router in 5 Easy Steps
PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PPTX
Introuction about ICD -10 and ICD-11 PPT.pptx
PDF
RPKI Status Update, presented by Makito Lay at IDNOG 10
PDF
The Internet -By the Numbers, Sri Lanka Edition
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PPTX
Introuction about WHO-FIC in ICD-10.pptx
PPTX
PptxGenJS_Demo_Chart_20250317130215833.pptx
PPT
Design_with_Watersergyerge45hrbgre4top (1).ppt
PPTX
innovation process that make everything different.pptx
PDF
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
PDF
Cloud-Scale Log Monitoring _ Datadog.pdf
PPTX
INTERNET------BASICS-------UPDATED PPT PRESENTATION
PDF
Testing WebRTC applications at scale.pdf
PPTX
Introduction to Information and Communication Technology
PPT
tcp ip networks nd ip layering assotred slides
PPTX
presentation_pfe-universite-molay-seltan.pptx
PDF
Sims 4 Historia para lo sims 4 para jugar
Unit-1 introduction to cyber security discuss about how to secure a system
Digital Literacy And Online Safety on internet
Tenda Login Guide: Access Your Router in 5 Easy Steps
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
Introuction about ICD -10 and ICD-11 PPT.pptx
RPKI Status Update, presented by Makito Lay at IDNOG 10
The Internet -By the Numbers, Sri Lanka Edition
The New Creative Director: How AI Tools for Social Media Content Creation Are...
Introuction about WHO-FIC in ICD-10.pptx
PptxGenJS_Demo_Chart_20250317130215833.pptx
Design_with_Watersergyerge45hrbgre4top (1).ppt
innovation process that make everything different.pptx
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
Cloud-Scale Log Monitoring _ Datadog.pdf
INTERNET------BASICS-------UPDATED PPT PRESENTATION
Testing WebRTC applications at scale.pdf
Introduction to Information and Communication Technology
tcp ip networks nd ip layering assotred slides
presentation_pfe-universite-molay-seltan.pptx
Sims 4 Historia para lo sims 4 para jugar
Ad

Kubernetes_Webinar_Slide_Deck.pdf