SlideShare a Scribd company logo
Kubernetes
Introduction
Advanced Technology Group (ATG)
for Open Source & Cloud
August 2016
What is
Kubernetes?
2
Κυβερνήτης — Greek:
A nautical term meaning “helmsman” or “pilot”
“K8s”
Kubernetes
“Open Source Container Cluster Manager”
• Google — Architect and creator.
• Borg — Google’s internal cluster management software.
 Kubernetes – complete rewrite, (in Go).
• Google partnered with Linux Foundation to form:
 Cloud Native Computing Foundation (CNCF)
 offered Kubernetes as a seed technology
3
Kubernetes History
2013 2014 2015 2016
Apr 2015
Tectonic formed
(commercial support)
Apr 2015
The Borg Paper
is published
Sep 2014
Kubernetes
announced in
Wired magazine
Jun 2014
Kubernetes
1st GitHub
commit
Mar 2013
Docker initial
release
Aug 2014
CoreOS introduces
Flannel networking
Oct 2013
CoreOS initial
release
4
2008 …2006
2006
Google starts work on
“Process Containers”
(renamed “cgroups”)
Jan 2008
cgroups merged
into Linux (2.6.24)
2007
July 2015
CNCF Formed,
K8s v1.0 released,
donated to CNCF
Borg development inside Google
Kubernetes Tech Specs
Features
• μService Architecture
• Automatic Workload Placement (efficient)
• Auto Remediating (self healing)
• Horizontal Scaling
• Load Balanced
• Declarative Deployment
• Service Discovery included
• A/B & Canary Deployments (testing)
Surrounding Ecosystem
 Docker – the container “engine” on each host.
 etcd (from CoreOS) – distributed K/V store.
 CoreOS – the platform.
 Flannel – overlay networking.
 Hosted Service: Google Container Platform
 GKE is the abbreviation.
5
6
Network
Client
μService Programming Model — Cloud Native
proxy
μS
…
μS
μS
proxy
μS
…
μS
μS
proxy
μS
…
μS
μS
proxy
μS
…
μS
μS
proxy
μS
…
μS
μS
proxy
μS
…
μS
μS
(HTTP)Route/Proxy
Optional
(nginx)
Pod
(container)
Service
“Load Balancer”
Kubernetes – Programming Model
7
• Filesystem – that the program uses.
• Persistent – how state is saved beyond run-time.
• Persistent Volumes are attached and live outside of the
K8s cluster.
Volumes & Persistent Volumes
Pod
• One (or more) containers “grouped”
• Network (IP address): shared
• Volumes: shared
Service
• Common API (behavior) replicated across the cluster.
• Well Known Endpoint – a consistent IP address,
regardless of changes in specific Pods underneath.
Service
proxy
Host (“node” in K8s)
Pod – different μS
Pod
Container(s)
proxy
Host (“node” in K8s)
Pod
Container(s)
Volume,
external
to K8s
Abstract
(Common IP)
Kubernetes – Framework Architecture
8
Client
Control
Plane
Workload
*https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/architecture.md
Kubernetes – Framework Architecture
9
• K8s is extensible
• Storage Plugin(s)
- NFS / iSCSI
- AWS-EC2 / Google GCE
- Ceph (RBD/CephFS) / Gluster
- Cinder (OpenStack)
• Other Extension Points
- Logging
- Access & Auth
- Scheduler
Control Plane Worker Node(s) Client
Extension Points
kubelet:
local, control plane agent.
Pod management using
docker-engine.
kube-proxy:
internal service routing
(i.e. TCP/UDP stream
forwarding)
docker-engine:
container execution
kube-apiserver:
Client’s API access point.
Routes requests to appropriate,
internal components.
kube-controller-manager:
Embeds the core control loops.
• Replication controller
• Endpoints controller (proxies)
• Namespace controller
kube-scheduler:
Workload (Pod) placement.
Sophisticated, configurable,
globally aware.
etcd (from CoreOS):
Distributed, watchable storage
The k8s system state
kubectl:
CLI into K8s
HTTP — RESTful protocol.
Kubernetes – Deployment Model
A Declarative Model
10
Manifest File(s)
Labels
PodSpec clause – within most descriptors
Replication Controller descriptor
• Optional only in trivial cases.
• (trivial = CLI only possible)
• YAML (or JSON) format.
• Key/Value “tags” – placed on any deployable object.
• Selectable – by actions and other declarations.
• Configuration Flexibility
• Labeled
• allows versioning
• other constraint application
• Container(s)
• very Dockerfile / docker-compose like.
• Image location, (including image version)
• Volume requirements
• Ports exposed
• “template/spec” clause declares PodSpec configuration.
• “replica” clause declares sizing of the service.
• Rolling-updates & canary deploys are a supported
pattern.
Descriptor Types (partial list)
• Replication Controller
• Deployment
• Pod
• Job
• Service
Running a Kubernetes Cluster
11
“There’s more than one way to do it”
– Larry Wall
Kubernetes in Public Cloud
12
Hosted Solution — Google Cloud Platform
Google Container Engine (GKE)
• Kubernetes Getting Started Guide “101”
• Hello World Walkthrough
https://cloud.google.com/container-engine/
http://kubernetes.io/docs/hellonode/
Turn-key Solutions
Amazon Web Services (AWS) EC2 http://kubernetes.io/docs/getting-started-guides/aws/
Azure http://kubernetes.io/docs/getting-started-guides/azure/
Free Trial —
60 days
$300 credit
Kubernetes Run Locally
13
On a Laptop / Desktop
Minikube
• K8s recommended method for single node deploy
http://kubernetes.io/docs/getting-started-guides/minikube/
Vagrant — superseded by Minikube, still usable. http://kubernetes.io/docs/getting-started-guides/vagrant/
kube-up.sh — another previous “#1” method by k8s http://containertutorials.com/get_started_kubernetes/index.html
Easy Kubernetes Cluster for macOS
• Recently discovered and recommended by our team (ATG).
https://github.com/TheNewNormal/kube-cluster-osx
Multi-host / Lab
CoreOS w/ Fleet • https://github.com/CaptTofu/kubernetes-cluster-fleet
• https://github.com/coreos/coreos-vagrant
• https://github.com/mhamrah/kubernetes-coreos-units
A Kubernetes Application
14
Kubernetes Application
– minimalist application –
15
1. Construct • Create a standard Docker application, a μService.
• Package it as a Docker Image.
2. Deploy • Deploy the Docker Image to a Docker Repository.
3. Run • kubectl run … --image=<Image-Repository-Path>
K8s App — Construct
16
app.py*
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return '-- Hello Flask Dockerized --n'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
Dockerfile*
FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential
COPY . /apt
WORKDIR /apt
RUN pip install -r requirements.txt
ENTRYPOINT ["python"]
CMD ["app.py"]
*https://github.com/egustafson/ex-py-docker-flask
Build
Run
Verify (in a separate console)
# docker build –t ex-py-docker-flask .
...
...<many lines of output>
...
Successfully built 0fb21b16f3dd
#
# docker run –p 5000:5000 ex-py-docker-flask
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger pin code: 236-035-556
# curl http://localhost:5000
-- Hello Flask Dockerized –-
#
run outside localhost
(default port: 5000)
K8s App — Deploy
17
Hosted K8s – Google Container Engine
Local “laptop” – Minikube... (from the construct stage … mostly) ...
# docker build –t gcr.io/<my-proj-id>/ex-py-flask:v1 .
...
# gcloud docker push gcr.io/<my-proj-id>/ex-py-flask:v1
# minikube start
Starting local Kubernetes cluster...
Kubernetes is available at https://192.168.99.100:8443.
Kubectl is now configured to use the cluster.
# eval $(minikube docker-env)
# docker build –t library/ex-py-docker-flask .
Caveat: the method used above is a bit of a “hack”. Using the
‘docker-env’ combined with ‘docker build’ works because
Minikube only deploys into a single host. As a consequence the
Docker image will be available in the local Docker repository.
If Minikube ran across two or more hosts then the node Kubernetes
choses to run the Pod (container) on may not match where it was
built.
*http://kubernetes.io/docs/hellonode/
GCR
Convention
(alternate)
K8s App — Run
18
Hosted K8s – Google Container Engine Local “laptop” – Minikube
# kubectl run flask-node 
-–image=gcr.io/<my-proj-id>/ex-py-flask:v1 
--port=5000
Deployment “flask-node” created
# kubectl get pods
NAME READY STATUS RESTARTS AGE
flask-node-714049816-ztzrb 1/1 Running 0 6m
# kubectl expose deployment flask-node -–type=“LoadBalancer”
# kubectl get services flask-node
NAME CLUSTER_IP EXTERNAL_IP PORT(S) AGE
hello-node 10.3.246.12 23.251.159.72 5000/TCP 2m
Run
Verify
Run
Verify
# curl http://23.251.159.72:5000
-- Hello Flask Dockerized –
#
1.
2.
3.
4.
# kubectl run flask-node 
-–image=library/ex-py-docker-flask 
--port=5000
Deployment “flask-node” created
# kubectl get pods
NAME READY STATUS RESTARTS AGE
flask-node-714049816-ztzrb 1/1 Running 0 6m
# kubectl expose deployment flask-node -–type=“NodePort”
1.
2.
3.
# minikube service flask-node –-url
http://192.168.99.100:31992
# curl $(minikube service flask-node –-url)
-- Hello Flask Dockerized –
#
Getting Involved
19
Community http://kubernetes.io/community/
GitHub http://github.com/kubernetes
Project Page & Documents http://kubernetes.io
Slack (chat) (sign-up: http://slack.k8s.io/) https://kubernetes.slack.com
Special Interest Groups (SIGs)
(+20 topics)
Community Page  SIGs
(https://github.com/kubernetes/community/blob/master/README.md#special-interest-groups-sig)
Demo
https://github.com/egustafson/ex-gke-webdrop
20
https://github.com/egustafson/webdrop-py
Thank you
Advanced Technology Group for Open Source and Cloud
Eric Gustafson gustafson@hpe.com
Patrick Galbraith patg@hpe.com
Clare Springer clarissa.springer@hpe.com
21
Backup Slides
(Kubernetes Introduction)
22
Advanced Technology Group
for Open Source & Cloud
HPE's Advanced Technology Group for Open
Source & Cloud embraces a vision that is two
steps ahead of today's solutions.
We use this vision to drive product adoption
and incubate technologies to advance HPE.
Through open source initiatives we foster
collaboration across HPE and beyond.
23
Patrick Galbraith
patg@hpe.com
http://patg.net/
Interests: Kubernetes,
Ansible, MySQL projects
New Hampshire, USA
Eric Gustafson
gustafson@hpe.com
http://egustafson.github.io/
Interests: Monitoring,
Networking, Embedded/IoT
Colorado, USA
Brian Aker, Fellow
Yazz Atlas, Principle Engineer
Hillary Cirimele, Executive Assistant
Matt Farina, Principle Engineer
Patrick Galbraith, Principle Engineer
Eric Gustafson, Principle Engineer
Clare Springer, Program Manager
References – Kubernetes Introduction
• “Large-scale cluster management at Google with Borg”
• https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43438.pdf
• “Omega: flexible, scalable schedulers for large compute clusters”
• https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41684.pdf
• “Borg, Omega, and Kubernetes”
• https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf
• “Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google’s Datacenter Network”
• http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p183.pdf
24

More Related Content

What's hot

Kubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewKubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive Overview
Bob Killen
 
Kubernetes 101 for Beginners
Kubernetes 101 for BeginnersKubernetes 101 for Beginners
Kubernetes 101 for Beginners
Oktay Esgul
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
Bob Killen
 
(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview
Bob Killen
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
Ramit Surana
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals Training
Piotr Perzyna
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
Michal Cwienczek
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
Martin Danielsson
 
01. Kubernetes-PPT.pptx
01. Kubernetes-PPT.pptx01. Kubernetes-PPT.pptx
01. Kubernetes-PPT.pptx
TamalBanerjee16
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
Gabriel Carro
 
Introduction to helm
Introduction to helmIntroduction to helm
Introduction to helm
Jeeva Chelladhurai
 
Kubernetes
KubernetesKubernetes
Kubernetes
Henry He
 
Kubernetes architecture
Kubernetes architectureKubernetes architecture
Kubernetes architecture
Janakiram MSV
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
Eueung Mulyana
 
Quick introduction to Kubernetes
Quick introduction to KubernetesQuick introduction to Kubernetes
Quick introduction to Kubernetes
Eduardo Garcia Moyano
 
Helm - Application deployment management for Kubernetes
Helm - Application deployment management for KubernetesHelm - Application deployment management for Kubernetes
Helm - Application deployment management for Kubernetes
Alexei Ledenev
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
Raffaele Di Fazio
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
Paris Apostolopoulos
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
Peng Xiao
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
EastBanc Tachnologies
 

What's hot (20)

Kubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewKubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive Overview
 
Kubernetes 101 for Beginners
Kubernetes 101 for BeginnersKubernetes 101 for Beginners
Kubernetes 101 for Beginners
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
 
(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals Training
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
01. Kubernetes-PPT.pptx
01. Kubernetes-PPT.pptx01. Kubernetes-PPT.pptx
01. Kubernetes-PPT.pptx
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Introduction to helm
Introduction to helmIntroduction to helm
Introduction to helm
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Kubernetes architecture
Kubernetes architectureKubernetes architecture
Kubernetes architecture
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Quick introduction to Kubernetes
Quick introduction to KubernetesQuick introduction to Kubernetes
Quick introduction to Kubernetes
 
Helm - Application deployment management for Kubernetes
Helm - Application deployment management for KubernetesHelm - Application deployment management for Kubernetes
Helm - Application deployment management for Kubernetes
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
 

Viewers also liked

An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
Imesh Gunaratne
 
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupKubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Stefan Schimanski
 
Mesos and Kubernetes ecosystem overview
Mesos and Kubernetes ecosystem overviewMesos and Kubernetes ecosystem overview
Mesos and Kubernetes ecosystem overview
Krishna-Kumar
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
Göksel Pırnal
 
Docker Madison, Introduction to Kubernetes
Docker Madison, Introduction to KubernetesDocker Madison, Introduction to Kubernetes
Docker Madison, Introduction to Kubernetes
Timothy St. Clair
 
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
Docker-Hanoi
 
Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016
Opsta
 
Docker for the new Era: Introducing Docker,its components and tools
Docker for the new Era: Introducing Docker,its components and toolsDocker for the new Era: Introducing Docker,its components and tools
Docker for the new Era: Introducing Docker,its components and tools
Ramit Surana
 
Kubernetes Networking - Giragadurai Vallirajan
Kubernetes Networking - Giragadurai VallirajanKubernetes Networking - Giragadurai Vallirajan
Kubernetes Networking - Giragadurai Vallirajan
Neependra Khare
 
Kubernetes automation in production
Kubernetes automation in productionKubernetes automation in production
Kubernetes automation in production
Paul Bakker
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
Stefan Schimanski
 
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
Neo4j
 
Getting started with kubernetes
Getting started with kubernetesGetting started with kubernetes
Getting started with kubernetes
Janakiram MSV
 
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
OpenShift Origin
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
rajdeep
 
Scaling Docker with Kubernetes
Scaling Docker with KubernetesScaling Docker with Kubernetes
Scaling Docker with Kubernetes
Carlos Sanchez
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetes
Samuel Terburg
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
CJ Cullen
 
Red Hat OpenShift V3 Overview and Deep Dive
Red Hat OpenShift V3 Overview and Deep DiveRed Hat OpenShift V3 Overview and Deep Dive
Red Hat OpenShift V3 Overview and Deep Dive
Greg Hoelzer
 
Musings on Mesos: Docker, Kubernetes, and Beyond.
Musings on Mesos: Docker, Kubernetes, and Beyond.Musings on Mesos: Docker, Kubernetes, and Beyond.
Musings on Mesos: Docker, Kubernetes, and Beyond.
Timothy St. Clair
 

Viewers also liked (20)

An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupKubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
 
Mesos and Kubernetes ecosystem overview
Mesos and Kubernetes ecosystem overviewMesos and Kubernetes ecosystem overview
Mesos and Kubernetes ecosystem overview
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Docker Madison, Introduction to Kubernetes
Docker Madison, Introduction to KubernetesDocker Madison, Introduction to Kubernetes
Docker Madison, Introduction to Kubernetes
 
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
 
Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016
 
Docker for the new Era: Introducing Docker,its components and tools
Docker for the new Era: Introducing Docker,its components and toolsDocker for the new Era: Introducing Docker,its components and tools
Docker for the new Era: Introducing Docker,its components and tools
 
Kubernetes Networking - Giragadurai Vallirajan
Kubernetes Networking - Giragadurai VallirajanKubernetes Networking - Giragadurai Vallirajan
Kubernetes Networking - Giragadurai Vallirajan
 
Kubernetes automation in production
Kubernetes automation in productionKubernetes automation in production
Kubernetes automation in production
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
 
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
 
Getting started with kubernetes
Getting started with kubernetesGetting started with kubernetes
Getting started with kubernetes
 
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Scaling Docker with Kubernetes
Scaling Docker with KubernetesScaling Docker with Kubernetes
Scaling Docker with Kubernetes
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetes
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Red Hat OpenShift V3 Overview and Deep Dive
Red Hat OpenShift V3 Overview and Deep DiveRed Hat OpenShift V3 Overview and Deep Dive
Red Hat OpenShift V3 Overview and Deep Dive
 
Musings on Mesos: Docker, Kubernetes, and Beyond.
Musings on Mesos: Docker, Kubernetes, and Beyond.Musings on Mesos: Docker, Kubernetes, and Beyond.
Musings on Mesos: Docker, Kubernetes, and Beyond.
 

Similar to Kubernetes Introduction

Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibility
Docker, Inc.
 
Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)
HungWei Chiu
 
Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307
Inhye Park
 
Kubernetes from the ground up
Kubernetes from the ground upKubernetes from the ground up
Kubernetes from the ground up
Sander Knape
 
Docker and kubernetes_introduction
Docker and kubernetes_introductionDocker and kubernetes_introduction
Docker and kubernetes_introduction
Jason Hu
 
ProxySQL on Kubernetes
ProxySQL on KubernetesProxySQL on Kubernetes
ProxySQL on Kubernetes
René Cannaò
 
Kubernetes for Java Developers
Kubernetes for Java DevelopersKubernetes for Java Developers
Kubernetes for Java Developers
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-final
Michel Schildmeijer
 
Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple
Wojciech Barczyński
 
Kubernetes
KubernetesKubernetes
Kubernetes
Meng-Ze Lee
 
Kubernetes Intro @HaufeDev
Kubernetes Intro @HaufeDev Kubernetes Intro @HaufeDev
Kubernetes Intro @HaufeDev
Haufe-Lexware GmbH & Co KG
 
Learn kubernetes in 90 minutes
Learn kubernetes in 90 minutesLearn kubernetes in 90 minutes
Learn kubernetes in 90 minutes
Larry Cai
 
Azure kubernetes service (aks) part 3
Azure kubernetes service (aks)   part 3Azure kubernetes service (aks)   part 3
Azure kubernetes service (aks) part 3
Nilesh Gule
 
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
VMUG 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
 
An overview of the Kubernetes architecture
An overview of the Kubernetes architectureAn overview of the Kubernetes architecture
An overview of the Kubernetes architecture
Igor Sfiligoi
 
From dev to prod: Kubernetes on AWS (short ver.)
From dev to prod: Kubernetes on AWS (short ver.)From dev to prod: Kubernetes on AWS (short ver.)
From dev to prod: Kubernetes on AWS (short ver.)
佑介 九岡
 
Whose Job Is It Anyway? Kubernetes, CRI, & Container Runtimes
Whose Job Is It Anyway? Kubernetes, CRI, & Container RuntimesWhose Job Is It Anyway? Kubernetes, CRI, & Container Runtimes
Whose Job Is It Anyway? Kubernetes, CRI, & Container Runtimes
Phil Estes
 
Kubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of ContainersKubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of Containers
Kel Cecil
 
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBuilding Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Bitnami
 

Similar to Kubernetes Introduction (20)

Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibility
 
Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)
 
Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307
 
Kubernetes from the ground up
Kubernetes from the ground upKubernetes from the ground up
Kubernetes from the ground up
 
Docker and kubernetes_introduction
Docker and kubernetes_introductionDocker and kubernetes_introduction
Docker and kubernetes_introduction
 
ProxySQL on Kubernetes
ProxySQL on KubernetesProxySQL on Kubernetes
ProxySQL on Kubernetes
 
Kubernetes for Java Developers
Kubernetes for Java DevelopersKubernetes for Java Developers
Kubernetes for Java Developers
 
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
 
Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Kubernetes Intro @HaufeDev
Kubernetes Intro @HaufeDev Kubernetes Intro @HaufeDev
Kubernetes Intro @HaufeDev
 
Learn kubernetes in 90 minutes
Learn kubernetes in 90 minutesLearn kubernetes in 90 minutes
Learn kubernetes in 90 minutes
 
Azure kubernetes service (aks) part 3
Azure kubernetes service (aks)   part 3Azure kubernetes service (aks)   part 3
Azure kubernetes service (aks) part 3
 
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 !
 
An overview of the Kubernetes architecture
An overview of the Kubernetes architectureAn overview of the Kubernetes architecture
An overview of the Kubernetes architecture
 
From dev to prod: Kubernetes on AWS (short ver.)
From dev to prod: Kubernetes on AWS (short ver.)From dev to prod: Kubernetes on AWS (short ver.)
From dev to prod: Kubernetes on AWS (short ver.)
 
Whose Job Is It Anyway? Kubernetes, CRI, & Container Runtimes
Whose Job Is It Anyway? Kubernetes, CRI, & Container RuntimesWhose Job Is It Anyway? Kubernetes, CRI, & Container Runtimes
Whose Job Is It Anyway? Kubernetes, CRI, & Container Runtimes
 
Kubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of ContainersKubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of Containers
 
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBuilding Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
 

Recently uploaded

Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Kunal Gupta
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
Matthias Neugebauer
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
aslasdfmkhan4750
 
Step-By-Step Process to Develop a Mobile App From Scratch
Step-By-Step Process to Develop a Mobile App From ScratchStep-By-Step Process to Develop a Mobile App From Scratch
Step-By-Step Process to Develop a Mobile App From Scratch
softsuave
 
(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf
(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf
(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf
Priyanka Aash
 
Uncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in LibrariesUncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in Libraries
Brian Pichman
 
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
bellared2
 
Feature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptxFeature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptx
ssuser1915fe1
 
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
shanihomely
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
Priyanka Aash
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
313mohammedarshad
 
Types of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technologyTypes of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technology
ldtexsolbl
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
Jimmy Lai
 
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
bhumivarma35300
 
Mastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for SuccessMastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for Success
David Wilson
 
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Torry Harris
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
Ivanti
 
Patch Tuesday de julio
Patch Tuesday de julioPatch Tuesday de julio
Patch Tuesday de julio
Ivanti
 
Acumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptxAcumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptx
BrainSell Technologies
 
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptxMAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
janagijoythi
 

Recently uploaded (20)

Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
 
Step-By-Step Process to Develop a Mobile App From Scratch
Step-By-Step Process to Develop a Mobile App From ScratchStep-By-Step Process to Develop a Mobile App From Scratch
Step-By-Step Process to Develop a Mobile App From Scratch
 
(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf
(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf
(CISOPlatform Summit & SACON 2024) Gen AI & Deepfake In Overall Security.pdf
 
Uncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in LibrariesUncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in Libraries
 
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
 
Feature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptxFeature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptx
 
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
 
Types of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technologyTypes of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technology
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
 
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
 
Mastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for SuccessMastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for Success
 
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
 
Patch Tuesday de julio
Patch Tuesday de julioPatch Tuesday de julio
Patch Tuesday de julio
 
Acumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptxAcumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptx
 
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptxMAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
 

Kubernetes Introduction

  • 1. Kubernetes Introduction Advanced Technology Group (ATG) for Open Source & Cloud August 2016
  • 2. What is Kubernetes? 2 Κυβερνήτης — Greek: A nautical term meaning “helmsman” or “pilot” “K8s”
  • 3. Kubernetes “Open Source Container Cluster Manager” • Google — Architect and creator. • Borg — Google’s internal cluster management software.  Kubernetes – complete rewrite, (in Go). • Google partnered with Linux Foundation to form:  Cloud Native Computing Foundation (CNCF)  offered Kubernetes as a seed technology 3
  • 4. Kubernetes History 2013 2014 2015 2016 Apr 2015 Tectonic formed (commercial support) Apr 2015 The Borg Paper is published Sep 2014 Kubernetes announced in Wired magazine Jun 2014 Kubernetes 1st GitHub commit Mar 2013 Docker initial release Aug 2014 CoreOS introduces Flannel networking Oct 2013 CoreOS initial release 4 2008 …2006 2006 Google starts work on “Process Containers” (renamed “cgroups”) Jan 2008 cgroups merged into Linux (2.6.24) 2007 July 2015 CNCF Formed, K8s v1.0 released, donated to CNCF Borg development inside Google
  • 5. Kubernetes Tech Specs Features • μService Architecture • Automatic Workload Placement (efficient) • Auto Remediating (self healing) • Horizontal Scaling • Load Balanced • Declarative Deployment • Service Discovery included • A/B & Canary Deployments (testing) Surrounding Ecosystem  Docker – the container “engine” on each host.  etcd (from CoreOS) – distributed K/V store.  CoreOS – the platform.  Flannel – overlay networking.  Hosted Service: Google Container Platform  GKE is the abbreviation. 5
  • 6. 6 Network Client μService Programming Model — Cloud Native proxy μS … μS μS proxy μS … μS μS proxy μS … μS μS proxy μS … μS μS proxy μS … μS μS proxy μS … μS μS (HTTP)Route/Proxy Optional (nginx) Pod (container) Service “Load Balancer”
  • 7. Kubernetes – Programming Model 7 • Filesystem – that the program uses. • Persistent – how state is saved beyond run-time. • Persistent Volumes are attached and live outside of the K8s cluster. Volumes & Persistent Volumes Pod • One (or more) containers “grouped” • Network (IP address): shared • Volumes: shared Service • Common API (behavior) replicated across the cluster. • Well Known Endpoint – a consistent IP address, regardless of changes in specific Pods underneath. Service proxy Host (“node” in K8s) Pod – different μS Pod Container(s) proxy Host (“node” in K8s) Pod Container(s) Volume, external to K8s Abstract (Common IP)
  • 8. Kubernetes – Framework Architecture 8 Client Control Plane Workload *https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/architecture.md
  • 9. Kubernetes – Framework Architecture 9 • K8s is extensible • Storage Plugin(s) - NFS / iSCSI - AWS-EC2 / Google GCE - Ceph (RBD/CephFS) / Gluster - Cinder (OpenStack) • Other Extension Points - Logging - Access & Auth - Scheduler Control Plane Worker Node(s) Client Extension Points kubelet: local, control plane agent. Pod management using docker-engine. kube-proxy: internal service routing (i.e. TCP/UDP stream forwarding) docker-engine: container execution kube-apiserver: Client’s API access point. Routes requests to appropriate, internal components. kube-controller-manager: Embeds the core control loops. • Replication controller • Endpoints controller (proxies) • Namespace controller kube-scheduler: Workload (Pod) placement. Sophisticated, configurable, globally aware. etcd (from CoreOS): Distributed, watchable storage The k8s system state kubectl: CLI into K8s HTTP — RESTful protocol.
  • 10. Kubernetes – Deployment Model A Declarative Model 10 Manifest File(s) Labels PodSpec clause – within most descriptors Replication Controller descriptor • Optional only in trivial cases. • (trivial = CLI only possible) • YAML (or JSON) format. • Key/Value “tags” – placed on any deployable object. • Selectable – by actions and other declarations. • Configuration Flexibility • Labeled • allows versioning • other constraint application • Container(s) • very Dockerfile / docker-compose like. • Image location, (including image version) • Volume requirements • Ports exposed • “template/spec” clause declares PodSpec configuration. • “replica” clause declares sizing of the service. • Rolling-updates & canary deploys are a supported pattern. Descriptor Types (partial list) • Replication Controller • Deployment • Pod • Job • Service
  • 11. Running a Kubernetes Cluster 11 “There’s more than one way to do it” – Larry Wall
  • 12. Kubernetes in Public Cloud 12 Hosted Solution — Google Cloud Platform Google Container Engine (GKE) • Kubernetes Getting Started Guide “101” • Hello World Walkthrough https://cloud.google.com/container-engine/ http://kubernetes.io/docs/hellonode/ Turn-key Solutions Amazon Web Services (AWS) EC2 http://kubernetes.io/docs/getting-started-guides/aws/ Azure http://kubernetes.io/docs/getting-started-guides/azure/ Free Trial — 60 days $300 credit
  • 13. Kubernetes Run Locally 13 On a Laptop / Desktop Minikube • K8s recommended method for single node deploy http://kubernetes.io/docs/getting-started-guides/minikube/ Vagrant — superseded by Minikube, still usable. http://kubernetes.io/docs/getting-started-guides/vagrant/ kube-up.sh — another previous “#1” method by k8s http://containertutorials.com/get_started_kubernetes/index.html Easy Kubernetes Cluster for macOS • Recently discovered and recommended by our team (ATG). https://github.com/TheNewNormal/kube-cluster-osx Multi-host / Lab CoreOS w/ Fleet • https://github.com/CaptTofu/kubernetes-cluster-fleet • https://github.com/coreos/coreos-vagrant • https://github.com/mhamrah/kubernetes-coreos-units
  • 15. Kubernetes Application – minimalist application – 15 1. Construct • Create a standard Docker application, a μService. • Package it as a Docker Image. 2. Deploy • Deploy the Docker Image to a Docker Repository. 3. Run • kubectl run … --image=<Image-Repository-Path>
  • 16. K8s App — Construct 16 app.py* from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return '-- Hello Flask Dockerized --n' if __name__ == '__main__': app.run(debug=True, host='0.0.0.0') Dockerfile* FROM ubuntu:latest RUN apt-get update -y RUN apt-get install -y python-pip python-dev build-essential COPY . /apt WORKDIR /apt RUN pip install -r requirements.txt ENTRYPOINT ["python"] CMD ["app.py"] *https://github.com/egustafson/ex-py-docker-flask Build Run Verify (in a separate console) # docker build –t ex-py-docker-flask . ... ...<many lines of output> ... Successfully built 0fb21b16f3dd # # docker run –p 5000:5000 ex-py-docker-flask * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger pin code: 236-035-556 # curl http://localhost:5000 -- Hello Flask Dockerized –- # run outside localhost (default port: 5000)
  • 17. K8s App — Deploy 17 Hosted K8s – Google Container Engine Local “laptop” – Minikube... (from the construct stage … mostly) ... # docker build –t gcr.io/<my-proj-id>/ex-py-flask:v1 . ... # gcloud docker push gcr.io/<my-proj-id>/ex-py-flask:v1 # minikube start Starting local Kubernetes cluster... Kubernetes is available at https://192.168.99.100:8443. Kubectl is now configured to use the cluster. # eval $(minikube docker-env) # docker build –t library/ex-py-docker-flask . Caveat: the method used above is a bit of a “hack”. Using the ‘docker-env’ combined with ‘docker build’ works because Minikube only deploys into a single host. As a consequence the Docker image will be available in the local Docker repository. If Minikube ran across two or more hosts then the node Kubernetes choses to run the Pod (container) on may not match where it was built. *http://kubernetes.io/docs/hellonode/ GCR Convention (alternate)
  • 18. K8s App — Run 18 Hosted K8s – Google Container Engine Local “laptop” – Minikube # kubectl run flask-node -–image=gcr.io/<my-proj-id>/ex-py-flask:v1 --port=5000 Deployment “flask-node” created # kubectl get pods NAME READY STATUS RESTARTS AGE flask-node-714049816-ztzrb 1/1 Running 0 6m # kubectl expose deployment flask-node -–type=“LoadBalancer” # kubectl get services flask-node NAME CLUSTER_IP EXTERNAL_IP PORT(S) AGE hello-node 10.3.246.12 23.251.159.72 5000/TCP 2m Run Verify Run Verify # curl http://23.251.159.72:5000 -- Hello Flask Dockerized – # 1. 2. 3. 4. # kubectl run flask-node -–image=library/ex-py-docker-flask --port=5000 Deployment “flask-node” created # kubectl get pods NAME READY STATUS RESTARTS AGE flask-node-714049816-ztzrb 1/1 Running 0 6m # kubectl expose deployment flask-node -–type=“NodePort” 1. 2. 3. # minikube service flask-node –-url http://192.168.99.100:31992 # curl $(minikube service flask-node –-url) -- Hello Flask Dockerized – #
  • 19. Getting Involved 19 Community http://kubernetes.io/community/ GitHub http://github.com/kubernetes Project Page & Documents http://kubernetes.io Slack (chat) (sign-up: http://slack.k8s.io/) https://kubernetes.slack.com Special Interest Groups (SIGs) (+20 topics) Community Page  SIGs (https://github.com/kubernetes/community/blob/master/README.md#special-interest-groups-sig)
  • 21. Thank you Advanced Technology Group for Open Source and Cloud Eric Gustafson gustafson@hpe.com Patrick Galbraith patg@hpe.com Clare Springer clarissa.springer@hpe.com 21
  • 23. Advanced Technology Group for Open Source & Cloud HPE's Advanced Technology Group for Open Source & Cloud embraces a vision that is two steps ahead of today's solutions. We use this vision to drive product adoption and incubate technologies to advance HPE. Through open source initiatives we foster collaboration across HPE and beyond. 23 Patrick Galbraith patg@hpe.com http://patg.net/ Interests: Kubernetes, Ansible, MySQL projects New Hampshire, USA Eric Gustafson gustafson@hpe.com http://egustafson.github.io/ Interests: Monitoring, Networking, Embedded/IoT Colorado, USA Brian Aker, Fellow Yazz Atlas, Principle Engineer Hillary Cirimele, Executive Assistant Matt Farina, Principle Engineer Patrick Galbraith, Principle Engineer Eric Gustafson, Principle Engineer Clare Springer, Program Manager
  • 24. References – Kubernetes Introduction • “Large-scale cluster management at Google with Borg” • https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43438.pdf • “Omega: flexible, scalable schedulers for large compute clusters” • https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41684.pdf • “Borg, Omega, and Kubernetes” • https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf • “Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google’s Datacenter Network” • http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p183.pdf 24

Editor's Notes

  1. This is a sample Picture Right with Caption slide ideal for including a picture with a brief descriptive statement. To Replace the Picture on this Sample Slide (this applies to all slides in this template that contain replaceable pictures) Select the sample picture and press Delete. Click the icon inside the shape to open the Insert Picture dialog box. Navigate to the location where the picture is stored, select desired picture and click on the Insert button to fit the image proportionally within the shape. Note: Do not right-click the image to change the picture inside the picture placeholder. This will change the frame size of the picture placeholder. Instead, follow the steps outlined above. Tip: use the Crop tool to reposition a picture within a placeholder. From the Picture Tools Format tab on the ribbon, click the Crop button. Click and drag the picture within the placeholder to reposition. To scale the picture within the placeholder (while Crop is active), grab a round corner handle and drag to resize. Hold Shift key to constrain picture aspect ratio when resizing.